Technical debt is the perennial issue for all software engineers.
And the continuous struggle of evaluating when to prioritize addressing it over carrying out feature work can become increasingly difficult to navigate as cross-functional teams clash and the debt builds higher.
In Tackling technical debt, our contributors discuss how to implement plans that effectively address this challenge and how to gain that elusive achievement of support from the broader organization.
In this article, Reggie Davis relays the importance of having a plan for reducing technical debt that ‘everyone can get behind’. He provides the reader with insights to help form this plan, including why they should make the debt trackable in the backlog by categorizing it, and how to dedicate pockets of time in every Sprint to addressing it. Reggie also discusses prioritization, leveraging debt to create opportunities, and the impact that celebrating the small wins can have on team motivation.
‘By bringing the concept of stability into the conversation, developers can raise awareness and expand the dialogue about technical debt.’
In this article, James Smith champions the use of stability scores to communicate the impact of a technical debt cleanup to the engineering team and broader organization alike. He states that cross-functional teams should be having regular, honest conversations about technical debt and that including measurable data in these conversations can help determine the approach to the issue. James explains, ‘With stability scores providing direct insight into the actual impact of bugs and user experience, organizations can better understand how less technical debt translates into stronger business value.’ In the article, he looks at how stability scores can be measured and the benefits of establishing them as a KPI.
In this article, Scott Triglia argues for roadmaps that are ‘compelling, incremental, and finite’, with a specific focus on:
- Dropping generic tech debt framing and getting specific;
- Identifying and communicating the business outcomes;
- Finding incremental wins that build a flywheel effect;
- Locating the exit.
Scott explores each step in depth and discusses the power that visibility has when it comes to getting technical debt projects greenlit. When addressing the complexity of technical debt, building a roadmap that focuses on clear communication and the smaller wins enables a team to efficiently tidy up codebases and produce business value.
This conversation looks at managing technical debt from several angles, and centers around how to decide when to focus on technical debt and when to not, with our panelists – Maude Lemaire (Staff Software Engineer at Slack), Rodney Cobb (Principal Software Engineer at Remine Inc.), and James Smith (CEO and Co-founder of Bugsnag) – and moderator – Blanca Garcia Gil (Principal Systems Engineer at the BBC) – discussing their own experiences of doing so.
During this discussion, our panelists explored:
- How to frame conversations to make a business case for a tech debt cleanup;
- How to convince engineering teams that tech debt needs to be addressed;
- The impact that the maturity of a company has on tech debt decisions;
- Managing the translation between businesses wanting to ship features and the team needing to address tech debt;
- How to package tech debt so it doesn’t become a full rewrite;
- The balance of tech debt competing against and working in favor of innovation.
A final takeaway
‘After all, the question is never if technical debt will impact your software, but when and how badly.’ – James Smith, CEO & Co-founder of Bugsnag
Technical debt isn’t going to magically disappear from the world of software engineering, but by confidently knowing when to address it and how to gain support from stakeholders, this work can have as much of a positive impact on the end-user experience as shiny, new features. From this series, engineering leaders can expect to learn how to execute effective planning and communication to create streamlined processes for tackling technical debt in their organization.