ARN

Technical debt will sink businesses

Short-term fixes and partially implemented systems have costs that can weigh on a company for years. This debt can also stifle innovation, resulting in lower long-term revenue.

The pandemic accelerated many large-scale digital transformations and drove growth in many technology businesses.

Whether it was Instacart’s sales increase of 230 per cent in 2020 over 2019, or Zoom’s revenue increasing 169 per cent during the early days of the pandemic, many companies were forced to accelerate innovation agendas during the past 18 months.

This growth came at a cost, especially for Zoom. It was unexpected and attracted much attention to the company, leading to numerous cyber attacks, including “Zoombombings” -- people intruding into Zoom meetings and flashing pornography or other inappropriate messaging.

Another cost is the technical debt of supporting digital application growth. Total cost of ownership (TCO) is the cost of developing an application plus the ongoing costs of maintenance, upgrades, and support.

When customers incur technical debt in an application, that debt has to be paid at some point. Technical debt is paid either once and for all by fixing or upgrading the application to remove the technical debt, or it’s paid over time by increased maintenance, support, and lost opportunity costs.

Technical debt makes it difficult for leaders to innovate and create new and improved customer experiences from their technologies. This stifled innovation means lower long-term revenue.

What is technical debt?

Technical debt is an increase in pending work required as a result of choosing an easier solution in the short term instead of a better solution that may be more difficult or more expensive to implement in the long term.

We are often faced with two options for getting a job done: Do the job completely or do it in a limited way that delivers against the short-term need but requires reworking at a later time. When we choose the latter, we increase technical debt, because the rework required later adds to our backlog.

We can easily visualise technical debt. Take a look at Figure 1, which is an idealised vision of a fully executed project.

Figure 1: Completing a full project tends to reduce technical debtCredit: IDG
Figure 1: Completing a full project tends to reduce technical debt

This represents a complete job of debt reduction rather than a short-term fix. On the left, we see the state of the project before it started. Here, there is a planned project (the blue “Project” box) and a backlog of existing technical debt.

After the project was executed, completely and totally, we end up with the right side, where the backlog has been reduced in size. The backlog is smaller because the project was completed and some of the technical debt was resolved during the execution of the project. The net result -- the overall technical debt -- is now less than it was before.

But when we don’t invest in doing a project completely -- when we take shortcuts to save time or energy -- we end up with a project execution that looks more like Figure 2. This diagram shows what often happens when projects are done quickly, leaving additional technical debt on the table.

Figure 2: Taking shortcuts to reduce short-term work tends to increase technical debtCredit: IDG
Figure 2: Taking shortcuts to reduce short-term work tends to increase technical debt

Here we start with the same project in the blue box and the same backlog of existing technical debt, just as in the first example.

This time, however, we execute a quicker, easier, simpler project that does only the minimum amount of work necessary to meet our short-term goals, leaving much work undone. The net result, as shown on the right side, is a smaller completed project, and a larger backlog of technical debt.

Technical debt is not just needed code changes and refactoring. It can also mean infrastructure rearchitecting, such as moving to a cloud-native architecture or moving an application to a container-based infrastructure.

Technical debt can also include the adverse impact to the processes involved with people and equipment. This includes processes and systems related to customer support, manufacturing, order fulfillment, and shipping. Shortcuts in these processes can have the same costs as more traditional code-based technical debt.

Cost of technical debt

Increased technical debt impacts a company in many ways. For example:

  • Technical debt can decrease your ability to innovate and execute on new ideas. It’s hard to try something new when you are investing in fixing something old.
  • Technical debt can make it harder to respond to competitor threats. Your technical debt limits your ability to adjust and shift quickly to compete.
  • Technical debt can make staffing projects more difficult. It can be hard to find developers willing to work with older technologies when they can work with cutting-edge technologies for your competitors.

Outdated processes and systems can increase your TCO as well as fulfillment and manufacturing costs, resulting in decreased profits. Outdated technology can also increase employee frustration and ultimately lead to staffing shortages. It can increase investor and shareholder dissatisfaction. Worst of all, it can create customer dissatisfaction, which decreases customer retention.

Common causes of technical debt

Many things can cause technical debt to increase, but some common causes include:

  • Financial and staffing restrictions that prevent or limit the ability of an organisation to make good technology decisions. When financial costs drive technical decisions, increased technical debt is often the result.
  • Unreasonable time demands that require projects to take shortcuts. Tight timelines result in taking shortcuts, which results in technical debt.
  • Shifting product requirements and shifting environmental requirements. Projects can change requirements midstream, often resulting in substandard designs and increased technical debt.
  • Poor decisions made by under-qualified development teams, such as less expensive and more junior teams. Senior, experienced development expertise is critical to avoiding long-term technical debt.
  • Outsourcing critical development and decisions to non-stakeholders. Because non-stakeholders have less invested in a project, they will be more willing to accept greater technical debt to meet their requirements.
  • Top-down management resulting in less ownership and less empowerment of the rank and file organisation. A less empowered organisation is more likely to accept shortcuts and trade-offs.

The pandemic’s impact on technical debt

Companies face technical debt trade-offs all the time, but they faced them even more significantly during the pandemic. COVID-19 drove significant changes in most industries. Companies such as Zoom and Amazon had a huge increase in business that required them to adjust their processes quickly.

Companies in the travel and entertainment industries saw their businesses upended, and had to find alternative ways of making money. Take a look at the changes in the movie industry, where movie theatres closed but movie streaming flourished.

Many industries had to adapt their business processes quickly in order to survive. When companies were forced to make quick decisions to handle these changing requirements, many had to make significant structural changes to their back-end applications, systems, and processes.

They did not take the time to perform longer-term planning and evaluation but instead opted for the necessary shortcuts in order to meet tight schedules and changing demands.

This generated a significant amount of technical debt in a matter of months. When the pandemic went on longer than anticipated, technical debt grew and stagnated, making the situation worse. These companies will be paying off this technical debt for many years to come.

A mountain of technical debt is one of the hidden long-term costs of the prolonged worldwide pandemic.