Photo by Kier in Sight Archives on Unsplash

Fight Unplanned Work, the Silent Killer of Projects

An excerpt from Your Code as a Crime Scene, Second Edition by Adam Tornhill

The Pragmatic Programmers
5 min readJun 30, 2023

--

In this excerpt:
* Open Up the IT Blackbox by Measuring Unplanned Work
* Calculate the Untapped Capacity Tied Up in Technical Debt
* Use Quality to Go Fast
https://pragprog.com/newsletter/
https://pragprog.com/newsletter/

Visualizing the health of your codebase offers an actionable starting point and potential trigger for paying down technical debt. However, any organizations looking to improve their delivery efficiency have to take a broader perspective. In addition to the technical improvements, you also need to re-shape the engineering and collaborative strategies to ensure no new bottlenecks are introduced.

All of these changes are investments which take time, meaning we need to bring visibility to the outcome to ensure improvements have a real effect. Measuring trends in unplanned work offers a simple solution by complementing the code-level metrics with a higher-level perspective.

Unplanned work is anything that you didn’t anticipate or plan for such as bug fixes, service interruptions, or flawed software designs causing excess rework. By its very nature, unplanned work leads to stress and unpredictability, transforming a company into a reactive rather than pro-active entity. In fact, in The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win— a wonderful and highly recommended read — Gene Kim describes unplanned work as being “the silent killer of IT companies.” Let’s see how to use the concept for communicating expectations and future improvements.

⚠️ Adding More People Cannot Compensate for Waste

When a company accumulates technical debt, the business is restricted to experiencing symptoms, commonly in the form of Jira tickets moving at a depressingly slow rate. The gut response is a cry for more developers, more testers…more of everything. Yet losing predictability is a sure sign that more people isn’t the solution. In “See That a Man-Month Is Still Mythical,” you will learn how adding more people will probably even exacerbate the situation.

Open Up the IT Blackbox by Measuring Unplanned Work

Most organizations track unplanned work indirectly via product life-cycle management tools like Jira, Azure DevOps, or Trello. This makes it possible to calculate the ratio of planned vs unplanned work over time. You just need to agree upon issue types that represent unplanned work.

The following figure shows an example from a real-world project in crisis. Looking at the trend, you see that the nature of the delivered work has shifted over time, and the organization now spends 60 percent of their capacity on reactive, unplanned work. There’s also an overall decline in throughput, meaning less work gets completed compared to earlier in the year.

Greyscale barchart showing complete work items across time. Over time, feature throughput decreases and unplanned work increases.

Focusing the presentation on trends makes the waste obvious: no organization wants to do worse today than they did yesterday. Let’s put the amount of unplanned work into context by quantifying the waste.

Calculate the Untapped Capacity Tied Up in Technical Debt

We can never eliminate unplanned work entirely, but we still need a reliable target for putting our numbers into context. A good baseline for unplanned work is 15 percent, which is what high-performing organizations achieve in terms of bug fixes. (See Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations.) With the 15 percent baseline indicating the acceptable amount of unplanned work, we can now sketch out the following formula:

Waste (%) = UnplannedWork% – 0.15
UntappedCapacity ($) = Ndevelopers * AverageSalary * Waste

Let’s run the formula using the data from the unplanned work trend for the project in crisis on page 4 of the book as an example. In that figure you see that they spent roughly 60 percent on unplanned work during the last month. Assuming an average European software developer salary, we can estimate the untapped potential by filling in the numbers in our formula:

// Assuming an average salary of 5.000 Euros/month.
// With payroll tax and benefits, the employer pays ~7,500 Euros.
// Now, the project had 35 developers. Waste (%) = 0.60 – 0.15 = 45%
UntappedCapacity: 35 * 7,500 * 0.45 = 118,125€ / month

This exercise reveals the potential when unplanned work is minimized: it would mean the the equivalent of 15(!) additional full time developers. These are not new hires: by reducing the amount of unplanned work, you free up developers to focus on actual planned work, which moves your product forward. Consequently, the added bonus is that those 15 developers would already be onboarded since they represent staff that you already have within the company, so they come with no extra coordination cost. How good isn’t that? It’s hard to argue with the promise, particularly when it’s your own data.

Use Quality to Go Fast

Getting more done without hiring more people is a clear competitive advantage. Yet, too many companies in the industry seem to share a commonly held belief that high-quality code is expensive. You detect this mindset each time you hear a “no” as response to a suggested technical improvement: we might not “have time” for refactoring, test automation, architectural redesigns, and so on — you know the usual suspects. It’s like there is a supposed trade-off between speed and quality, where choosing one negatively influences the other.

However, as indicated by the data you met in this chapter, there doesn’t seem to be such a trade-off. In fact, the contrary seems to be true: we need quality in order to go fast. Use that to your advantage.

We hope you enjoyed this excerpt from Your Code as a Crime Scene, Second Edition by Adam Tornhill. You can purchase a beta copy of the ebook directly from The Pragmatic Bookshelf:

During the beta period, we encourage readers to make comments and suggestions on the book’s page on DevTalk.

Book cover featuring a blue background with circuitry. In the foreground, a magnifying glass showing an up-close of the circuitry in red tones.

--

--

The Pragmatic Programmers
The Pragmatic Programmers

We create timely, practical books and learning resources on classic and cutting-edge topics to help you practice your craft and accelerate your career.