Mythical Man Month Quotes

We've searched our database for all the quotes and captions related to Mythical Man Month. Here they are! All 100 of them:

β€œ
Adding manpower to a late software project, makes it later.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The general tendency is to over-design the second system, using all the ideas and frills that were cautiously sidetracked on the first one.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The challenge and the mission are to find real solutions to real problems on actual schedules with available resources.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
For the human makers of things, the incompletenesses and inconsistencies of our ideas become clear only during implementation.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Organizations which design systems are constrained to produce systems which are copies of the communication structures of these organizations.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Conceptual integrity in turn dictates that the design must proceed from one mind, or from a very small number of agreeing resonant minds.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
A basic principle of data processing teaches the folly of trying to maintain independent files in synchonism.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
In fact, flow charting is more preached than practiced. I have never seen an experienced programmer who routinely made detailed flow charts before beginning to write programs
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Adding manpower to a late software project makes it later.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
In software development there’s a term called β€œBrooks’s Law” that Fred Brooks first coined back in 1975 in his seminal book The Mythical Man-Month. Put simply, Brooks’s Law says β€œadding manpower to a late software project makes it later.”8 This has been borne out in study after study.
”
”
Jeff Sutherland (Scrum: The Art of Doing Twice the Work in Half the Time)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Architecture must be carefully distinguished from implementation. As Blaauw has said, "Where architecture tells what happens, implementation tells how it is made to happen.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
An architect's first work is apt to be spare and clean. He knows he doesn't know what he's doing, so he does it carefully and with great restraint.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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. I am very thankful.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
How does a project get to be a year late? . . . . One day at a time.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Simplicity and straightforwardness proceed from conceptual integrity.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Never go to sea with two chronometers; take one or three.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
When a child has learned this architecture, he can tell time as easily from a wristwatch as from a church tower.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Organizations must be designed around the people available; not people fitted into pure-theory organizations.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The number of months of a project depends upon its sequential constraints. The maximum number of men depends upon the number of independent subtasks.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
More software projects have gone awry for lack of calendar time than for all other causes combined.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Especially noteworthy is his comment that new people added late in a development project must be team players willing to pitch in and work within the process, and not attempt to alter or improve the process itself!
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
For the human makers of things, the incompletenesses and inconsistencies of our ideas become clear only during implementation. Thus it is that writing, experimentation, "working out" are essential disciplines for the theoretician.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
These two Kings and two Queens governed Narnia well, and long and happy was their reign. At first much of their time was spent in seeking out the remnants of the White Witch's army and destroying them, and indeed for a long time there would be news of evil things lurking in the wilder parts of the forest- a haunting here and a killing there, a glimpse of a werewolf one month and a rumor of a hag the next. But in the end all that foul brood was stamped out. And they made good laws and kept the peace and saved good trees from being unnecessarily cut down, and liberated young dwarfs and young satyrs from being sent to school, and generally stopped busybodies and interferers and encouraged ordinary people who wanted to live and let live. And they drove back the fierce giants (quite a different sort from Giant Rumblebuffin) in the North of Narnia when these ventured across the frontier. And they entered into friendship and alliance with countries beyond the sea and paid them visits of state and received visits of state from them. And they themselves grew and changed as the years passed over them. And Peter became a tall and deep-chested man and a great warrior, and he was called King Peter the Magnificent. And Susan grew into a tall and gracious woman with black hair that fell almost to her feet and the kings of the countries beyond the sea began to send ambassadors asking for her hand in marriage. And she was called Queen Susan the Gentle. Edmund was a graver and quieter man than Peter, and great in council and judgement. He was called King Edmund the Just. But as for Lucy, she was always gay and golden-haired, and all the princes in those parts desired her to be their Queen, and her own people called her Queen Lucy the Valiant.
”
”
C.S. Lewis (The Lion, the Witch and the Wardrobe (Chronicles of Narnia, #1))
β€œ
Reducing the role conflict. The boss must first distinguish between action information and status information. He must discipline himself not to act on problems his managers can solve, and never to act on problems when he is explicitly reviewing status.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
...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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Any attempt to fix it with minimum effort will repair the local and obvious, but unless the structure is pure or the documentation very fine, the far-reaching effects of the repair will be overlooked. Second, the repairer is usually not the man who wrote the code, and often he is a junior programmer or trainee.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Years later, when I got to college, I learned about an important theory of psychology called Learned Helplessness, developed by Dr. Martin E. P. Seligman. This theory, backed up by years of research, is that a great deal of depression grows out of a feeling of helplessness: the feeling that you cannot control your environment.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
It is more important that milestones be sharp-edged and unambiguous than that they be easily verifiable by the boss. Rarely will a man lie about milestone progress, if the milestone is so sharp that he can't deceive himself. But if the milestone is fuzzy, the boss often understands a different report from that which the man gives.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
First, one must perform perfectly. The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn't work. Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.[1]
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Conway's Law predicts: "Organizations which design systems are constrained to produce systems which are copies of the communication structures of these organizations."[1] Conway goes on to point out that the organization chart will initially reflect the first system design, which is almost surely not the right one. If the system design is to be free to change, the organization must be prepared to change.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Program maintenance involves no cleaning, lubrication, or repair of deterioration. It consists chiefly of changes that repair design defects. Much more often than with hardware, these changes include added functions. Usually they are visible to the user. The total cost of maintaining a widely used program is typically 40 percent or more of the cost of developing it. Surprisingly, this cost is strongly affected by the number of users. More users find more bugs.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Digital computers are themselves more complex than most things people build; they have very large numbers of states. This makes conceiving, describing, and testing them hard. Software systems have orders of magnitude more states than computers do. Likewise, a scaling-up of a software entity is not merely a repetition of the same elements in larger size; it is necessarily an increase in the number of different elements. In most cases, the elements interact with each other in some nonlinear fashion, and the complexity of the whole increases much more than linearly. The complexity of software is an essential property, not an accidental one.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
How could anyone vote for the party of Adolf Hitler?” Sara’s mother had wondered aloud, aghast, after the results had come in. β€œHe served nine months in prison for treason.” β€œPeople are struggling,” Sara replied, thinking of her fellow students, their weary faces, their threadbare clothes, their grim prospects, their anger and hopelessness. β€œThey can’t find work and they’re afraid of what the future holds.” β€œThen along comes this loud, angry man,” Natan said, β€œpromising to take them back to a mythical golden age of prosperity, swearing to punish Germany’s enemies for wronging them. Some people respond to thatβ€”in this case, vast numbers of people.
”
”
Jennifer Chiaverini (Resistance Women)
β€œ
Because ease of use is the purpose, this ratio of function to conceptual complexity is the ultimate test of system design. Neither function alone nor simplicity alone defines a good design. This point is widely misunderstood. Operating System/360 is hailed by its builders as the finest ever built, because it indisputably has the most function. Function, and not simplicity, has always been the measure of excellence for its designers. On the other hand, the Time-Sharing System for the PDP-10 is hailed by its builders as the finest, because of its simplicity and the spareness of its concepts. By any measure, however, its function is not even in the same class as that of OS/360. As soon as ease of use is held up as the criterion, each of these is seen to be unbalanced, reaching for only half of the true goal.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Peopleware. A major contribution during recent years has been DeMarco and Lister's 1987 book, Peopleware: Productive Projects and Teams. Its underlying thesis is that "The major problems of our work are not so much technological as sociological in nature." It abounds with gems such as, "The manager's function is not to make people work, it is to make it possible for people to work." It deals with such mundane topics as space, furniture, team meals together. DeMarco and Lister provide real data from their Coding War Games that show stunning correlation between performances of programmers from the same organization, and between workplace characteristics and both productivity and defect levels. The top performers' space is quieter, more private, better protected against interruption, and there is more of it. . . . Does it really matter to you . . . whether quiet, space, and privacy help your current people to do better work or [alternatively] help you to attract and keep better people?[19]
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Why is programming fun? What delights may its practitioner expect as his reward? First is the sheer joy of making things. As the child delights in his first mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God’s delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake. Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child’s first clay pencil holder β€œfor Daddy’s office.” Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate. Fourth is the joy of always learning, which springs from the nonrepeating nature of the task. In one way or another the problem is ever new, and its solver learns something; sometimes practical, sometimes theoretical, and sometimes both. Finally, there is the delight of working in such a tractable medium. 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. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (As we shall see later, this very tractability has its own problems.) Yet the program construct, unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard and a display screen comes to life, showing things that never were nor could be. Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
By the architecture of a system, I mean the complete and detailed specification of the user interface. For a computer this is the programming manual. For a compiler it is the language manual. For a control program it is the manuals for the language or languages used to invoke its functions. For the entire system it is the union of the manuals the user must consult to do his entire job. The architect of a system, like the architect of a building, is the user's agent. It is his job to bring professional and technical knowledge to bear in the unalloyed interest of the user, as opposed to the interests of the salesman, the fabricator, etc.[2] Architecture must be carefully distinguished from implementation. As Blaauw has said, "Where architecture tells what happens, implementation tells how it is made to happen."[3] He gives as a simple example a clock, whose architecture consists of the face, the hands, and the winding knob. When a child has learned this architecture, he can tell time as easily from a wristwatch as from a church tower. The implementation, however, and its realization, describe what goes on inside the caseβ€”powering by any of many mechanisms and accuracy control by any of many.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
He found that when the Montreal Canadiens ice hockey teamβ€”once described as the national team of French Canadaβ€”got knocked out of the playoffs early between 1951 and 1992, Quebecois males aged fifteen to thirty-four became more likely to kill themselves. Robert Fernquist, a sociologist at the University of Central Missouri, went further. He studied thirty American metropolitan areas with professional sports teams from 1971 to 1990 and showed that fewer suicides occurred in cities whose teams made the playoffs more often. Routinely reaching the playoffs could reduce suicides by about twenty each year in a metropolitan area the size of Boston or Atlanta, said Fernquist. These saved lives were the converse of the mythical Brazilians throwing themselves off apartment blocks. Later, Fernquist investigated another link between sports and suicide: he looked at the suicide rate in American cities after a local sports team moved to another town. It turned out that some of the fans abandoned by their team killed themselves. This happened in New York in 1957 when the Brooklyn Dodgers and New York Giants baseball teams left, in Cleveland in 1995–1996 when the Browns football team moved to Baltimore, and in Houston in 1997–1998 when the Oilers football team departed. In each case the suicide rate was 10 percent to 14 percent higher in the two months around the team’s departure than in the same months of the previous year. Each move probably helped prompt a handful of suicides. Fernquist wrote, β€œThe sudden change brought about due to the geographic relocations of pro sports teams does appear to, at least for a short time, make highly identified fans drastically change the way they view the normative order in society.” Clearly none of these people killed themselves just because they lost their team. Rather, they were very troubled individuals for whom this sporting disappointment was too much to bear. Perhaps the most famous recent case of a man who found he could not live without sports was the Gonzo author Hunter S. Thompson. He shot himself in February 2005, four days after writing a note in black marker with the title, β€œFootball Season Is Over”:
”
”
Simon Kuper (Soccernomics: Why England Loses, Why Spain, Germany, and Brazil Win, and Why the U.S., Japan, Australiaβ€”and Even Iraqβ€”Are Destined to Become the Kings of the World's Most Popular Sport)
β€œ
It is more important that milestones be sharp-edged and unambiguous than that they be easily verifiable by the boss. Rarely will a man lie about milestone progress, if the milestone is so sharp that he can't deceive himself. But if the milestone is fuzzy, the boss often understands a different report from that which the man gives. To supplement Sophocles, no one enjoys bearing bad news, either, so it gets softened without any real intent to deceive.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
On balance I think the microfiche was a very happy mechanism, and I would recommend it over a paper workbook for very large projects.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Good cooking takes time. If you are made to wait, it is to serve you better, and to please you.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Going to the office wasn't as pleasant lately, Sam thought, as he made his way through the back entry to the detectives' division. There weren't so many people there that day, and it seemed like a lot of them were avoiding the place, just staying away as much as they could. He could understand that. After almost ten years as a Denver cop, Sam was sick of seeing what humanity was really capable of. He had grown up reading cop stories, always seeing how the cops would save the day, watching them rescue the innocent and punish the guilty every week on TV, until he finally knew that he had to be one himself. After a short stint in the Army that never even got him out of the country, he'd come home and applied for the academy. He'd been accepted, and that was the start of an illustrious career. Now, it was all he could do to drag himself out of bed in the mornings, make himself come in and see what new horrors he'd have to deal with. The past four months he'd been on loan to the DEA, and they'd made some big drug busts, shut down some of the most evil purveyors of sin and death that ever lived, but they were like the mythical hydraβ€”as soon as you cut off one of its heads, three more grew back to take its place. Sam wanted to stop cutting off heads and find the creature's heart, but there was almost no evidence as to where that heart might be. They knew there was something big behind the drug operations in the city, but it was so well organized and so carefully designed that no one seemed to have any idea where or how to find it. His cell rang as he sat down at his desk, and he saw his partner's number. Dan Jacobs was already out on his station, watching one of the dealers they'd identified the day before. β€œYo,” Sam answered. β€œSam, it's Dan. I been thinkin', and it seems to me that we might be lookin' in the wrong direction, y'know?” Sam blinked a couple of times. β€œDanny, I've been awake for about fifteen minutes, and haven't even opened my Starbuck's yet. What the heck are you talkin' about?” β€œI'm sayin', maybe we're goin' about this all the wrong way, tryin' to find dealers and trail 'em, follow the tracks up the ladder. There's something about this whole setup that smacks of serious organization, something big enough to hide in plain sight, know what I mean? If it's that well laid out, we can follow minions all day long, we're never gonna find the top guy, because they don’t ever see the top guys.” Sam nodded. β€œYeah, you're probably right,” he said, β€œbut unless you got a crystal ball lead on where else to go, I don’t know what good it's doin' us. Where else we gonna find any leads at all? Got a clue, there?” β€œMaybe,” Dan said. β€œWe've been tailing a lot of these clowns the past few weeks, right? Have you noticed one thing they all do the same?” Sam thought about it, but nothing jumped out at him. He looked at it from a couple of different angles, then shook his head. Into the phone, he said, β€œNope. So, what is it?” β€œFacebook. No matter what else they're doin', these bastards never miss checking in on Facebook every day, several times a day. They go on, look at what people are sayin' on their pages, sometimes they answer and sometimes they don't, and then they go back to their drug dealin' ways.” Sam rubbed his temple. β€œDan, everyone does that. Everyone on freakin' earth is on Facebook, and always checkin' it out. That's just part
”
”
David Archer (The Grave Man (Sam Prichard #1))
β€œ
The brain alone is intricate beyond mapping, powerful beyond imitation, rich in diversity, self-protecting, and self-renewing. The secret is that it is grown, not built. So it must be with our software systems.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Nothing even convincing, much less exciting, has yet emerged from such efforts. I am persuaded that nothing will.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Ease of use is enhanced only if the time gained in functional specification exceeds the time lost in learning, remembering, and searching manuals.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
conceptual integrity of a system determines its ease of use. Good features and ideas that do not integrate with a system's basic concepts are best left out.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Falkoff, A. D., K. E. Iverson, E. H. Sussenguth, "A formal description of System/360," IBM Systems Journal, 3, 3 (1964), pp. 198–261.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The means by which communication is obviated are division of labor and specialization of function. The tree-like structure of organizations reflects the diminishing need for detailed communication when division and specialization of labor are applied
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Communication and its consequent, organization, are critical for success. The techniques of communication and organization demand from the manager much thought and as much experienced competence as the software technology itself.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Fostering a total-system, user-oriented attitude may well be the most important function of the programming manager.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
First, writing the decisions down is essential. Only when one writes do the gaps appear and the inconsistencies protrude. The act of writing turns out to require hundreds of mini-decisions, and it is the existence of these that distinguishes clear, exact policies from fuzzy ones. Second, the documents will communicate the decisions to others. The manager will be continually amazed that policies he took for common knowledge are totally unknown by some member of his team. Since his fundamental job is to keep everybody going in the same direction, his chief daily task will be communication, not decision-making, and his documents will immensely lighten this load.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
the mythical man-month.
”
”
Gabriel Weinberg (Super Thinking: The Big Book of Mental Models)
β€œ
On another project the best engineering manager I ever saw served often as a giant flywheel, his inertia damping the fluctuations that came from market and management people.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Another important set of new ideas for designing the bugs out of programs derives largely from Dijkstra,[3] and is built on a theoretical structure by B ΓΆhm and Jacopini.[4] Basically the approach is to design programs whose control structures consist only of loops defined by a statement such as DO WHILE, and conditional portions delineated into groups of statements marked with brackets and conditioned by an IF . . . THEN . . . ELSE. B ΓΆhm and Jacopini show these structures to be theoretically sufficient; Dijkstra argues that the alternative, unrestrained branching via GO TO, produces structures that lend themselves to logical errors. The basic notion is surely sound.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Very good professional programmers are ten times as productive as poor ones, at same training and two-year experience level.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The industry is changing now, as many small companies are being acquired by larger ones. It remains to be seen if the larger acquirers will understand the importance of preserving the creativity of smallness.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Our project had not been under way six months before we hit another problem. The workbook was about five feet thick! If we had stacked up the 100 copies serving programmers in our offices in Manhattan's Time-Life Building, they would have towered above the building itself. Furthermore, the daily change distribution averaged two inches, some 150 pages to be interfiled in the whole. Maintenance of the workbook began to take a significant time from each workday.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
In the seminal high-tech book The Mythical Man-Month, IBM veteran and computer science professor Frederick Brooks argued that adding manpower to complex software projects actually delayed progress. One reason was that the time and money spent on communication increased in proportion to the number of people on a project.
”
”
Brad Stone (The Everything Store: Jeff Bezos and the Age of Amazon)
β€œ
Now I do not think software managers have less inherent courage and firmness than chefs, nor than other engineering managers. But false scheduling to match the patron's desired date is much more common in our discipline than elsewhere in engineering. 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. Clearly
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
testing is usually the most mis-scheduled part of programming.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
One man who did not understand was the New Zealanders’ legendary commander, Lieutenant General Bernard C. Freyberg. English-born but raised in New Zealand, Freyberg had been a dentist before finding his true calling as warrior of Homeric strength and courage. Known as Tiny to his troops, he had a skull the size of a medicine ball, with a pushbroom mustache and legs that extended like sycamore trunks from his khaki shorts. In the Great War, he had won the Victoria Cross on the Somme, served as a pallbearer for his great friend Rupert Brooke, and emerged so seamed by shrapnel that when Churchill once persuaded him to display his wounds the count reached twenty-seven. More were to come. Oarsman, boxer, swimmer of the English Channel, he had been medically retired for β€œaortic incompetence” in the 1930s before being summoned back to uniform. No greater heart beat in British battle dress. Churchill a month earlier had proclaimed Freyberg β€œthe salamander of the British empire,” an accolade that raised Kiwi hacklesβ€”β€œWha’ in ’ell’s a β€˜sallymander’?”—until the happy news spread that the creature mythically could pass through fire unharmed.
”
”
Rick Atkinson (An Army at Dawn: The War in Africa, 1942-1943)
β€œ
The programmer at wit's end for lack of space can often do best by disentangling himself from his code, rearing back, and contemplating his data. Representation is the essence of programming.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
the conceptual integrity of a system determines its ease of use.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
I believe that large programming projects suffer management problems different in kind from small ones, due to division of labor. I believe the critical need to be the preservation of the conceptual integrity of the product itself.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Finally, there is the delight of working in such a tractable medium. 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. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (As we shall see later, this very tractability has its own problems.) Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Fifth, when schedule slippage is recognized, the natural (and traditional) response is to add manpower. Like dousing a fire with gasoline, this makes matters worse, much worse. More fire requires more gasoline, and thus begins a regenerative cycle which ends in disaster.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Oversimplifying outrageously, we state Brooks's Law: Adding manpower to a late software project makes it later. This then is the demythologizing of the man-month. The number of months of a project depends upon its sequential constraints. The maximum number of men depends upon the number of independent subtasks. From these two quantities one can derive schedules using fewer men and more months.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
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. We still make syntax errors, to be sure; but they are fuzz compared to the conceptual errors in most systems. If this is true, building software will always be hard. There is inherently no silver bullet.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
I do not believe we will find the magic here. Program verification is a very powerful concept, and it will be very important for such things as secure operating system kernels. The technology does not promise, however, to save labor. Verifications are so much work that only a few substantial programs have ever been verified. Program verification does not mean error-proof programs. There is no magic here, either. Mathematical proofs also can be faulty. So whereas verification might reduce the program-testing load, it cannot eliminate it. More seriously, even perfect program verification can only establish that a program meets its specification. 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.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Even at a cost of $100,000, a purchased piece of software is costing only about as much as one programmer-year. And delivery is immediate! Immediate at least for products that really exist, products whose developer can refer the prospect to a happy user. Moreover, such products tend to be much better documented and somewhat better maintained than homegrown software. The development of the mass market is, I believe, the most profound long-run trend in software engineering. The cost of software has always been development cost, not replication cost. Sharing that cost among even a few users radically cuts the per-user cost. Another way of looking at it is that the use of n copies of a software system effectively multiplies the productivity of its developers by n. That is an enhancement of the productivity of the discipline and of the nation.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The big change has been in the hardware/software cost ratio. The buyer of a $2-million machine in 1960 felt that he could afford $250,000 more for a customized payroll program, one that slipped easily and nondisruptively into the computer-hostile social environment. Buyers of $50,000 office machines today cannot conceivably afford customized payroll programs; so they adapt their payroll procedures to the packages available.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Therefore 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 almost never have thought of the problem in the detail that must be specified. Even the simple answerβ€”"Make the new software system work like our old manual information-processing system"β€”is in fact too simple. Clients never want exactly that. Complex software systems are, moreover, things that act, that move, that work. The dynamics of that action are hard to imagine. So in planning any software activity, it is necessary to allow for an extensive iteration between the client and the designer as part of the system definition.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
If, as I believe, the conceptual structures we construct today are too complicated to be accurately specified in advance, and too complex to be built faultlessly, then we must take a radically different approach. Let us turn to nature and study complexity in living things, instead of just the dead works of man. Here we find constructs whose complexities thrill us with awe. The brain alone is intricate beyond mapping, powerful beyond imitation, rich in diversity, self-protecting, and self-renewing. The secret is that it is grown, not built. So it must be with our software systems. Some years ago Harlan Mills proposed that any software system should be grown by incremental development.[11] That is, the system should first be made to run, even though it does nothing useful except call the proper set of dummy subprograms. Then, bit by bit it is fleshed out, with the subprograms in turn being developed into actions or calls to empty stubs in the level below. I have seen the most dramatic results since I began urging this technique on the project builders in my software engineering laboratory class. Nothing in the past decade has so radically changed my own practice, or its effectiveness. The approach necessitates top-down design, for it is a top-down growing of the software. It allows easy backtracking. It lends itself to early prototypes. Each added function and new provision for more complex data or circumstances grows organically out of what is already there. The morale effects are startling. Enthusiasm jumps when there is a running system, even a simple one. Efforts redouble when the first picture from a new graphics software system appears on the screen, even if it is only a rectangle. One always has, at every stage in the process, a working system. I find that teams can grow much more complex entities in four months than they can build.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
I have long enjoyed asking candidate programmers, "Where is next November?" If the question is too cryptic, then, "Tell me about your mental model of the calendar." The really good programmers have strong spatial senses; they usually have geometric models of time; and they quite often understand the first question without elaboration. They have highly individualistic models.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Power tools for the mind. The most dramatic way to improve the productivity of management information systems (MIS) programmers is to go down to your local computer store and buy off the shelf what they would have built. This is not ridiculous; the availability of cheap, powerful shrink-wrapped software has met many needs that formerly would have occasioned custom packages. These power tools for the mind are more like electric drills, saws, and sanders than they are like big complex production tools.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Any product that is sufficiently big or urgent to require the effort of many minds thus encounters a peculiar difficulty: the result must be conceptually coherent to the single mind of the user and at the same time designed by many minds.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Third, enumerating the frequencies explicitly helps everyone recognize which decisions depend upon which user set properties. Even this sort of informal sensitivity analysis is valuable. When it develops that very important decisions are hinging on some particular guess, then it is worth the cost to establish better estimates for that value.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
To summarize: write down explicit guesses for the attributes of the user set. It is far better to be explicit and wrong than to be vague.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
it sprang from a conviction that the quality of the people on a project, and their organization and management, are much more important factors in success than are the tools they use or the technical approaches they take. Subsequent researches have supported that conviction. Boehm's COCOMO model finds that the quality of the team is by far the largest factor in its success, indeed four times more potent than the next largest factor.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The large organization will consist of many semi-autonomous units, which we may call quasi-firms. Each of them will have a large amount of freedom, to give the greatest possible chance to creativity and entrepreneurship. . . . Each quasi-firm must have both a profit and loss account, and a balance sheet.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The computer has brought a similar fluidity to many other media: artistic drawings, building plans, mechanical drawings, musical compositions, photographs, video sequences, slide presentations, multimedia works, and even to spreadsheets. In each case, the manual method of production required recopying the bulky unchanged parts in order to see changes in context. Now we enjoy for each medium the same benefits that time-sharing brought to software creationβ€”the ability to revise and to assess instantly the effect without losing one's train of thought.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
Radically better software robustness and productivity are to be had only by moving up a level, and making programs by the composition of modules, or objects. An especially promising trend is the use of mass-market packages as the platforms on which richer and more customized products are built. A truck-tracking system is built on a shrink-wrapped database and communications package; so is a student information system. The want ads in computer magazines offer hundreds of Hypercard stacks and customized templates for Excel, dozens of special functions in Pascal for MiniCad or functions in AutoLisp for AutoCad.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
This really does attack essence. Because the build-on-package phenomenon does not today affect the average MIS programmer, it is not yet very visible to the software engineering discipline. Nevertheless, it will grow rapidly, because it does attack the essence of fashioning conceptual constructs. The shrink-wrapped package provides a big module of function, with an elaborate but proper interface, and its internal conceptual structure does not have to be designed at all. High-function software products such as Excel or 4th Dimension are big modules indeed, but they serve as known, documented, tested modules with which to build customized systems. Next-level application builders get richness of function, a shorter development time, a tested component, better documentation, and radically lower cost. The difficulty, of course, is that the shrink-wrapped software package is designed as a stand-alone entity whose functions and interfaces metaprogrammers cannot change. Moreover, and more seriously, shrink-wrapped package builders seemingly have little incentive to make their products suitable as modules in a larger system. I
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The metaprogrammer who uses one, or especially several, applications as components in a larger system. This is the user whose needs are poorly met today. This is also the use which promises substantial effectiveness gains in building new applications.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
If there are n workers on a project, there are (n2–n)/2 interfaces across which there may be communication, and there are potentially almost 2n teams within which coordination must occur. The purpose of organization is to reduce the amount of communication and coordination necessary; hence organization is a radical attack on the communication problems treated above. The means by which communication is obviated are division of labor and specialization of function. The tree-like structure of organizations reflects the diminishing need for detailed communication when division and specialization of labor are applied.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
β€œ
The job done least well by project managers is to utilize the technical genius who is not strong on management talent.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)