Should We Aim at Zero Technical Debt?

Leonard Tan, Regional Director, OutSystems

In this digital age, a system’s code base can either make or break an IT company. While code offers automation and has the potential to increase efficiency, they often drag down IT companies due to the hidden costs that they might incur: technical debt. The countless human labor and time put into the constant maintenance, updates, and refactoring of present codes, are all different ways that technical debt stifles a company’s growth.

In other words, technical debt is when a company has to devote more resources to upkeep the convenience that its present code provides. 

In a report that surveys Singapore’s IT leaders, nearly 70% of IT companies believe that technical debt limits the organisation’s development and improvement. Moreover, more than 60% suffer the impact of technical debt, as it erodes their ability to achieve their optimal performance. 

IMPACTS OF TECHNICAL DEBT

To “pay” the technical debt, one can only do so by spending time on tedious tasks such as re-doing code, trying to understand ancient codes implemented by others, conducting numerous trials to ensure the functionality of the updated codes, and even repeating all these actions constantly. 

Though this already sounds like a tedious task, technical debt’s real damage to an IT leader is the consequence of investing time and effort in these tasks:

  • Higher Demand For Experts: the problems that stem from code with a poor and complicated framework would require experienced and skillful developers to solve. Amidst the skill supply shortage In this day and age, recruiting developers is even more difficult.
  • A Clogged Pipeline: as technical debt requires a great amount of time, resources and skilled labor, business requests continue to pile on. This impedes the company’s progress and efficiency, weakening its competitiveness in the industry.
  • Drops in Overall Growth: with a large amount of technical debt, the company needs to make constant changes and conduct numerous trials to ensure the code’s effectiveness. This constant care and effort drag the pace of complete orders, thus decreasing the delivered value to the clients and harming the company’s potential.
  • Security Threat: by using flawed and problematic codes to deliver products and rush deadlines, one can introduce safety liabilities to not just the project itself, but the company as well.

CONTRIBUTING FACTORS

With the devastating impacts of technical debt, every company naturally strives to eliminate it completely. However, is such a feat possible? Can any company be totally free of technical debt?

To answer this, one needs to know that technical debt has many contributing factors. While using bad code and taking digital shortcuts definitely increase technical debt as they force future workers to re-work the codes, better planning and resources can help alleviate the issues. Nevertheless, some causes of technical debt are not within a company’s control:

  • Immature talent: amidst the skill shortage, many recruited developers still lack expertise and experience. Thus, they often do not implement the best practices or solutions to different types of issues.
  • Misunderstood and rushed delivery: when programmers hasten their pace in app production to meet client deadlines, this likely results in a blurry vision of the project’s purpose and an incomplete understanding of the project’s purpose, which further leads to misunderstanding of what is needed to complete the app.
  • Short-sighted and vague targets: more often than not, the developers who first applied the code will not be there in the future to maintain the codes. However, this fact is a common oversight for developers. An inflexible and complicated foundation compounds the future workload to upkeep the codes.
  • Market fluctuations: the unpredictability of global markets exacerbates unpredictability as well, since it cannot be planned for but only managed afterward.

Therefore, no is the short answer. With so many variables and unforeseeable changes, a company cannot really plan or prepare for the increase in technical debt. However, IT leaders can improve how they manage technical debt and learn to balance urgency and demand, timeliness, and quality.

HOW TO CONTROL TECHNICAL DEBT

A report that investigates Singapore’s IT industry, states that only 20% of the companies express full confidence in their ability to manage their technical debt well. 

As an out-of-control technical debt can severely limit a company’s growth and flexibility, companies can truly reap great benefits from learning to control their technical debt. The first step is to recognize and acknowledge the existence of technical debt and locate its main sources while satisfying consumer demands. 

Here are a few ways how IT leaders in Singapore and the world can keep technical under better control:

  • What to do right now: set a specific level of technical debt that you, a company executive, and the development team agree on. Since technical debt cannot be eradicated, the team should carefully consider its limit of technical debt to allow operational bandwidth, and retain company agility in the future.
  • What If: consider the plan’s likelihood of failure and analyze the impact on technical debt from using substitute code from the back-up plan.
  • What Then: go one step further to think of coping measures and remedies to lighten the change’s pressure on technical debt. Utilize questions, such as whether more data needs to be moved or whether third-party systems that consume APIs from your systems will be affected after the application goes live.

Or, rather than fixing the problems afterward, you can start building an application with a development platform that is equipped with the tools to help solve technical debt in the first place.

One example is OutSystems. As you build an application, the OutSystems platform is already readying the product for future users. With embedded tools that help solve technical debt, the OutSystems development platform makes the management of the debt simpler and much easier. 

One such tool is the Architecture Dashboard. Instead of scouring through endless codes and running numerous trials, this feature provides visualization for cross-portfolio architectures. This not only helps developers identify the code’s potential pitfalls that can increase technical debt, but it also guides developers to use the appropriate solutions.