Skip to main content

A Software Leader's Solution for Managing Technical Debt

As a permanent home for more than 100 vertical market software companies, Volaris Group firmly believes that managing technical debt must be a regular, measurable, and ongoing effort. We have spoken with hundreds of software leaders over many years and found this to be a recurring topic. For this reason, we turned to a leader at one of our businesses for insight on how his team manages it.
 
In this employee contribution, Andreas Kroll, the Head of R&D at Volaris-owned company Trapeze DACH, proposes a strategy of addressing technical debt that has worked successfully for his group. He shared this method at a recent company event where several business leaders were invited to share solutions amongst each other.
 

Managing Technical Debt

Technical debt is one of the biggest challenges in the R&D department of a vertical market software company, especially when a team must maintain several legacy products. In simple terms, it’s the result of software development teams compromising to prioritize speedy project delivery in the short term, at the expense of creating high-quality code for the long term. While a short-term goal may be achieved in such situations, major problems can develop for the business in the long term when technical debt accumulates and becomes unmanageable.
 
Similar to financial debt, a backlog of unaddressed technical debt incurs “interest payments” in the form of extra effort for future developments because of sub-optimal design choices. R&D teams then become unable to avoid their "interest payments", and it will become increasingly difficult to maintain the software product until the technical debt is removed. There is no question this issue needs to be addressed on a continual basis. We have implemented a process in our organization to meet this challenge.
 

A tried-and-tested system for keeping up with technical debt

Our process includes the following key steps:Worksheet: Kickstart Your Plan for Managing Technical Debt
  1. Collecting instances of technical debt
  2. Categorizing levels of technical debt
  3. Assigning methodologies to address each level of technical debt
  4. Defining KPIs (Key Performance Indicators)
  5. Planning allocation of resources
  6. Defining priorities for addressing technical debt

Kickstart your plan for managing technical debt. Download our free worksheet.
 

How we address three levels of technical debt

 
To handle low levels of technical debt, we would allocate no additional budget, because experienced developers address this constantly.
 
For treating mid-level technical debt, we begin to apply a management process. Each project component or team shall maintain its own list of mid- to high-level technical debt, with quarterly updates on progress. For example:
 

Each team records its technical debt backlog in the issue tracking system. Already existing issue types need to be dealt with using the available quarterly budget, or adding the effort into the Change Request (CR) or feature estimation. 

The quarterly technical debt budget is defined as X% of the R&D team’s capacity. 

We define high-level technical debt as a category that requires serious framework or architectural changes, or elements of a technical roadmap. Input leads into concrete requests to a Product Review Board (PRB). This board meets twice a year to enable the product manager and some members of the R&D department to request budgets for product extensions or functionalities, or larger work packages for the product life cycle (which includes technical debt issues). Before the board, these leaders make a case for investment, which includes preparing a business case, proposed timeline, and identifying needed resources. After being assessed by the PRB, the concrete mitigation of technical debt is then executed as a feature.  This type of technical debt is then given a work package which consists of dedicated planning and assigned a budget.
 
Finally, as a matter of global priority to the organization, our Head of R&D and Enterprise Architect review key technical debt issues quarterly. Our Product Manager and R&D team leader are also tasked with prioritizing the management of technical debt within products.
 
In this way, we achieve a continuous, plannable, and sustainable way of addressing technical debt.