yanjustino / td-ledger

Technical debt ledger

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Technical Debt Ledger (TDL)

authors.: MSc. Yan Justino
version.: 1.0.0-beta . 03/2023
language: pt-br . en-us

Technical Debt (TD) refers to the technical commitments made during software development when a quick solution is chosen over a more robust approach. Similar to financial debt, Technical Debt needs to be recognized and managed to ensure the sustainability and continuous quality of the software. In this context, TDL is a framework dedicated to the effective management of Technical Debt in software development, relying on two main pillars:

Self-Admitted Technical Debt (SATD)

Important

Proactively recognize the existence of Technical Debt during development and document it for future corrective actions.

Technical Debt Management (TDM)

Important

Use a structured approach to manage, monitor, and reduce Technical Debt throughout the project lifecycle.

TDL provides a comprehensive approach that promotes transparency, accountability, and continuous quality of the developed software. This is achieved through six key functionalities, as illustrated in Fig. 1.


image
Fig. 1 - Overview of the framework's pillars and functionalities
Own source

The following section details each of these TDL functionalities, as well as possible activities related to them.

Framework Functionalities

1. Recognize

Proactive identification of areas requiring technical attention

In this step, the team is encouraged to proactively recognize the presence of technical debt in their code, identifying areas that may require additional attention. Practices may include:

2. Record

Documentation for effective management

In this step, all instances of technical debt should be documented for effective management. Any tool that proves most productive for the team to record Technical Debts can be adopted. The use of collaborative tools that facilitate engagement is advised.

Warning

It is important that Technical Debt be registered as soon as possible after its identification. Delaying this registration may lead to underreporting. In this sense, registering Technical Debt without its immediate classification and prioritization may be admitted, given the importance of documenting Technical Debt.

3. Classify

Categorization based on specific criteria

Allows the categorization of Technical Debt based on specific criteria, facilitating an understanding of areas with higher impact and urgency. Models of classification, such as:

Important

Classification models can be combined to obtain different perspectives on a Technical Debt.

4. Prioritize

Establishment of priorities

This step aids in prioritizing the identified debts, considering factors such as project impact, urgency, and complexity. Approaches may include:

5. Pay

Development of strategies to address and rectify Technical Debt

In this step, the framework aims to facilitate the creation of strategies and plans to address and rectify Technical Debt, promoting the long-term health of the software. One of the strategies recommended by Steve McConnell in his book Managing Technical Debt is:

Note

Maintain the debt list as part of a Scrum product backlog. Each debt is treated as a Scrum “story,” and the estimated effort and schedule to pay off each debt is estimated the same way other stories are estimated in Scrum.

TDL Implementation Model

COMING SOON

References

  • Self-Admitted Technical Debt - SATD

    SATD is when developers are aware that the current implementation is not optimal and leave comments in the source code or elsewhere to describe the presence of technical debt.

  • Technical Debt Quadrant - Martin Fowler

    Approach to dividing debt into prudent/prudent and deliberate/inadvertent that implies a quadrant.

  • Product quality model - ISO/IEC 25010:2011

    The product quality model categorizes product quality properties into eight characteristics (functional suitability, reliability, performance efficiency, usability, security, compatibility, maintainability and portability).

  • GUT Matrix (Gravity, Urgency, and Tendency)

    The GUT priority matrix is a system for ranking the importance of issues and tasks to streamline company operations.

  • T-Shirt sizing (project estimates)

    T-shirt sizing is a project estimation and capacity planning tool that helps you track how much time or effort an initiative will take.

About

Technical debt ledger

License:Creative Commons Zero v1.0 Universal