The Mythical Man-Month: Essays on Software Engineering is a book on software engineering and project management by Fred Brooks first published in 1975, with subsequent editions in 1982 and 1995. Its central theme is that adding manpower to a software project that is behind schedule delays it even longer. This idea is known as Brooks's law, and is presented along with the second-system effect and advocacy of prototyping. Brooks's observations are based on his experiences at IBM while managing the development of OS/360. He had added more programmers to a project falling behind schedule, a decision that he would later conclude had, counter-intuitively, delayed the project even further. He also made the mistake of asserting that one project—involved in writing an ALGOL compiler—would require six months, regardless of the number of workers involved (it required longer). The tendency for managers to repeat such errors in project development led Brooks to …
The Mythical Man-Month: Essays on Software Engineering is a book on software engineering and project management by Fred Brooks first published in 1975, with subsequent editions in 1982 and 1995. Its central theme is that adding manpower to a software project that is behind schedule delays it even longer. This idea is known as Brooks's law, and is presented along with the second-system effect and advocacy of prototyping.
Brooks's observations are based on his experiences at IBM while managing the development of OS/360. He had added more programmers to a project falling behind schedule, a decision that he would later conclude had, counter-intuitively, delayed the project even further. He also made the mistake of asserting that one project—involved in writing an ALGOL compiler—would require six months, regardless of the number of workers involved (it required longer). The tendency for managers to repeat such errors in project development led Brooks to quip that his book is called "The Bible of Software Engineering", because "everybody quotes it, some people read it, and a few people go by it".
I find that programmers seem better at coordinating work and communicating about work compared to other fields that I have experience with. The work is organized in a much more humane way than the email inbox driven hyper-active hive-mind model of other office workers so vividly described in Cal Newport’s in “A World Without Email”. In fact, programmers seem to already be living in that future utopia of an emailless world. How did it get to be this way? I think this book may have played a major role.
Despite being only a few years removed from computer programs consisting of stacks of cards, high level languages being a new thing compared to assembly language, and changesets being distributed via microfilm, this book, originally published in 1975, outlines a way of developing software that resonates today:
In “The Surgical Team” Brooks outlines the roles required in a software …
I find that programmers seem better at coordinating work and communicating about work compared to other fields that I have experience with. The work is organized in a much more humane way than the email inbox driven hyper-active hive-mind model of other office workers so vividly described in Cal Newport’s in “A World Without Email”. In fact, programmers seem to already be living in that future utopia of an emailless world. How did it get to be this way? I think this book may have played a major role.
Despite being only a few years removed from computer programs consisting of stacks of cards, high level languages being a new thing compared to assembly language, and changesets being distributed via microfilm, this book, originally published in 1975, outlines a way of developing software that resonates today:
In “The Surgical Team” Brooks outlines the roles required in a software development shop: The surgeon/copilot (product development), the administrator (project management), the toolsmith (dev-ops), and the tester (QA).
In “Why Did the Tower of Babel Fail”, Brooks advocates for a “Project Workbook” with features that today are available in tools such as Jira and Github.
The idea of developing a MVP and iterating on it is the topic of “Plan to Throw One Away”.
“The Other Face” advocates for writing self-documenting code with meaningful names, formatting, and comments. These ideas are greatly expanded on in Clean Code by Robert C. Martin.
That said I would not recommend this book for someone just wanting to get up to speed on these topics. For one thing, I found the outdated language distracting; as the title suggests, every programmer in this book is a “man.” Much of the book is spent discussing obsolete software and hardware systems. But as a fascinating time capsule into the history of computing and the development of the practice of programming it is worth a read and still offers relevant lessons 48 years later.
The Mythical Man-Month is a collection of classic papers on software engineering, with some additional commentary (particularly in the 1995 edition) and connective tissue to turn them into an approachable narrative. It dates from a time when software engineering consisted of moderately large teams of programmers working on software packages written mostly in assembly or machine language for mainframe and minicomputers. The majority of the essays in the book are from the author’s experience on the OS/360 operating system project for IBMs enormous System/360 mainframe computer. At the time, OS/360 was one of the (or possibly the) largest software development efforts ever attempted.
While the above description makes it sound like the Mythical Man-Month is as dated as the woodcut of a mammoth struggling in the La Brea tar pits found on its cover, the author did an amazing job of extracting insights about software development that not only …
The Mythical Man-Month is a collection of classic papers on software engineering, with some additional commentary (particularly in the 1995 edition) and connective tissue to turn them into an approachable narrative. It dates from a time when software engineering consisted of moderately large teams of programmers working on software packages written mostly in assembly or machine language for mainframe and minicomputers. The majority of the essays in the book are from the author’s experience on the OS/360 operating system project for IBMs enormous System/360 mainframe computer. At the time, OS/360 was one of the (or possibly the) largest software development efforts ever attempted.
While the above description makes it sound like the Mythical Man-Month is as dated as the woodcut of a mammoth struggling in the La Brea tar pits found on its cover, the author did an amazing job of extracting insights about software development that not only stand the test of time, but also apply to much smaller projects — including projects of the scale that students are likely to encounter in their classes. It is sprinkled throughout with observations and aphorisms that are immediately useful. The most famous of these is probably Brooks’s Law, which states that “Adding manpower to a late software project makes it later.” For my own part, I find the observation “Plan to throw one away; you will, anyhow” to be my favorite advice in the book.
In addition, Brooks’s description of the The Joys of the Craft of software development in Chapter 1 is one of the most beautiful summaries of the field that I have ever read. I will leave you with this quote:
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.
Review of 'The Mythical Man-Month' on 'LibraryThing'
5 estrellas
This book was written in the sixties, yet, I find its recommendations and requirements for software development are just as helpful, humorous and educational in the 21st century. I still don't understand how they got any work done back then with manually teletypes, printed requirements documents being updated everyday and the like, but they still had the exact same problems we do now. returnreturnThe two things I took away most, "the more people you add to a late project, the later the project is." Along with the title of the mythical man month, is the idea "nine women can't make a baby in a month." The other point, was that whatever your estimate is for development time, you need to consider at least twice as much for validation. This is counter intuitive, you develop it once, you test it once, and that test takes less time than writing code did, …
This book was written in the sixties, yet, I find its recommendations and requirements for software development are just as helpful, humorous and educational in the 21st century. I still don't understand how they got any work done back then with manually teletypes, printed requirements documents being updated everyday and the like, but they still had the exact same problems we do now. returnreturnThe two things I took away most, "the more people you add to a late project, the later the project is." Along with the title of the mythical man month, is the idea "nine women can't make a baby in a month." The other point, was that whatever your estimate is for development time, you need to consider at least twice as much for validation. This is counter intuitive, you develop it once, you test it once, and that test takes less time than writing code did, but there is so much more. The covers testing for each release, it covers finding regressions later, and any other issue that may be written against that piece of code that wasn't exposed when it was first authored. These good testers make bug fixing much easier.