Evolution of Programming System Product
The Four Stages (Fred Brooks' concept)
Fred Brooks, in The Mythical Man-Month, described how a simple "program" grows in cost and effort as it evolves into a full "programming systems product." He estimated each generalization step multiplies effort by roughly 3x, so the full product costs about 9x a simple program.
1. Program
- A complete, self-contained piece of code
- Written and tested by a single programmer for their own use
- No external documentation needed
2. Programming Product
- A program generalized so it can be:
- Tested thoroughly
- Documented properly
- Maintained by others
- Used by people other than the author
- Requires roughly 3x the effort of a plain program
3. Programming System
- A collection of interacting programs, coordinated in function and format
- Each component must work correctly with all others as part of a well-defined system
- Also roughly 3x the effort of a standalone program
4. Programming Systems Product
- Combines both generalization (product) and integration (system)
- A fully professional, tested, documented, and integrated software product ready for the market
- Estimated at 9x the effort of a simple program (3 × 3)
Diagram (conceptual)
Programming
Program → Product (×3 effort — generalization)
| |
↓ ↓
Programming → Programming
System Systems Product (×9 effort total)
(×3 effort — integration)
Exam tip: Draw the 2×2 diagram (Program / Programming Product / Programming System / Programming Systems Product) and mention the 3x/9x effort multipliers — this is a very commonly asked diagram-based question.