Technical Debt

Technical Debt image

What is technical debt?


Technical debt in software development is mostly focused on non-optimised code but can also include things like out of date documentation. Quite often a product of time constraints, software is developed quickly to meet deadlines and opportunities to improve or refactor cannot or are not taken.

Technical debt can show up in the form of overly complex code due to adding more lines rather than integrating them. Duplicated functionality rather than a common method. A lack of unit or integration tests. Using older versions of components like libraries when new ones are available.

Technical debt going unaddressed for long periods of time can lead to product impacts like slow loading or processing times, security vulnerabilities and lack of support through outdated documentation or just a general lack of reliable information.
Also known as "Tech Debt" in the context of Continuous Testing, Holistic Testing and DevOps. Tech debt is a metaphor for the engineering quality trade-offs developers, testers and business stakeholders make to meet schedules and customer expectations. 

Types: There are various different types of tech debt, such as intentional vs. unintentional tech debt. 
  • Intentional debt is taken on knowingly to meet deadlines.
  • Unintentional debt arises from poor practices, time constraints or lack of knowledge. 
Morale impact: Tech debt can also affect the development team's morale and productivity. Working with a codebase that is difficult to maintain, or in a team where value being delivered is ignored, can be frustrating and demotivating.
Financial costs: Over time, tech debt can lead to increased costs due to the need for more extensive refactoring or even complete rewrites. This can impact the overall budget and financial planning of a project.
Examples of tech debt: hard-coded values, lack of the right level of documentation, no test automation frameworks or poor architecture decisions.
Strategies for managing tech debt: This should include ways to manage and reduce technical debt, such as regular code reviews, refactoring sessions, and adopting best practices, risk storming, shifting left and right where appropriate can make the domain or teams definition more actionable.

MoT Professional Membership image
For the advancement of software testing and quality engineering
Explore MoT
Castelo Branco Meetup image
Tue, 6 May
The Future of Testing in an Automated World: Embracing Continuous Learning and A
MoT Software Testing Essentials Certificate image
Boost your career in software testing with the MoT Software Testing Essentials Certificate. Learn essential skills, from basic testing techniques to advanced risk analysis, crafted by industry experts. Early access available now at a discounted rate!
Leading with Quality
A one-day educational experience to help business lead with expanding quality engineering and testing practices.
This Week in Testing image
Debrief the week in Testing via a community radio show hosted by Simon Tomes and members of the community
Subscribe to our newsletter
We'll keep you up to date on all the testing trends.