It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable. I vividly recall the night we decided how to organize the actual writing of external specifications for OS/360. The manager of architecture, the manager of control program implementation, andI were threshing out the plan, schedule, and division of responsibilities.The only advantage that code-first, spec later iterative style development has is that it appears to be fast. If you count in the debugging and refactoring time, it really isn't -- but when you consider that people now expect computers to not work correctly, a team that spends a year getting the design and spec right gets laid off. A team that sort of builds a spec around buggy code makes a ship date.
The architecture manager had 10 good men. He asserted that they could write the specifications and do it right. It would take ten months, three more than the schedule allowed.
The control program manager had 150 men. He asserted that they could prepare the specifications, with the architecture team coordinating; it would be well-done and practical, and he could do it on schedule. Furthermore, if the architecture team did it, his 150 men would sit twiddling
their thumbs for ten months.
To this the architecture manager responded that if I gave the control program team the responsibility, the result would not in fact be on time, but would also be three months late, and of much lower quality. I did, and it was. He was right on both counts. Moreover, the lack of conceptual integrity made the system far more costly to build and change, and I would estimate that it added a year to debugging time.
-- Frederick Brooks Jr., "The Mythical Man Month"
« Older 'The committee is, to put it bluntly, basically un... | Typing with your brain.... Newer »
This thread has been archived and is closed to new comments
posted by macmac at 9:16 AM on March 8, 2006