Enable javascript in your browser for better experience. Need to know to enable it? Go here.

How to overcome tech debt and keep your business moving

Have you ever wondered why adding new features to your core business systems seems to take longer and longer? Or noticed that your software maintenance budget is growing at an alarming rate? Chances are you have a tech debt problem. The best time to take action is now — before a missed deadline becomes something more serious.

 

Understanding tech debt: the good, the bad and the ugly

 

The term ‘tech debt’ was first coined by developer Ward Cunningham about 30 years ago — which already tells us something about how persistent a problem it is. The phrase describes what happens when organizations under-invest in maintaining the software they rely on. Much like financial debt, there can be short-term benefits for this, but in the long run, you need to be mindful and ensure it’s properly managed.  

 

Tech debt can be intentional. In some cases, tech debt is treated as a tool for getting ahead, helping new products get to market on time to seize growth opportunities. In these scenarios, teams plan for the software to be fixed at a later date, trading things such as detailed analysis, resilient systems, risk management for speed. However, as all business leaders know, priorities change; as long as there aren’t major incidents, the impetus to deal with tech debt can dissipate. 

 

In other organizations tech debt is more systemic. Small issues can multiply, and problems build up under the radar. Senior leaders may not know how bad things are until a significant tech failure brings things to a drastic halt. This is where it can get ugly. If left to spiral, an inconvenience can swiftly become a calamity. 

 

One example is the FAA systems outage that grounded thousands of flights across the US and Canada. Although initially reported as a ‘technical glitch’, this is worst-case-scenario tech debt in action, with serious financial and reputational consequences. But long before things reach this level, tech debt exacts a significant toll on business. Because as tech debt grows, innovation slows.  

 

The final group is those organizations that have created software exactly as they intended, including "full eyes open" tech debt and nothing going awry. And yet, they now find themselves in a position where they can no longer pay tech debt off in the way they had envisioned. Perhaps they have been impacted by the economic times, perhaps they have to react to AI's impact on their business. Whatever the reasons, the end result is they’re seeing signs of tech debt accumulating, and have no ready plan to solve this.

How to spot tech debt early

 

So what are the early indicators that your tech debt is becoming problematic? Warning signs can include:

 

  • Customers reporting glitches. If you’ve noticed an uptick in customer complaints, even about small issues, this may be a sign of a deeper problem.

  • Rising costs. Tech debt can send your budgets into disarray. Operational costs may be climbing, and outage responses and remediation incur costs too.

  • Delays and missed deadlines. Changes to your product can take longer when you have high levels of tech debt, as time is diverted from rolling out new features or updates to maintenance issues. 

  • Dissatisfaction in your development team. If you’re struggling with talent retention, it may be because your team is suffering from tech debt burnout. Maintaining broken systems is less fulfilling than innovative work that drives value.   

  • Bug fixes throw up new problems. You may notice a ‘domino effect’ where one problem seems to cause another, then another. Patches and fixes can become ineffective when the underlying code is riddled with problems. 

 

How can you fix tech debt?

 

Once you’ve identified that you have a tech debt problem, the next step is managing it. Easier said than done. Tech debt is so common because there is no simple solution. Why? Because software development is a complex undertaking. Projects often span years and while underway, technologies change, and so do business needs. This means that some tech debt will inevitably accrue, even when projects are well planned, well managed, and well funded. A common way of dealing with tech debt is the sticking-plaster approach — applying short term fixes that will never solve the underlying problem. But what is that problem?

 

At heart, there’s a fundamental flaw in the way businesses think about software. The pervading attitude is that software is something you buy once (or develop once) and then pay to maintain. Maintenance keeps you ticking over with patches and bug fixes until the next big release comes along. This highlights a long-known issue for technology teams, in that they spend too much time keeping the lights on and not enough on delivering business value. A seismic shift away from this model is long overdue.

 

From maintenance to evolution

 

Attitudes to software development and maintenance are changing. As more companies go through digital transformations, they’re starting to see why the current maintenance model is a poor fit for their needs. Companies are looking for ways to bridge the gap between the software product they receive at the end of the build stage, and what they need over the years as their business, compliance and security requirements evolve. 

 

With this in mind, rather than asking ‘how can I get rid of my tech debt?’, a better question to ask is ‘what if your systems are built with change in mind’? With change as your starting point, when developing applications, instead of focusing purely on the build phase, you approach things with a maintenance-minimizing mindset. 

 

Instead of having to worry about the next big change once things are live — whether that’s migrating to the cloud, integrating AI into core systems, or adding new features — you create software that’s fit for years. A system that’s designed for constant evolution. In this scenario, your level of tech debt becomes a premeditated business decision, not a by-product of rushing out updates.

 

And rather than maintenance being a reactive process — something breaks, raise a ticket, get a fix — things can be more proactive. An application’s run phase should be a continuation of its development phase, where your support team provides continuous improvement, solving underlying issues rather than putting out fires. 

 

Fortunately, this isn’t just blue-sky scenario theorizing. It’s a viable option, and one that an increasing number of businesses are asking for. 

 

Getting future fit

 

At Thoughtworks, more and more of our clients are requesting an end-to-end service that combines bespoke software development with high-level support, post-delivery. That’s why we designed DAMOTM Managed Services with an evolutionary mindset at its core. This approach gives businesses better ROI from digital assets, and provides them with software that’s more resilient throughout its lifecycle. Ultimately it makes tech debt more visible, and more manageable. 

 

Embracing change isn’t something that always comes easy in the world of tech. But the change we’re advocating is fundamental for businesses to prosper in a fast-moving digital landscape. The way we design software has moved on. The way we approach maintenance must follow suit.

Find out more about DAMO managed services