I started reading The Mythical Man-Month by Fredrick Brooks– a near 40 year old book about software development teams and timelines. The underlying idea is that you cannot just throw workers at a project and expect results. I heard about this book a while ago, but I couldn’t ever track it down at a library, nor could I find someone who would let me borrow it and to be honest, I didn’t want to pay for it. Just recently I found someone who would loan it to me. The book is old, and there are some parts in it that help show its age, but the underlying concepts are there and go into more thought than I’ve ever had about them.
While I’m only a few chapters in, as a developer, it has been quite depressing for me. There’s a section where it talks about the productivity of developers, and brought their salary into play. The developer who makes twice as much as the other is not twice as productive. The developer at twice the salary may be ten times as productive!
It is an interesting time for me to go through this book. I’ve been at my current workplace for just over a year, and I’ve been with my project since its beginning. I’ve seen developers come and go on the project. Team leads, and project managers moved around. At one point, we had 11 workers on the project full time, and in less than a week the team will have six. The number fluctuates, and the team looks very different than when we first started.
For the most part, the team has worked well together. I believe that is because of each individual’s ego is inline. Mythical Man-Month compares development teams to surgical teams. Each person in a surgical team has a specific task. One person may be deciding how to split away something, another person may be splitting that into smaller more manageable tasks. Another could be actually doing those tasks. Then there are the individuals who are helping support those actually building, such as secretaries, and managers who will be gathering information from your client. This works because everyone knows their role, and follows it.
So why did the beginning of Mythical Man-Month depress me? Because I’m seeing the concepts in the book come into play and be accurate. Developers are optimists, and they’re horrible at estimating. The money wasted on bringing new people on board only to see them go has costs go through the roof without positive impacts on the team. Furthermore, I am now thinking about if I am as good of a team member as I had thought, my place on the team, and what I’ve been doing to improve it.
It also depresses me a bit because of the approach to software design, and how ends up in the end user’s hands. For example, our product owner will request some report. The team will gather information on said report, by asking questions, doing some database research and basic proposals. Everyone will agree that this report is important and it needs to be generated a certain way. While in the middle of actually building it, suddenly the requirements will change. For me that is extremely depressing. I feel that it shows a lack of planning and respect for the developers’ time. Mythical Man-Month touches on a related topic when it goes into talking about focus and effort. A feature that may be used once a quarter can take a long time to build. What if those efforts went into something used every day? I’ve seen problems like this throughout my career, and it makes me stop and wonder about where my energy should be placed.