Five ways to handle Technical Debt

Despite best efforts, development teams always leave a trace of hacky approaches in their code. All of these inefficiencies in the code are called tech debt. Just like a  financial debt, it incurs interest. Our accrued interest would be: bugs that require extra effort and introduces more development delays, as well as complicating  future updates as you maneuver around the technical debt.

But don’t panic! The quick-to-implement, easy-to-change, and reversible techniques we describe below can help avoid mounting debt.

1. Debt Statements

The team should know how to check the latest debt balance.  For example, we used sticky papers on the white board and TODO notation where the code is not quite correct. No matter what, just be sure the team knows how to register the debt, and actually does it!

2. Evaluate

You must understand what kind of debt your team has. To do this, we have included the debt review during code reviews and sprint retrospectives. Our team always had to classify the priority of the debt and put the possible fixes in the road map.

3. Do not accumulate

To avoid tech debt accumulation,  one of the strategies was to budget the development result by balancing the quality of the code with the constraints (time, complexity, etc). Another important strategy was the use of a continuous integration server to automate build tasks : styling, lint, testing, among others. These strategies has allowed us to track trends and patterns that helped to reduce further debt accumulation.

4. Pay

You can pay down your technical debt with 2 currencies: refactoring and education.

Take the opportunity to refactor just before a sprint starts or as a warm-up to a larger development effort.

Long term debt reduction can only come with education so the team learns from their technical mistakes and develops techniques to improve their work for the future.

5. Communicate

Most non-technical project stakeholders do not need to know of the refactoring specifics.  Regardless, when we had a red flag in our tech debt analysis, we made sure all team members understood how the debt would affect the speed of the current and future sprints. This level of communication allowed the full team to be in sync and make the correct decisions with all the facets of the project in mind.

Summary

Tech debt is a reality that we should be aware of.  With only a small amount of effort we can minimize the risk of our debt spiraling out of control. All financial advisers will tell you the same when giving advice on how to pay down your debt.  Don’t be overwhelmed.  Take it piece by piece. Be smart and calculating.