How Cost of Delay Improves Investment Decisions
When it comes to software development, businesses tend to focus on cost, rather than payoff. This article shows how to use Cost of Delay to correct this issue.
An example case
Let’s consider a new feature that’s ready for development. The developers have indicated about 6 humanweeks in initial development, excluding review and corrections.
Two developers are currently available to work on this feature for $100 an hour.
The developement team and you are considering the following team configurations:
- One developer working solo, the other doing code review,
- Both developers working together (pair-programming),
- Both developers working individually, dividing tasks and peer-reviewing each other’s code.
In past experiments you have made the following observations:
- Code from developers working individually requires one humanday of corrections per humanweek of development.
- Code review takes half a day of work for every two weeks of development.
- Pair-programming shortens cycle time by 30% and has code review built in, making a separate correction round redundant.
- Two developers working individually adds 30% overhead (consultation, waiting times, context switching) during initial development.
So what are the costs of each scenario? Let’s take a closer look:
Option 1: One developer, one reviewer
Cycle time | Dev time | Dev cost | ||
---|---|---|---|---|
Initial dev | 6.0 wk | 6.0 wk | $24,000 | 1 dev, 6 weeks |
Code review | 0.3 wk | 0.3 wk | $1,200 | 1 1/2 day |
Rework | 1.2 wk | 1.2 wk | $4,800 | 6 days |
Total | 7.5 wk | 7.5 wk | $30,000 |
Option 2: Two developers pair-programming
Cycle time | Dev time | Dev cost | ||
---|---|---|---|---|
Initial dev | 4.2 wk | 4.2 wk | $33,600 | -30% cycle time |
Total | 4.2 wk | 4.2 wk | $33,600 |
Option 3: Two developers dividing tasks
Cycle time | Dev time | Dev cost | ||
---|---|---|---|---|
Initial dev | 3.90 wk | 7.8 wk | $31,200 | +30% overhead |
Code review | 0.15 wk | 0.3 wk | 1,200 | |
Rework | 0.60 wk | 1.2 wk | $4,800 | |
Total | 4.65 wk | 9.3 wk | $37,200 |
The most cost-effective option
The results do not seem all that different, but option 1 has the lowest cost, and looks like the best approach.
However, it is also the option with the longest cycle time. Let’s ask senior management if they are in a hurry with this new feature.
“In a hurry?!”, they say, “You kidding me? We need this yesterday!”
So it seems that we’re not done yet with our calculation! Somehow, time needs to be included.
Establishing Cost of Delay
In order to put a price on the urgency, you work with the CFO on a profit and loss statement (P&L) for this feature.
She points out that the opportunity is worth $520,000 for the next 26 weeks, starting today, with a pretty much linear income stream. In other words once the feature is live, it is expected to yield $20,000 per week up to 26 weeks from now. Put differently, we lose $20,000 per week that the feature is not available.
The Cost of Delay is therefore $20,000 per week. Let’s see how that affects our three options.
The option with the highest payoff
Let’s compare development cost, delay cost, income and payoff:
Dev cost | Lead time | Delay cost | Income | Payoff | |
---|---|---|---|---|---|
Option 1 | $30,000 | 7.50 wk | $150,000 | $370,000 | $340,000 |
Option 2 | $33,600 | 4.20 wk | $84,000 | $436,000 | $432,400 |
Option 3 | $37,200 | 4.65 wk | $93,000 | $427,000 | $389,800 |
Option 1, our original preference, turns out to have the lowest payoff. And option 2, which we thought was 12% more expensive, turns out to have the highest.
Using Cost of Delay, we saved the company $92,400!
Conclusions
Focusing on cost can be costly! It is payoff, not cost, that matters to the company’s bottom line. With Cost of Delay, we can shift our focus to where it belongs.
Note that the numbers above are not a recommendation for pair programming - you need to collect your own data and run your own numbers.
Cost of Delay has more benefits: it helps you prioritise features and to make day-to-day decisions during development. More on those later!