is an excellent book by Don Reinersten (isbn o-684-83991-1).
This is the second snippet entry for this book (
here's the first). It continues my current theme of preferring to re-read a good book many times.
As usual I'm going to quote from a few pages:
Whenever we see an intense need for communications it is typically a sign that the system has been incorrectly partitioned.
A complex system can often be built faster when there are stable steps along the way. This is what Nobel laureate Herbert Simon called "stable intermediate forms" in his book The Sciences of Artificial.
We cannot predict the behaviour of a system simply by understanding the behaviour of its components.
There are more possible interactions in a system of 150 components than there are atoms in the universe.
The act of partioning the system is extremely important, because it creates interfaces… these interfaces are both the primary source of value within a system and the primary source of complexity.
The nonlinear behaviour of queueing systems will amplify variability within the system.
We get into an interesting death spiral when we overload our development process.
Overloads cause queues; queues, being nonlinear, raise the variability of our process, and variability raises the size of queues.
The weak cross-functional communication of the functional form sacrifices our other economic objectives.
In life, we design most processes for repetitive activities because a process is a way of preserving learning that occurs when doing an activity. … We need to find some way to preserve what we have learned without discouraging people from doing new things.
We get large queues whenever we have large batch transfers in the process.
There is a strong interaction between the design of our organisation structure, our architecture, and our development process.