To only a fraction of the human race does God give the privilege of earning one's bread doing what one would have gladly pursued free, for passion. Fred Brooks More Quotes by Fred Brooks More Quotes From Fred Brooks More software projects have gone awry for lack of calendar time than for all other causes combined. Fred Brooks calendars gone time All programmers are optimists. Perhaps this modern sorcery especially attracts those who believe in happy endings and fairy godmothers. Perhaps the hundreds of nitty frustrations drive away all but those who habitually focus on the end goal. Perhaps it is merely that computers are young, programmers are younger, and the young are always optimists. Fred Brooks frustration goal believe Originality is no excuse for ignorance. Fred Brooks originality no-excuses ignorance Mediocre design provably wastes the world's resources, corrupts the environment, affects international competitiveness. Design is important. Fred Brooks design important world The first step toward the management of disease was replacement of demon theories and humours theories by the germ theory. That very step, the beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress would be made stepwise, at great effort, and that a persistent, unremitting care would have to be paid to a discipline of cleanliness. So it is with software engineering today. Fred Brooks engineering effort discipline Observe that for the programmer, as for the chef, the urgency of the patron may govern the scheduled completion of the task, but it cannot govern the actual completion. An omelette, promised in two minutes, may appear to be progressing nicely. But when it has not set in two minutes, the customer has two choices - wait or eat it raw. Software customers have had the same choices. Fred Brooks choices waiting two I am more convinced than ever. Conceptual integrity is central to product quality. Fred Brooks quality products integrity The essence of a software entity is a construct of interlocking concepts. I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation. Fred Brooks design essence believe A little retrospection shows that although many fine, useful software systems have been designed by committees and built as part of multipart projects, those software systems that have excited passionate fans are those that are the products of one or a few designing minds, great designers. Fred Brooks design fans mind The critical thing about the design process is to identify your scarcest resource. Despite what you may think, that very often is not money. For example, in a NASA moon shot, money is abundant but lightness is scarce; every ounce of weight requires tons of material below. On the design of a beach vacation home, the limitation may be your ocean-front footage. You have to make sure your whole team understands what scarce resource you're optimizing. Fred Brooks team ocean beach It is very difficult to make a vigorous, plausible, and job-risking defense of an estimate that is derived by no quantitative method, supported by little data, and certified chiefly by the hunches of the managers Fred Brooks data defense jobs 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 media color pride Software and hardware design is less different than software designers think, but more different than hardware designers think. Fred Brooks design different thinking Predictability and great design are not friends. Fred Brooks great-design not-friends design Systematically identity top designers as early as possible. The best are often not the most experienced. Fred Brooks designer identity Conceptual integrity is the most important consideration in system design. Fred Brooks design important integrity Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program. Fred Brooks requirements perfection thinking Men and months are interchangeable commodities only when a task can be partitioned among many workers with no communication among them. Fred Brooks communication tasks men Dissertations are not finished; they are abandoned. Fred Brooks dissertation finished abandoned 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. Fred Brooks execution delay maintenance