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.