How technical debt can damage business agility and competitiveness
A “deploy now, fix later” attitude can speed processes along, but at what cost?
Organisations that rush to develop or install software as a quick, easy solution without being mindful of its technical or design considerations could be setting themselves up for a fall later on in the form of technical debt.
Technical debt is a software development concept that describes the eventual inefficiencies and added costs of extreme programming and refactoring work caused by the implementation of a simple, short-term solution instead of one that may take longer to implement but would work better overall.
New research from technology services provider Claranet shows that technical debt has become a significant issue for 84% of organisations, claiming it limits "their ability to respond quickly to customer demand with new software feature releases" and causes "a significant drag on business agility and competitiveness".
The study, which surveyed 100 IT decision-makers from UK-based companies, also found that business leaders aren't taking the necessary steps to mitigate technical debt. Despite being aware of these issues, eight in ten respondents do not have a reduction programme in place. And while nearly a fifth have plans to reduce legacy challenges, they don't have a clear vision in place of how to do so.
"Technical debt is clearly something that businesses recognise as an issue, but many are still a long way behind when it comes to implementing concrete plans to mitigate risk," says Alex McLoughlin, head of solution design at Claranet. "The fact that a lot of companies are now working to deliver a hybrid cloud strategy and adopting an infrastructure as code approach means that technical debt is now a pressing issue, not just for the development team, but for the wider business as well."
Technical debt varies
Technical debt affects organisations in different ways. Andrew Rogoyski, innovation director at Roke Manor Research, explains there are several forms. The first type, he says, is "deliberate debt, commonly arising from the urgent need to get operational software into use, often forcing a deliberate shortcut to be taken to save time".
"Then there's inadvertent debt, caused by not designing with the future in mind. There's aggregate debt where systems are bolted together without understanding all of their interactions and dependencies. And, there's what you might call entropic debt where systems become more complex and poorly understood over time."
Rogoyski believes that technical debt is quickly developing in emerging technology areas such as artificial intelligence and machine learning. "There's an increasing tendency to treat AI systems as 'black boxes', to pull the latest code from an open source repository, apply it to the problem at hand and, if it works, roll out the solution," he says.
"There is huge potential to build technical debt in AI systems questions such as, 'Is AI an appropriate solution for the problem at hand?', 'Is the right model being built?', 'What are the constraints and biases of the training data?' and 'How do we test and assure such systems?' are not being asked."
As adoption of AI and machine learning technologies to grow, Rogoyski argues that organisations need to counter technical debt by good design, development and test processes, as well as the disciplines of AI explainability and AI assurance. He says these are "central to the future of AI, ensuring that shortcuts, constraints, biases and other issues are properly addressed during design and development".
Geoff Parkhurst, CTO at vouchercloud, says too much technical debt increases the difficulty in estimating actual deliverable times. "You don't know what you don't know, and it amounts to a 'shaving the yak' scenario.
"Multiple problems accrued over time means a problem that should be an easy fix could be interlinked with areas suffering from technical debt areas that need to be fixed before the main problem can even be addressed."
Eradicating technical debt
Douglas Mapuranga, CIO of the Infrastructure Development Bank of Zimbabwe and president at ISACA Harare Chapter, it's almost impossible for organisations to eradicate all forms of technical debt but that some candid talk at the corporate governance level can help reduce and mitigate it.
He tells IT Pro: "First, it's crucial to have at least one board member who is competent in ICT matters, which deepens the discussions on IT performance, user requirements, and direction of technology for the organisation.
"Similarly, the CFO should be encouraged to take a pragmatic approach on IT investment, since allowing technology to become obsolete may create unintended overhead expenditure. Strictly speaking, IT investment drift could be a possibility if entities are permitted to adopt every incoming technology regardless of its ROI and its alignment between the IT strategy and business strategy."
IT analyst Paolo Pescatore notes that technical debt can help companies get ahead of rivals, but says the downsides can lead to inefficiencies and making decisions based upon on short term gains.
"Organisations must simplify processes, understand the debt incurred, decide what to do and ensure it is managed properly," he advises.
Although organisations are becoming increasingly aware of the risks brought about by technical debt, many aren't taking active steps to repay it. James Stanger, chief technology evangelist at IT trade association CompTIA, says the result is that quality suffers and problem code ends becoming the root cause of many defects across the business.
"Security breaches and buggy software combine to make stakeholders lose confidence in the organisation," he says. "Business then suffers."
Stanger claims the most productive way of tackling conscious technical debt is to actively manage development teams so that they follow up on any debt that they incur. "Follow-up is essential," he says. "Development teams need to review documentation and code to identify the nature of the technical debt, and then budget time to address those issues in the code, In the case of accidental, or reckless technical debt, code reviews, customer input and bug bounty programs can help remediate issues."
Often, because technology can solve so many problems, it's easy to think that a quick and easy solution will make everything better. But the reality is that's far from true if it results in technical debt that quick fix can do more damage than good. Organisations and IT teams will fair better from investing in solutions that will work in the long-term, not just for the time-being.