A Taxonomy of Tech Debt and the Impact of AI on Code Quality

Jaeyeol Lee

Hatched by Jaeyeol Lee

May 01, 2024

4 min read

0

A Taxonomy of Tech Debt and the Impact of AI on Code Quality

In the world of software development, tech debt is a term that is often thrown around. It refers to the accumulated cost of shortcuts and compromises made during the development process. These shortcuts may be necessary to meet deadlines or deliver new features quickly, but they come with a price. Tech debt can manifest in various forms, and understanding its taxonomy is crucial for managing and mitigating its effects.

The taxonomy of tech debt can be analyzed along three axes: impact, cost to fix, and contagion. The first axis, impact, is the most apparent aspect of tech debt. It encompasses both player-facing issues, such as bugs and missing features, as well as developer-facing issues like slower implementation and workflow problems. These issues directly affect the user experience and the efficiency of the development team.

The second axis focuses on the cost to fix the tech debt. When a decision is made to address an issue in the code or data, it requires measurable time and resources. The effort required to fix tech debt varies depending on the complexity and scope of the problem. Some issues can be resolved quickly, while others may require a significant investment of time and effort.

The third axis introduces the concept of contagion. If tech debt is left unaddressed, it has the potential to spread and impact other systems. This contagion can occur through interfaces with other systems, the propagation of copy-pasted data, or by influencing the implementation choices of other engineers. The spread of tech debt can create a ripple effect throughout the codebase and make future development more challenging.

While the taxonomy of tech debt provides a framework for understanding its nature, it is also important to consider the impact of emerging technologies on code quality. One such technology is AI, specifically exemplified by GitHub Copilot. Copilot is an AI-powered tool that assists developers in writing code by generating suggestions and snippets based on the context.

Recent research conducted by GitHub suggests that the use of Copilot has led to a "downward pressure on code quality." The AI-generated code often violates the principle of DRY (Don't Repeat Yourself) and contributes to code churn. Code churn refers to the percentage of lines that are reverted or updated shortly after being authored.

The study predicts that code churn will double by 2024 compared to the pre-AI baseline. This increase in code churn can be attributed to the reliance on AI-generated code, which may introduce mistakes and repetitive patterns. While Copilot offers productivity gains and can conserve mental energy for developers, it also comes with the risk of pushing flawed code to repositories.

It is crucial to recognize that AI should not replace human developers but rather serve as a valuable tool in the software development process. The observed effects of AI pair programmers show promise in helping individuals transition into software development careers. By pairing AI with human expertise, developers can leverage the benefits of AI while ensuring code quality and avoiding excessive tech debt.

In conclusion, understanding the taxonomy of tech debt is essential for managing its impact on software development projects. The three axes of impact, cost to fix, and contagion provide a comprehensive framework for assessing and prioritizing tech debt. Additionally, the emergence of AI technologies like GitHub Copilot introduces new considerations for code quality and the potential risks of increased code churn.

To effectively manage tech debt and leverage AI tools, here are three actionable pieces of advice:

  1. Prioritize tech debt based on its impact and potential contagion. Identify the most critical issues that directly affect users and the development workflow. Addressing these issues first will prevent them from spreading and causing further complications.

  2. Use AI tools like Copilot as assistants, not replacements. While AI can offer productivity gains, it is crucial to review and validate the code generated by these tools. Human expertise is still essential in ensuring code quality and avoiding the introduction of unnecessary tech debt.

  3. Foster a culture of continuous improvement and code review. Encourage developers to actively participate in code reviews and share their insights on potential tech debt. By fostering collaboration and knowledge sharing, teams can identify and address tech debt in a proactive manner.

By combining a comprehensive understanding of tech debt taxonomy with the responsible use of AI tools, developers can navigate the complex landscape of software development while maintaining code quality and minimizing the accumulation of tech debt.

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣