1
Organization Structures
It seems that remarkably early in our lives we become familiar with organizational
structures. The classic management hierarchy appears on an org chart early in our
career, but even by then we’ve already come across the notion in plenty of places. So
in a way it shouldn’t be surprising that organization structures crop up frequently
enough in business software too. I recognized many organizational patterns several
years ago and ever since they keep turning up again.
A good way to start thinking about modeling organization structures is to think of
the obvious way. Imagine a company where people work in departments, which are
organized into divisions. Figure 0.1 shows an explicit model for this where each part of
the structure is a separate class.
Explicit structures have two main disadvantages. They don’t work well if there is
much common behavior between the kinds of organization. They also embed the cur-
rent organizational categories into the design. Should some bright spark decide to add
regions between divisions and departments, you have some modificaitons to do.
Figure 0.1 An explicit, and obvious,organizational structure.
Division Department Person
✻
1
✻
1