Trading Gold for Days

[article]
Summary:
Spending additional money on resources to ease the strain of a tight schedule seems like a good idea. What project manager wouldn't want more help with a project? This week, Peter Clark explains the pluses and the pitfalls of trading gold for days.

"The new reporting regulation absolutely has to be implemented by the end of the year," Roger's division manager told him. "This project is your highest priority. We will give you whatever resources you require - just get it done in time!" The deadline made the project duration 25% shorter than Roger had estimated the project would take. Roger felt a growing sense of panic - what could he do?

An iron triangle dominates software development - budget, schedule, quality. Fixing two sides of the triangle leaves you with the third. As with the case above, sometimes the schedule and the quality are determined for you. Now it would seem that you can only try to "trade gold for days" - spending much more money and resources than you normally would in an attempt to shorten the schedule.

Trading gold for days typically translates into additional resources, both human and material. The idea is that with more resources on the project, you can get more work done, thereby reducing the schedule strain. And what project manager wouldn't want more help with a project? But trading gold for days is tricky at best.

Recognize the Inherent Risks
First, finding the additional resources can be a problem. Organizations seldom have personnel sitting idly who are trained in the technology and application domain. Additional resources can be recruited from outside the organization (for a price), or it may be possible to steal personnel from other projects, but there's a risk that they will be sucked back into their original assignment (most likely at the worst possible moment).

Second, it can be exceedingly difficult to integrate new members-especially in large numbers (more than 10% of the original team's size)-into a team. It can easily take months before the new members become a net positive force on the work being done. Prior to that time, they are diverting management and experienced team members into non-productive activities, everything from finding them a desk to explaining how to build the application. Therefore, adding inexperienced resources should be done early in the project, which will further escalate the costs.

However, the most pernicious aspect of trading gold for days is in the additional overhead of managing the resources effectively. As the size of the team goes up, the number of interfaces between team members rises as well, adding to the communication overhead. Realize that this will distract existing workers from directly productive work - plan your team size based on reduced productivity levels.

When You Have to Do It Anyway
Be aware that the largest impact of adding resources will be on you, the team leader. Be sure to include in your plan sufficient supervision for new resources. Make sure that you budget time in your week for the supervisory tasks that have made you successful in the past - risk management, project tracking, and re-planning. If you don't explicitly budget time each week, you will quickly be dragged into permanent fire-fighting mode. This will likely result in the project taking more, rather than less time.

The most productive use of new workers is to provide "slack" for your other workers. In any project, unforeseen tasks suddenly materialize and need to be handled immediately. Having backup resources available to dedicate to unforeseen work can help keep your project on track.

It may be necessary to resist the impulse to keep new resources "productive." Giving people busywork can build up a backlog of unnecessary work products that will serve as a distraction to workers doing more necessary work. A common result is the unnatural partitioning of the project to accommodate the number of resources, rather than how it would normally be divided. Partitioning based on team size has a hidden effect on product quality, as the design is compromised early.

Create a New Concept of "Gold"
A more radical way of translating gold into days is to use additional monetary resources not for people, but to move your team into a new work environment. DeMarco and Lister demonstrate in Peopleware that providing workers with a quiet, distraction-free environment can dramatically improve worker productivity. Microsoft gives each of its developers in Redmond, Washington, an office with a door for this reason. However, if you decide to upgrade your work environment, be sure to budget at least one week of lost productivity for all workers, and at least one month of lost productivity for leaders to plan and implement the move. Unless the project is of sufficient duration, you may not be able to overcome the cost of the move and realize the benefit.

There is No Silver Bullet
Use caution when approaching "silver-bullet" solutions to your time crunch. Experimenting with new tools or rolling out a brand-new methodology are best done on lower-visibility, lower-risk projects. Do not plan on more than a 5% to 10% improvement in productivity from any combination of new tools or processes. They are more likely to cause project delays, resulting from the need to train personnel, develop and roll out the process, etc.

Trading gold for days is risky. Management seldom realizes how much more a shorter schedule is likely to cost them. It is easy to trade a 10% reduction in nominal schedule duration for a 50% increase in overall project budget. While management backing may be present at the beginning of the project, it is likely to wane as the overruns mount. Make sure that management understands as soon as possible the impact of schedule compression on the budget.

In short, be careful - be explicit about costs and potential downtime, and try to think creatively about where and how to apply extra resources for the greatest schedule impact.

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.