Another Day, Another Deadline
Here at Livio, we recently wrapped up version 5 of our product Livio Connect. Livio Connect is a protocol that connects smartphones with cars. The days started to become fewer as we approached the deadline, but the amount of work didn’t seem to let up. When it looked like we may be going past the deadline my boss, Jake Sigal, asked if we needed some more help. He would get more people to help with the project. This rang a bell for me, this was a perfect example of “Brooke’s Law.”
Brooke’s Law, for those who have never read “The Mythical Man Month” by Freddrick Brooke’s Jr, states that “adding manpower to a late software project makes it later.” This was published in 1975, but still holds true today. There is an expensive ramp up time for new developers to get on board with a project. This is not only taking away from the new developers time, but it requires someone who could be working on the project directly to use up their time. This is something that is not common for all types of engineering tasks, but software development is at such an abstracted level that it’s nearly impossible for someone to jump in and produce anything worth while. I believe this is true because unlike other engineering fileds, software isn’t bound by the laws of physics, nor does it have to adhere to what we know is true in the world. Software development is basically the process of creating a new world where you define your own rules and how things should work. So when you try to bring in someone new to your world, it takes time to explain to them that maybe you made the metaphorical sky green and the grass purple. You have to then explain why you made these choices and how they can leverage them in their everyday life in the new world.
I would call this ramp up process the “Potty Training Phase.” In the beginning you’ll have to constantly reinforce best practices of using the code, but inevitably the new developer will have accidents and you’ll have to clean them up. Over time the developer will learn to do things on their own and be able to clean up their own messes. However, a late project doesn’t have the one vital thing to getting past this phase, time.
So while it may look like adding another person to a project for a week would give you an additional 40 man hours, bringing you to 80 man hours for two people working on the project, it actually will yield something closer to 30 combined. If this occurred near the start of the project it would be an investment that was worth going after, but so late in the game it is a futile effort. i can assure you, when a software developer tells you it’s looking like they are going over schedule, it’s best to accept it, learn from it, and move on. There is no use in thrashing around trying to hit a deadline because it will only cause that deadline to be moved further and further down the calendar.