Tech debt hits the news cycle
This month has seen a flurry of high-profile news stories and social media commentary about tech debt. The stories and commentary have been driven by severe problems at Southwest Airlines around the storm of last Christmas, which saw the airline canceling thousands of flights, together with last week’s systems outage at the Federal Aviation Administration, which again saw thousands of flights canceled or delayed.
So what is tech debt and why do company leaders need to take action?
How tech debt happens
“Tech debt”, as a term, is widely used to describe an organization’s under-investment in maintaining the software it relies upon. People use it in different ways, but developers tend to understand it as meaning not enough time and money has been spent fixing bugs, restructuring code and overhauling systems. The term was coined by the developer Ward Cunningham about 30 years ago.
Tech debt can be built up knowingly, even intentionally, much like bank debt. For instance, a company’s leadership might ask its developers to prioritize getting attractive new features onto the market quickly, in order to beat competitors to a growth opportunity. It might be agreed that the underlying software platform won’t be kept updated and perfectly maintained just for now, but the developers will come back to it later when they have more time and before it becomes a pressing problem (that’s the theory, at least!).
Tech debt can also come about because a decision taken in good faith at one point turns out later to lead down the wrong path, and ends up creating unexpected tech debt.
Alternative scenarios are that tech debt is built up without an organization’s leadership knowing about it, or that the executives know it is growing but aren’t fully aware that it could cause the organization catastrophic problems without warning. These scenarios are arguably the more dangerous, but even tech debt built up intentionally can spiral out of control, just like a credit card bill.
Tech debt undermines productivity and efficiency. It starts off small but tends to multiply quickly, as does the cost of remediation.
Why tech debt matters
It seems almost too obvious to say, but the more tech debt is built up, the more the organization is at risk. It increases the likelihood of a major tech failure and jeopardizes the machine that makes the money. An outage caused by tech debt can see the company grind to a halt until it is fixed, incur significant costs and badly damage relationships with customers and other stakeholders.
It may be that the company can sustain a certain amount of tech debt under normal conditions, but an extraordinary event — like last month’s storm in North America — might cause extraordinary problems.
And even if acute failures don’t occur (or haven’t occurred yet), tech debt extracts a price, which you could call the interest on the debt.
This is because tech debt undermines productivity and efficiency. It starts off small but tends to multiply quickly, as does the cost of remediation. It can soon become difficult to track where all the problems are located, meaning more and more time is spent on finding and managing them. If developers are tied up urgently managing tech debt, it means they aren’t free to create new kinds of value or apply emerging technologies.
Using quick-fix, sticking plaster solutions in order to keep software more-or-less viable means that developing new features takes longer, as working with convoluted, unclear and outdated code is more time-consuming. (Our colleague Martin Fowler has written well on how the build up of “cruft” slows down the creation of new features).
A strategy for tech debt needs to be created early in the life of a company or project. It should balance long-term and short-term goals and be applied consistently. Resources need to be spent on continuous improvement. This might mean, for instance, investing in developer tools that can help them work quicker and faster, or the automation of repetitive tasks like testing code. This kind of investment in engineering effectiveness can reap great benefits in the long run — and is the opposite of tech debt.
It’s on the operational side of a business where tech debt tends to build and can often remain hidden. However, particularly in highly-competitive industries like air travel and financial services, tremendous business value can be found in fixing this kind of tech debt. Airlines, for instance, are complex and highly-regulated businesses with great coordination required between functions that manage crews, passengers, and aircraft maintenance. Our experience working with airlines tells us that incremental gains in operational efficiency and customer satisfaction, supported by technology, can translate into stronger positions in the market.
Another disadvantage of tech debt is that it can lower the morale of developers, who consequently become less productive and less efficient, which can in turn see them write less effective code. It can also make it harder to recruit and retain developers. They may not want to work in an environment where they will spend much of their time keeping a creaking software platform functioning.
Developers tied up urgently managing tech debt aren’t free to create new kinds of value or apply emerging technologies.
Avoiding the problems of tech debt
To prevent the problems above, tech debt needs to be managed intentionally. Here are some ideas on how to limit both the ongoing downsides and the more acute threats.
Listen to your developers. They are closest to the day-to-day problems tech debt is generating and the broader risks at play
Listen to your customers. End-users often pick up on glitches that are indicative of wider tech debt problems. Make sure this valuable feedback reaches your organization leadership and is not simply contained by customer service and technical support teams
Watch for a rise in delays and costs. Slowness in getting new products to market, ongoing operational problems and rises in costs may be driven at least in part by tech debt
Measure your tech debt. Useful metrics include customer feedback, delays to payments, disrupted operations and fulfillment, longer times to deploy new features and longer lead times for onboarding new developers
Prioritize based on risk. It may not be possible to deal with everything at once, and relying on ad-hoc fixes will see problems mount. A forum for business leaders and tech leaders to discuss this will help
Allocate resource. Give technology leaders a certain amount of time and budget to fix problems and stop new ones developing. Trust them to use the resource appropriately
Continuously improve. Whether it be your code, or the support you give to developers, a culture of continuous improvement mitigates against tech debt and of course brings wider benefits
Get your business strategy and your tech strategy working together. Tech debt can be driven by a disconnect between the two, while getting them working together and talking in joint forums will mean broader efficiencies and opportunities for growth
A strategy for tech debt needs to be created early in the life of a company or project. It should balance long-term and short-term goals and be applied consistently.
Managing tech debt is a strategic choice
Especially in an economic downturn, businesses should carefully prioritize their spending. It can often seem the right choice to curtail investment in maintenance and paying down tech debt. But while that might work over the short term, the impacts of tech debt can build up over time and lead to serious consequences.
If you can get the balance right — between investing in new features and staying on top of tech debt — it will be a strategic advantage for your business. You’ll navigate the path between under-investment (which might lead to catastrophe) and over-investment (which might lead to wasted cash). Along the way you’ll improve your systems estate and make your existing assets easier to work with, as well as supporting teams who work on them. You might even unlock new value from those older systems, directly contributing to your bottom line.
We’ll be using our experience working on technical debt, and that of our colleagues, to write on this subject again soon.