New book in My Library - The Mythical Man-Month: Essays on Software Engineering by Brooks Jr., Frederick P

“The Mythical Man-Month” (MM-M) has become part of my library.

https://images-na.ssl-images-amazon.com/images/I/51WIpM70FEL._SX334_BO1,204,203,200_.jpg

You, probably, have already heard a lot about this book. It was originally published in 1975. The only fact that it stays actual 44 years after says quite a lot about it. It is super famous in software engineering environment and, probably, could be called nowadays software engineering literature classics.

This book reveals to us some pieces of story of building IBM/360 & OS/360. Mr. Brooks was playing a role of project manager for both of them. I have remembered one of his phrases that has deeply settled in my mind - “I’m writing to you from a prospective of project manager that did several multi-million dollar mistakes”. It’s hard to imagine the level of responsibility and pressure that was put on his shoulders that time.

In this post I’m going to share some of my thoughts regarding this book.

Mr. Brooks speaks about software engineering from a prospective of project manager with a strong technical expertise and hands-on experience of software engineer. Mythical Man-Month is written as a set of essays. Book contains a lot of retrospective speculations. Sometimes during reading I caught myself thinking that it would be great to make such kind of deep retrospective on all large projects and public it on widely accessible source. Things like that would give industry a chance to learn on others experience and collect so needed metrics for further analysis.

You need to consider that this book was written that time, when engineers used assembly language as their main programming language. State of tools was rather different from nowadays. Git, Jenkins, Jira, Confluence? Forget about it. However, the root cause of the problems were the same. Mr. Brooks perfectly identifies complexity of software under construction as a main software engineering problem.

I want to talk about two things that I personally found most interesting: “The Brook’s Law” and “No Silver Bullet”.

The Brook’s Law

The Brook’s Law says: “adding human resources to a late software project makes it later”.

Questionable?

Yes, it is.

However, from my experience, I tend to agree. From the experience I have adding people on the software projects adds quite challenging tasks for project leaders on all levels. In fact one needs to re-establish development plan to utilize new human resources. It includes changes of all aspects of software development process and strongly influence architectural decisions. Having more people on project will require more sophisticated processes and architecture that consequently increase complexity. Increased complexity will result in larger scope of work that will produce the same resulting product.

It all definitely depends on particular numbers, but I tend to agree that there is a tendency to exponential growth of scope of work while more people are added on the software project.

No Silver Bullet

Another interesting topic is “No Silver Bullet” (NSB) chapter. “There will be no orders-of-magnitude changes in performance of software engineering teams in 10 years” it says.

The main reason for this is that Complexity lives in the heart of any software engineering project.

That is what Mr. Brooks says. I do raise both hands up and totally agree.

All the books I’ve read were mainly aimed to show a way how to deal with software complexity. GoF Design Patterns, Enterprise Architecture Patterns, Refactoring, Microservices, Domain-Driven Design - all these things are nowadays bullets for struggling software complexity. Are they “silver”? I’m not sure. They definitely help a lot, but it doesn’t seem that they could cause an order-of-magnitude changes.

Despite the fact that this book was written in quite a different world, I would recommend you to read it. It would be super useful for both software project managers and software engineers.