Practical Tech Debt Prioritization
It's been a tough time in our industry. Like many others, my team faced the challenge of balancing urgent business needs and a growing list of projects with the health of our codebase.
As an Engineering Manager at Zip, overseeing a team of 6 engineers, our last quarterly retrospective revealed a sobering truth – our tech debt was not in a good spot. The pressing question: What do you do about a team that’s starting to feel the toll of a neglected codebase?
In this blog post, I'll share the concrete steps we took to address our tech debt issues and turn our team’s morale around in the course of 3 months.
Embracing Impact
Impact is the effect your team’s decisions and work has on the organization's performance, goals, and stakeholders. It’s the thing your team can influence that has a direct correlation with the bottom line of the business. It’s the common language for all the stakeholders working at the company.
Working on tech debt has important business impact. So why not describe it as such?
Let’s put this in practice. Step into the shoes of the primary product decision maker at your company (maybe your PM, Founder or Head of Product). What do they care about?
Now, read through these two statements, as this stakeholder, which of these is more compelling?
If you find the second statement to be more compelling (I certainly do) it’s because it’s reframing the tech debt ask with impact-focused language.
Start Incepting Your Team’s Needs
As soon as you’ve been made aware of the team’s need, it’s time to get to work. Communicate early and often to external stakeholders about what your team needs and why. There should be no surprised the next time quarterly planning roles around.
From qualitative developer surveys to bug and incident trends, data is a powerful tool to help you illustrate hot spots and urgency. Most importantly, start early and think 1-2 quarters ahead.
Sometimes, you’ll need to make demands. Because pressing business needs had forced us to deprioritize quality work in Q2, I made it clear that the team needed to reserve 30% of their time in Q4 to catch up.
Empowering Your Team
The next step is to enable your team to drive solutioning. Start by setting expectations on resourcing and any cross-team dependencies. The more context they have the better. The biggest game changer, is to teach your team to reframe tech debt projects from an impact-first lens.
We did this by creating an exhaustive list of quality projects and identified eng cost, impact, impact area, and confidence. We used rough t-shirt sizing and did this exercise in a room together to share additional context.
We then sorted by impact and voted on the top contenders to fill our upcoming quarter’s 30% time.
The “why?” for each project was clear to every one of us.
Craft Your Message
Stakeholders rely on you to tell them what’s important for the engineering team, yes. But more importantly, they want to understand what’s important to the business that the engineer team can affect. Key decision makers understand impact-focused-language, you don’t want them comparing apples and oranges when they are considering your proposal.
If you’re able to illustrate the impact of the technical debt you’re proposing your quality projects have a fighting chance to get on the roadmap. Yes, you’ll get pushback. Why now? Is it urgent? What about these pressing customer asks? You’ll have the answers to those questions and communicate the risk to the business if you push-off the work. Sadly, if it still doesn’t get prioritized, that’s probably what’s best for the business.
Continuous Improvement through "Quality Fruits"
Recognizing that not every tech debt project could be tackled immediately, we introduced the concept of "Quality Fruits." These 1-2 day efforts, though lower in priority, allowed us to incrementally enhance our codebase and systems. This culture of continuous improvement came with an award for the engineer with the most "quality fruits" each month.
Results
With a dedicated “quality month” our team was able to make significant progress on a major migration that will improve developer velocity, improve performance on some of our slowest endpoints so customers have a better experience, increase our backend type coverage so we can catch our mistakes more quickly, and tackle 32 quality fruits.
A Happy Team Does Good Work
“You have somehow communicated with product/design and leadership in a way that makes our lives so much better.” - Member of my team
The impact of these changes on our team dynamics was undeniable. A team that feels supported and empowered to tackle tech debt not only delivers better results but also cultivates a culture of continuous improvement. This is just a start. We’ll continue using these strategies to work on prioritizing tech debt and continuing to land incremental business impact.