This is a very shallow summary of the Mythical Man Month, and it leaves out at least one concept that the book is most (in)famous for: the '10 times programmer'.
An excerpt:<p>> In one of their studies, Sackman, Erikson, and Grant were measuring performances of a group of experienced programmers. Within just this
group the ratios between best and worst performances averaged
about 10:1 on productivity measurements and an amazing 5:1 on
program speed and space measurements! In short the $20,000/year
programmer may well be 10 times as productive as the
$10,000/year one.<p>Brooks did mention some other really useful concepts that are still very valid today: 'No silver bullet' and 'The second-system effect'. These should have been mentioned as well.
I am surprised that there's less mention of Brook's proposed team organization, a team of 10 led by a surgeon. The team is supposed to work on a single project. Every org I have seen has much smaller teams with much more individual responsibility and attendant coordination problems.<p>I can see shaving 1-3 people off of Brook's ideal team (we don't need a secretary to type anymore, PM's that organize projects at the behest of a technical leader are effective).<p>What I have seen over and over is, whoever writes the most code tends to get the most power in an org. Whoever is delivering features quickly gets power. This kind of works, but these coders frequently leave poorly thought out architecture that is hard to extend.
While Brooks' book is nominally about software processes, in my career of over 40 years, I found it to be applicable to just about every engineering discipline to which I played a part. I read this book back in the 70's and then every 10 years or so and I never failed to learn something new from it. I just wish the managers and companies I worked for would have applied these lessons.
The Mythical Man Month is great. What makes it great, is that it circles around how important everything but code is, in any professional software development progression.<p>I would argue that it should be the bible for every manager that are managing engineers. They should study it thoroughly and all the literature it touches and mentions.<p>The best book I have read on software development by far.
It's always a surprise to know how far back good ideas actually go. Brooks figured out all this stuff in the 70s, pretty much as soon as it was possible for someone to have done this type of work and written a book about it.<p>Reminds me of Adam Smith's writings about the nascent factory economy, and perhaps ancient philosophers as well.
The concept of "conceptual integrity" is one of the most useful things I've ever learned. The tension between conceptual integrity and things like group-based communication and requirements-gathering (what one might call "representativeness") seems to me to be a foundational issue not just in software development but in human civilization as a whole.
This is nothing new.
In 1913, Max Ringelmann measured the effort of individuals when working in a group.
The results are impressive:
<a href="https://gallica.bnf.fr/ark:/12148/bpt6k54409695.image.f14" rel="nofollow noreferrer">https://gallica.bnf.fr/ark:/12148/bpt6k54409695.image.f14</a><p>A group of 8 persons provides the same amount of work as 4 individuals.
> As more people are added to a project, the complexity of communication increases exponentially.<p>Doesn't it increase by n^2? as per the picture with the graphs?
I've always had a little bit of a gripe with how the "communications complexity" is presented here. As if the only way to communicate on a team is to have everyone stand in a circle and yell at everyone else.<p>In reality, there is very often opportunity to take 1 project with ~3 engineers, and break it into 2 smaller projects each with ~3 engineers and run them mostly in parallel. Do your best to isolate those projects, but have a point of contact (EM, PM, tech lead) between the two teams to coordinate whatever dependencies are unavoidable, etc.<p>You'll notice, that this is just a smaller microcosm of how every company is actually structured anyway. There's still diminishing returns, but most people on the team never need to communicate directly with people outside of their project.
Another aspect discussed in TMMM not present in this summary is the possible benefits of AI.<p>Brooks says there can be some gains, but no silver bullet :)<p>- As a Testing Agent that learns how the system behave and how to test it as the developers interact with the agent.<p>- As a tutor, junior can learn from the knowledge of experts by interacting with the AI.<p>- For "automatic" programming when the problem is characterized by few parameters, when there are many known solutions and good knowledge to select the correct solution.<p>So far I've read about tutoring and automatic programming, but I haven't read about how to use AI to learn about the system and generate tests.
once, when complaining to a colleague about our workplace and their hiring and staffing idiosyncrasies, I quipped "I should give <manager> a copy of TMMM". My colleague, without missing a beat said "You should give him two copies so he can read it faster"