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.