
We want to optimize communications in a large software development organization, whose members are working together on a common product.
Context:
A development organization straddling several domains, where effective interpersonal communication is key to project success.
A nominal "hub" may already have been established for the organization.
Forces:
Communication overhead goes up non-linearly with the number of people.
Information starvation or role isolation cause people to develop unsuitable sub-products.
Being a communication bottleneck leaves no time to do work.
Communication bottlenecks cause queues in organizational work flows that keep other people from doing work.
Fully distributed control tends to lead to control breakdown.
Solution:
2. Avoid coupling with neighbors (those equidistant from the center of the process as yourself; i.e., those equally coupled to the process as a whole as yourself) if you are in the outlying 50% of the organization.
3. The intensity of any interaction should be inversely proportional to the sum of the differences of the roles' dis- tance to the center of the process.
Means A: Shuffle responsibilities between roles in a way that moves the associated collaborations, to effect the above patterns (Move Responsibilities). This is Robert Lai's idea; it's simple, but profoundly effective.
Means B: Physically relocate people to enhance their opportunity to communicate (see Work Flows Inward).
Means C: Increase span of control of a role in the project (akin to merging multiple roles into one). It is probably best to Merge Roles with Similar Responsibilities, or better, to Merge Roles with Similar Collaborations. Hey, those are patterns too!
Resulting Context:
The new organization has more balanced communication across its roles.
Design Rationale:
Most of these patterns are empirical, rather than being derived from first principles. I think it important to recognize this path to patterns as a positive and potentially fruitful one. If it works, go with it.
Sub-pattern 1 is empirical. It is the dominant sub-pattern. It infuses a level of "distributed control with central tendency" that lends overall direction and cohesion to an organization. Another way of stating sub-pattern 1 is that most points on the interaction grid tend to live near the axes.
Sub-pattern 2 avoids cliquish splinter groups. It also helps avoid linear event ordering in the distant (support) parts of a process. Linear event ordering (or pipelining) causes points on the interaction grid to line up right below the diagonal. A pattern that avoids points on the diagonal is likely to encourage more parallelism and independence.
Sub-pattern 3 tempers sub-pattern 1, allowing points further from the diagonal but not too far from the origin. This allows for a tight "core" at the middle of the process. It also helps to even the distribution of load across roles in the process. Many organizations are bimodal: they interact tightly in the core, and virtually not at all in the outlying roles. This evens the load across all roles.
The overall (and difficult-to-explain) nature of these sub-patterns is that they improve product quality and reduce time-to-market. They tend to correlate with high spans of control. That in turn reduces the number of people necessary to complete a project, further reducing communication overhead, improving cohesion, and causing the pattern to recursively feed on itself. It's wondrous to watch this happen in an organization.
Next: Work Flows Inward
Last updated
Thu Mar 23 09:00:44 CST 1995
Copyright © 1995 AT&T