Print

That's unfortunate to say, but, as a PM, I usually come to face situations where the project has fallen behind schedule. Most of the time, the reasons are cumulative small "leakages" which combine themselves to create chaos: few delays in delivery from developers, one team member who gets sick for a couple of days, a purchase order which comes late...

And then, being a System Integrator's employee, instead of abiding to Brook's law

Adding manpower to an already late software project makes it even later.
Frederick Brooks - The Mythical Man-Month

I often feel some pressure to add resources (sometimes untrained) to the project in order to help "sustaining the pace" and crash the schedule. This additional effort is deemed to help catching up with timelines and deliveries to customer. I can see even seasoned practionners support such approaches.

I often answer with Brook's law statement, and usually add that adding resources will decrease the productivity of already working resources on board, and eventually will generate a non budgeted overcost.

Instead of getting nervous each time I hear such a fallacious suggestion, I built an Excel sheet based on the modeling I expose in this article, and use this Excel sheet as a decision tool, to assess quickly if the money invested and the lead time for ramp-up are worth.

The principles of modeling

I designed the modeling to be as close to reality as it can be, whilst letting calculus not being a nightmare: The S-curve. I don't care about the precision, I want to have a rough idea of the additional spending I'll have to book to ensure that team ramp-up is effective.

After a small calculus, I brought in the cumulative productivity model for the trainee as

$$ f(x) = \frac{1}{1+ {\left( \frac{p}{1-p} \right)}^{1 - \frac{2x}{\tau}}} $$

With \(\tau\) being the leadtime necessary to reach \(p\) percents of completion in the training.

Trainee's productivity

I also took into account the fact that when an untrained resource is welcomed in a team, someone coaches him, and has a decrease in productivity which recovers over time. Let's assume that when the coaching starts, the trainer's productivity drops down to \(w\) and increases again up to \(v\) when the trainee has reached \(u\)% of its training completion.

The resulting function is a bit complicated to write down, but is still based on S-Curve equation:

$$ g(x) = \frac{1}{1+ e^{-\beta \left( x - x_{0} \right)}} $$

If you're interested in the full display of the result, you can download the Maple worksheet which displays it. 

Excel does it for you

If you're like me, formulae or Maple sheets are not part of our regular busy days. As Excel is pretty good at performing calculus, I implemented these formulae into Excel, using intermediate cells to make everything readable.

In the worksheet attached, simulation is initialized as such:

Excel then computes and displays the results.
You can use this spreadsheet to simulate any situation you want by adjusting the parameters in the Parameters tab.

Interesting results...

Not valuable?

The results obtained firmly confirm Frederick Brook's law. Adding resources to meet a tight deadline is at best useless, at worst counterproductive. Indeed:

Cumulated value

 Cumulated investment

As a summary, adding resources is a smart move only if there's enough work to feed the bigger team. Otherwise, if resources come to help, then switch to other activities, most of your investment goes up in smoke...