There are numerous books and guidance for building a good Work Breakdown Structure. But there is an underlying principle that guides, or should guide this effort. It is the MECE (Mutually Exclusive, Collectively Exhaustive).
Mutually Exclusive - no subcategory should represent any other subcategory ("no overlaps"). In the WBS this means the deliverables are unique so we can assign cost to them and determine who is going to develop them.
Collectively Exhaustive - the set of all subcategories, taken together, should fully characterize the larger category of which the data are part ("no gaps"). The WBS represents the "all in"work. If it's not in the WBS, it's going to get done.
Building a good WBS, does not start with defining the level of the WBS it starts with the MECE principle and the resulting product (or service) architecture. Now the architecture of the product or service is developed by a systems approach, WBS building is systems architecture, for several reasons:
- We need to know the components of the system that are ME (Mutually Exclusive).
- The children of these components must be CE (collectively exhaustive). Parts can be shared in the WBS, if the work for those parts can be shared, but they need to have different WBS numbers, so they are ME, while being CE.
- Then the WBS can be used to collect costs and answer the question, "what does this part, sub-assembly, assembly, system cost.
- The resources are then assigned (not named by categories if you can come to see that names change with change control, categories don't) and build the RAM (Responsibility Assignment Matrix) to see who is working on what, for what cost.
- That whole coding system is placed in the IMS in separate columns (WBS and maybe the CWBS) and Resource Category to show when the thing is being built, for what cost, and by what labor category.