- Author
- Frederick P. Brooks, Jr., University of North Carolina at Chapel Hill
- Published
- September 1986
- Kind
- Technical report version of a landmark essay
- Original
- www.cs.unc.edu/techreports/86-020.pdf
- Subject
- Software design
What it is
Frederick Brooks wrote this as a University of North Carolina technical report. It asks whether any one advance could give a large gain in software productivity. It examines past breakthroughs and then current candidates. It says skepticism is not pessimism: disciplined effort should still yield an order-of-magnitude gain.
What it says
- Brooks splits software difficulty into essence, inherent in the concepts, and accidents of production.
- The essential difficulties are complexity, conformity, changeability and invisibility.
- Past gains such as high-level languages removed accidental difficulties, and the remaining ones are smaller.
- No single technology or management technique promises an order of magnitude gain within a decade.
- Brooks doubts that Ada, objects, AI, graphical programming or verification is a silver bullet.
- The hardest part is deciding what to build, so Brooks favors prototyping requirements.
- Brooks proposes buying software, growing it step by step, and developing great designers.
What evidence it gives
The report rests on argument and examples of past advances in languages, time-sharing and environments. It refers to unnamed studies on designers and on off-the-shelf packages. It draws on the author's classroom experience with growing software. It presents no new data.
Interests and limits
The report dates from 1986. Its views on Ada and expert systems concern that period. Its AI section covers speech and image recognition and rule-based expert systems. It sees real value in expert systems for spreading good practice. Its predictions are the author's opinion. The text came from a PDF, so a few words are garbled.