The Second-System Effect - Excerpts
The following is an excerpt from chapter 5 of "The Mythical Man-Month" (1995 edition) by Fred Brooks.
If one separates the responsibility for functional specification from responsibility for for building a fast, cheap product, what discipline bounds the architect's inventive enthusiasm?
The fundamental answer is thoroughgoing, careful, and communication between architect and builder.
The architect has two possible answers when confronted with an estimate that is too high: cut the design or challenge the estimate by suggesting cheaper implementations.
For it to be successful, the architect must
- remember that the builder has the inventive and creative responsibility for the implementation [..]
- [..] be prepared to suggest a way of implementing anything he specifies [..]
- deal quietly and privately in such suggestions
- be ready to forgo credit for suggested improvements
The builder will counter by suggesting changes to the architecture. Often [..] some minor feature may have [..] large costs when the implementation is worked out.
Brooks considers that, the first system which an architect builds is potentially clean. As the system is designed, there are ideas which get stored away to be used "next time". All the frills and embellishments which were kept out of the first design, often make it into the next system. Therefore, he states:
The general tendency is to over-design the second system [..]
and
The second system ist the most dangerous system a man ever designs.
Basic system assumptions can change. These changes make some techniques obsolete. The tendency to refine those can be another symptom of the second-system effect.
An architect cannot skip designing a second system, but he can be conscious of it hazards. Self-discipline must be exercised to avoid functional ornamentation ("gold plating") and sinking time in obsolete areas and functions.