Agile Development Community Release: A Complete Guide for Engineers’ Technical/Code Debt

Recently, an agile development community released the "Complete Guide to Engineers' Technical Debt."

According to its definition, technical debt is also called code debt, which refers to the situation where the development team needs to refactor at a certain time in order to speed up the delivery of the project or function. Technical debt is also a metaphorical framework for considering the key parts that need to be refactored after the development team speeds up software production. The priority at this time is faster development speed, not high-quality code.

Technical debt is similar to financial debt and may damage or help the organization. Statistics show that by 2024, unresolved global technology debt will cost companies US$4 trillion, and companies that perform technical debt recovery will reduce the delivery time to customers by 50%.

Therefore, in order to make technical debt play a positive role, engineers and technical leaders must monitor how much technical debt the team has and manage it well.

6 ways to deal with technical debts of Scrum teams

Scrum agile development is a more efficient and open development framework, which also means that using this framework may incur technical debt.

Stefan Wolpers, a Scrum trainer, suggested that the Scrum team can better handle code debt in six ways: 

Prioritize the transparency of technical debt. Visualize technical debt and review technical debt requirements during each Sprint meeting.

Track technical debt. It is recommended to count bugs and use deeper code metrics where possible, such as cyclomatic complexity, code coverage, sequence ratings, and rule violations.

Repay debts quickly and regularly. The Scrum team should consider allocating 15-20% of its resources to refactoring code and fixing errors in each Sprint cycle.

Adjust the product backlog. The product backlog should include tasks related to repaying technical debt. Treat the debt as a Sprint problem that you want to solve, so as to avoid the omission of technical debt.

Adjust the definition of "done". Don't treat something as completed until you reach the set standard for manageable technical debt.

Standardize the process. Develop a repeatable formula for how the team handles adding experiments, including introducing new features of technical debt.

Some technical debt indicators

Bugs. Software developers should technically and track bugs, both fixed and unfixed.

Code Quality. Bugs have a direct impact on the end user of the software, but the complexity of the code can harm the development team and the entire organization. Therefore, pay close attention to the complexity indicators of the code, such as cyclomatic complexity, class coupling, and so on.

Code Cohesion. Higher code cohesion usually means that the code has higher maintainability, reusability, etc.

Code Ownership. More workload usually leads to more technical debt problems, and project managers need to manage the number of people working on different codes.

Churn. When the code is rewritten/replaced, it will "Churn", which means the visible activity measurement for a given piece of code. Measuring changes can help the team recognize which code needs to be refactored and prioritize it. If the engineer must constantly solve the same part of the bug, it means that there is a problem. Observing such changes can help companies find problems faster, thereby reducing technical debt.

View the complete guide

Guess you like

Origin www.oschina.net/news/120010/scrum-guide-technical-debt