I am working on a project timeline this week and my customer called me after review. They were pretty amused by the timeline because I had increased the total hours after adding another development resource to the project. I think this is hard for most people to understand, they imagine a pure labor project, building a swing set for instance. One man could do it in 6 hours but add a second equally capable man and they may complete the project in 2 hours. I think this is due to the fact that some tasks can be approached differently with varying multiples. I don’t believe this anecdote to make the leap into software development. Development methodologies aside I think adding a second developer adds a tax of time to the project, the guy once working by himself now has to communicate with another, tactics get questioned, he has to wait on things from the other guy and vice versa. There are also benefits, having someone else dependent on your delivery in the short term can make for a good motivating factor. In this case though, we are talking about man hours and not delivery date.
I estimated the project to take 600 hours on my own and was asked what it would look like to add another developer. Looking at the tasks I chose some which would be best to be worked on independently and tried to avoid overlap in needs (don’t want someone building an interface if the underlying business objects aren’t complete). In the end I put the hours at 750, but the benefit is that the project gets done sooner in calendar days. This means I added about 25% more man hours due to the changes in approach wrought by the resource addition. This worked under the assumption that the second developer had skills commensurate with mine and that the project tasking stayed the same. I believe this number slides down with time and other factors such as whether or not the two resources were in the same location, had worked together before etc.
My question is this – is 25% overkill?
Not enough? What other factors am I not considering?
Does this number go down with longer projects?
What does a third person do?
Any advice would be appreciated.
Search for the book Miracle Man Month.
Not The Mythical Man Month book?
It all depends on who is being added :)
If you could clone yourself 10% or so could be added.
But different developers have different speeds and different strengths and weakneses.
For Web disciplines are:
DB design, web tech ( JS, AJAX ), html, serverside stuff.
Boring footwork, tech writing skills etc etc.
Different speeds on all the different parts... so it's hard :)
You might actually be able to decrease the total hours if your added colegue has GURU like knowledge which your missing on certain items.
You didn't mention it, but I'm sure it was considered - The time it takes to get the additional developer(s) ramped up on the project. Not only will the developer have a different approach that could possibly be slower than your own. You first have to take the time to explain the task and then you have to make sure it is understood. Once the task is complete, you need to take even more time to ensure the task was completed properly. So when there are two or more developers, project management and documentation man hours become more important.