What is Technical Debt?
What is technical debt? The term ‘technical debt’ describes what happens when software development teams resort to easy-to-implement solutions that can achieve quick project delivery in the short-run; however, in the long-run, these solutions do not represent the most optimal approach––thus causing technical debt.
Technical debt pervades organizations of all sizes––from very small IT teams at startups to large ones in Fortune 500 companies. The term was coined by Ward Cunningham, who described the concept using a financial analogy:
“With borrowed money you can do something sooner than you might otherwise, but then until you pay back that money you'll be paying interest [...] By the same token, if you develop a program for a long period of time by only adding features and never reorganizing it to reflect your understanding of those features, then eventually that program simply does not contain any understanding, and all efforts to work on it take longer and longer. In other words, the interest is total––you'll make zero progress.”
The reality is that teams often rush releasing that next big feature or push software releases out the door quickly. In the short-term, this may seem like an effective approach because teams are able to deliver projects on-time and within budget.
However, in the long-term, they are taking “borrowed money” because they are using shortcuts to deliver projects without understanding how this change or new feature might impact the overall picture.
As a result, teams end up having to pay back the interest on that borrowed money in the future. In other words, they have to address the shortcuts they take and repay the technical debt they’ve incurred through rework.
How organizations acquire technical debt
Imagine a team in a retail company has a new project. They have multiple systems – a CRM system, an ERP, a SaaS application, and 7 legacy systems – that live in silos. As a result, they are unable to integrate this data to secure a single view of their customer in order to provide more personalized, relevant eCommerce experiences.
The team recognizes that the business needs to have this single view in order to have a holistic understanding of their customers in order to provide them with more tailored products, and, in turn, improve sales and loyalty.
To achieve this, the team sets out to connect these sources of data (like an ERP system, a CRM, POS interfaces, etc.) through point-to-point integration, creating one-to-one connections between systems. In the short-term, they are able to deliver this project to the business. However, what if, five years later, they decide to replace any one of these systems? Untangling all the custom code will be quite difficult.
They now are unable to address long-term goals; it will take them longer and longer to understand the point-to-point connections between these systems and the impact of the replacement. This creates a technical debt that they will have to repay.
What causes technical debt?
We can break the causes of technical debt down to two factors:
Emerging digital forces (SaaS, mobile, cloud, etc.)
Limited time and constrained resources
There are a number of digital forces––from mobile and IoT to cloud and SaaS. Organizations across all industries are constantly responding to these digital forces, whether it is by transitioning to the cloud, adopting a new SaaS application, replacing a legacy system, or integrating the data behind all these different applications and systems.
These emerging digital forces are creating a proliferation of projects for IT teams. And as more projects arise, IT is taking shortcuts to complete them on time and meet the needs of the business.
These shortcuts become IT’s only choice because they are extremely constrained––both in terms of the number of resources (staff) available and time. For example, in our Connectivity Benchmark Report, we found that 60% of respondents believe that they are not adequately resourced to meet their business needs. As a result of these shortcuts, IT creates more technical debt than ever before, further draining their teams’ resources.
What is the impact of technical debt?
Technical debt can have negative repercussions in the long-term. These repercussions can be best illustrated through the IT Delivery Gap:
What is an IT delivery gap? As the above graph shows, in the short-term technical debt may not have much impact on IT’s capacity to deliver projects for the business. However, with time, technical debt creates a gap between the business’ needs and IT’s capacity to deliver as well as respond to some of the emerging digital forces like cloud and mobile.
This has negative repercussions. Take, for example, the experience of the University of South Florida. Their CIO, Sidney Fernandes, mentions that at one point their IT team had over 100 projects in their backlog, which were a part of their digitization efforts. “We had developers that were burnt out,” says Fernandes, “all we were doing was either paying off technical debt or trying to make small changes that were not really dramatic.” Fernandes’ team recognized that they “have to think differently.”
How can teams address technical debt?
Addressing technical debt begins with identifying the source(s) and then assessing the steps needed to address the source(s) and reduce technical debt. Solving this problem isn’t about buying a new software suite; rather, it’s about changing the way IT teams think about their role in the business and the work that they do.
Learn more about how teams can reduce technical debt through a new approach to how IT teams are organized, and learn how, rather than simply being an order-taker, IT can evolve into an agile, flexible partner to the entire business.