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. Fred Brooks More Quotes by Fred Brooks More Quotes From Fred Brooks You can learn more from failure than success. In failure you're forced to find out what part did not work. But in success you can believe everything you did was great, when in fact some parts may not have worked at all. Failure forces you to face reality. Fred Brooks faces believe reality The hardest single part of building a software system is deciding precisely what to build the most important function that software builders do for their clients is the iterative extraction and refinement of the product requirements. For the truth is, the clients do not know what they want. They usually do not know what questions must be answered, and they have almost never thought of the problem in the detail that must be specified. Fred Brooks details important want Present to inform, not to impress. If you inform, you will impress. Fred Brooks impress ifs Nine people can't make a baby in a month. Fred Brooks nine baby people Successful software always gets changed. Fred Brooks programming learning successful How does a project get to be a year behind schedule? One day at a time. Fred Brooks one-day-at-a-time procrastination years Improving your process won't move you from good to great design. It'll move you from bad to average. Fred Brooks design average moving An ancient adage warns, "Never go to sea with two chronometers; take one or three." Fred Brooks three sea two The hardest part of the software task is arriving at a complete and consistent specification, and much of the essence of building a program is in fact the debugging of the specification. Fred Brooks arriving learning essence 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. Fred Brooks simplicity technology order A scientist builds in order to learn; an engineer learns in order to build. Fred Brooks scientist engineers order System debugging has always been a graveyard-shift occupation, like astronomy. Fred Brooks astronomy debugging occupation The complexity of software is an essential property, not an accidental one. Hence, descriptions of a software entity that abstract away its complexity often abstracts away its essence. Fred Brooks abstract essentials essence The bearing of a child takes nine months, no matter how many women are assigned. Fred Brooks matter patience children I have never seen an experienced programmer who routinely made detailed flow charts before beginning to write programs. Fred Brooks program flow writing Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they'll be obvious. Fred Brooks obvious tables needs Adding manpower to a late software project makes it later Fred Brooks programming projects computer 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. Fred Brooks cds order thinking The fundamental problem with program maintenance is that fixing a defect has a substantial (20-50 percent) chance of introducing another. So the whole process is two steps forward and one step back. Fred Brooks maintenance fundamentals two The hardest single part of building a software system is deciding precisely what to build. Fred Brooks hardest building software