I know I’m not the first and I certainly won’t be the last, but I’ve decided to review Mythical Man Month by Fred Brooks anyway. Unless you are in the technology realm, you probably haven’t heard of it. Even if you are in the technology realm, you might not have heard of it. Therefore, it bears repeating for the sanity of you and your people.
Mr. Brooks puts forth the simple conjecture that intellectual jobs – software development, hardware development, etc – are completely different from jobs which are based on physical labor. This is relatively simple to support. For example, two people can paint a room faster than one, three faster than two, etc. Although this eventually drops off (Law of Diminishing Returns as people get in each others’ way, etc), it will hold true for a while. This is why most retail stores increase their staffs from Oct – Dec. This does not hold true for intellectual pursuits. Two people cannot always do it faster than one, and three not always faster than two. This has to do with communication paths and the inherent “mental-ness” of the process.
In a job such as painting a room, the task can be laid out explicitly in advance. The colors will be chosen, the doorframes can be taped, and the proper supplies can be bought. There is little room for interpretation and adding a second person requires handing them a paint brush and pointing at a wall. In my younger days, when I did theatre, this was a perfect task for newbies because it provided them an opportunity to contribute in a way that was relatively low risk to the rest of the production and a chance to meet and talk with people.
As most of you know, software development is quite different. Even with requirements documents, a robust development methodology, and strong – preferably automated – test practices, people are not interchangeable and definitely NOT equal. There are formally trained graduates who are incompetent, self-taught prodigies, and the entire spectrum in between. KC, for example, has been doing various forms of software development for nearly 9 years and has had little formal training. Regardless of this, many project managers believe(d) that developers are interchangeable bodies and one hour/month of work for one developer is one hour/month of work for another.
This is demonstrably not true and Mr. Brooks points to the studies and his personal experience to back this up. Almost the entire book is dedicated to deconstructing this myth and presents various methods that his group at IBM in the 60’s used to fight this problem. The most interesting aspect is that although the technology has fundamentally changed, the same problems exist.
He wraps up describing that “There is No Silver Bullet” or NSB. There was a belief that [insert chosen technology/strategy here – Waterfall Methodology, Object Oriented Programming, Agile Methods, Automated Unit Testing, Client Involvement, etc] would further simplify development make life simpler and streamline development practices. In some cases it has, but it still depends on the people:
A nail gun will greatly speed up a seasoned journeyman carpenter, but in the hands of a monkey, it’s a deadly weapon.
Although I have not done the bulk of the book justice, pick up a copy and read it. If you’re in management, it may provide a new perspective on your developers. If you’re a developer, it may provide perspective on which end of the scale you inhabit. Either way, it’s a good read and I’ll give it a 9/10.