Home > Work > The Mythical Man-Month: Essays on Software Engineering
1 " A baseball manager recognizes a nonphysical talent, hustle, as an essential gift of great players and great teams. It is the characteristic of running faster than necessary, moving sooner than necessary, trying harder than necessary. It is essential for great programming teams, too. "
― , The Mythical Man-Month: Essays on Software Engineering
2 " As time passes, the system becomes less and less well-ordered. Sooner or later the fixing cease to gain any ground. Each forward step is matched by a backward one. Although in principle usable forever, the system has worn out as a base for progress. ...A brand-new, from-the-ground-up redesign is necessary. "
3 " Adding manpower to a late software project, makes it later. "
4 " 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. "
5 " The general tendency is to over-design the second system, using all the ideas and frills that were cautiously sidetracked on the first one. "
6 " The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. "
7 " The management question, therefore, is not whether to build a pilot system and throw it away. You will do that. The only question is whether to plan in advance to build a throwaway, or to promise to deliver the throwaway to customers. "
8 " 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. The cook has another choice; he can turn up the heat. The result is often an omelette nothing can save—burned in one part, raw in another. "
9 " For the human makers of things, the incompletenesses and inconsistencies of our ideas become clear only during implementation. "
10 " Men and months are interchangeable commodities only when a task can be partitioned among many workers with no communication among them (Fig. 2.1). This is true of reaping wheat or picking cotton; it is not even approximately true of systems programming. "
11 " Today I am more convinced than ever. Conceptual integrity is central to product quality. Having a system architect is the most important single step toward conceptual integrity. These principles are by no means limited to software systems, but to the design of any complex construct, whether a computer, an airplane, a Strategic Defense Initiative, a Global Positioning System. After teaching a software engineering laboratory more than 20 times, I came to insist that student teams as small as four people choose a manager and a separate architect. Defining distinct roles in such small teams may be a little extreme, but I have observed it to work well and to contribute to design success even for small teams. "
12 " Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program. "
13 " Study after study shows that the very best designers produce structures that are faster, smaller, simpler, cleaner, and produced with less effort. The differences between the great and the average approach an order of magnitude. "
14 " ...give a great deal of attention to keeping his managers and his technical people as interchangeable as their talents allow. The barriers are sociological... To overcome this problem some laboratories, such as Bell Labs, abolish all job titles. Each professional employee is a "member of technical staff. "
15 " The challenge and the mission are to find real solutions to real problems on actual schedules with available resources. "
16 " 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. "
17 " Adding manpower to a late software project makes it later. "
18 " By documenting a design, the designer exposes himself to the criticisms of everyone, and he must be able to defend everything he writes. If the organizational structure is threatening in any way, nothing is going to be documented until it is completely defensible. "
19 " Einstein repeatedly argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer. "
20 " Organizations which design systems are constrained to produce systems which are copies of the communication structures of these organizations. "