Fred Brooks

Fred Brooks
Frederick Phillips Brooks, Jr.is an American computer architect, software engineer, and computer scientist, best known for managing the development of IBM's System/360 family of computers and the OS/360 software support package, then later writing candidly about the process in his seminal book The Mythical Man-Month. Brooks has received many awards, including the National Medal of Technology in 1985 and the Turing Award in 1999...
NationalityAmerican
ProfessionScientist
Date of Birth19 April 1931
CountryUnited States of America
Successful software always gets changed.
There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity.
Systematically identity top designers as early as possible. The best are often not the most experienced.
A design style is defined by a set of microdecisions. A clear style reflects a consistent set. A clear style may not be a good style; a muddled one never is.
Software work is the most complex that humanity has ever undertaken.
System debugging, like astronomy, has always been done chiefly at night.
Software and hardware design is less different than software designers think, but more different than hardware designers think.
Systems program building is an entropy-decreasing process, hence inherently metastable. Program maintenance is an entropy-increasing process, and even its most skillful execution only delays the subsidence of the system into unfixable obsolescence.
...when fits of creativity run strong, more than one programmer or writer has been known to abandon the desktop for the more spacious floor.
Improving your process won't move you from good to great design. It'll move you from bad to average.
When a task cannot be partitioned because of sequential constraints, the application of more effort has no effect on the schedule. The bearing of a child takes nine months, no matter how many women are assigned.
We tend to blame the physical media for most of our implementation difficulties; for the media are not "ours" in the way the ideas are, and our pride colors our judgement.
Well over half of the time you spend working on a project (on the order of 70 percent) is spent thinking, and no tool, no matter how advanced, can think for you. Consequently, even if a tool did everything except the thinking for you - if it wrote 100 percent of the code, wrote 100 percent of the documentation, did 100 percent of the testing, burned the CD-ROMs, put them in boxes, and mailed them to your customers - the best you could hope for would be a 30 percent improvement in productivity. In order to do better than that, you have to change the way you think.
Design work doesn't just satisfy requirements, it elicits them.