Loading...
Arrow left
Blog Homepage

Repaying Tech Debt With Sprints, Handoffs, and Hackathons

Repaying Tech Debt With Sprints, Handoffs, and Hackathons

Technical debt is a lot like tax season: tedious, terrible, and totally unavoidable. And just like your taxes, you want to get it paid before you get any sternly worded emails about it. The ZenHub Community recently had an interesting conversation about different ways development teams can tackle tech debt, like using dedicated mini-sprints. We liked it and learned some things, so we decided to share parts of that conversation and look at three other ways to tackle tech debt.

Just like with your taxes, it’s important to understand why you have to pay back as much as you do. This insight will help you understand how it builds up, how you can minimize it, and help you choose the right approach to reducing it. As Richenda Smith from ZenHub notes, a good place to start is by taking stock of the problem. “Be honest with yourselves. Do you fully know the scope of the tech debt/maintenance that you’re tackling?”

Tech Debt Creates Compounding Problems

Every development team balances deadline pressures with producing the highest quality code. Unfortunately, shortcuts are often inescapable. These good-enough workarounds get products shipped or let the team move to the next task. But the longer that debt remains outstanding, the deeper it burrows into the code, potentially preventing you from adding new features. And just like compound interest on your taxes, the next bill you get for it can be eye-wateringly bad.

Keeping your code healthy is a lot like keeping your house clean. Good habits are important. Tech debt can be cleared out regularly, making it much easier to get into healthy habits. While we can all be grateful that tax season only comes once a year, we’d probably all be better at doing our taxes if we did them more often.

Here are four approaches ZenHub team members and users shared that can help you start putting a dent in your team’s tech debt.

1. Add Capacity in Each Sprint to Manage Tech Debt

The most straightforward way of tackling tech debt in sprints is to add room in each sprint to manage it. The question is, how much? Richenda’s comment about fully understanding the scope of work required to clean up tech debt is bang-on. “In my experience making time for tech debt is only half the battle,” she says. “The second half is ensuring that enough time is being allotted to fully complete the tasks.”

For Richenda, step one is going through the receipts. Figuring out what your backlog looks like will help you figure out how much time you need to clear it.

The goal is to be as realistic as possible with allocating resources so you can hit your goals. - Richenda Smith

But tucking time into each sprint to manage tech debt may not be enough.

2. Run Mini-Sprints Focused on Tech Debt

Rather than trying to squeeze time into each sprint, your team may be better off running separate mini-sprints to tackle tech debt. This way they can get a bunch of tech debt crushed at once before jumping back into coding.

ZenHub community member Jono Bacon offers a few suggestions for how to make these mini-sprints as functional and useful as possible:

  • Set clear goals, but not so many that they can’t all get done during the week — this is no time to be an overachiever
  • Handle discussions during morning sessions, and leave afternoons open for work
  • Track the sprint in ZenHub
  • Have a short, 30-minute meeting (such as a daily standup!) every morning to make sure all tasks are being assigned and tracked correctly

Richenda also suggests using the same cadence for mini-sprints as for regular sprints, at least at the start. This will help ensure there’s enough time set aside for the mini-sprint. And hey, if the team finishes early, everyone just gets back to their regular work that much sooner.

3. Have Another Team Handle the Tech Debt

Constantly switching between tasks is a productivity killer. Managing a whole pile of outstanding or inherited tech debt is like playing whack-a-mole. Even the most agile team can lose their balance and occasionally whack themselves in the face.

So, it might make more sense to have another team, maybe even a dedicated one, handle tech debt. Just like hiring a professional to do your taxes, it can save you a lot of grief in the long run, and a lot of time in the short term. A team focused on clearing out tech debt will also get better at it over time, so the process will only get more efficient.

4. Host a Hackathon to Clear Out Tech Debt

Because they’re time-limited and focused in nature (and occasionally pretty free with the beer), hackathons tend to add to tech debt, not reduce it. Hackathons have a bad reputation when it comes to tech debt, but some of the criteria of a good hackathon line up perfectly with a sprint aimed at clearing tech debt:

  • Clear, attainable goals
  • Well-organized and coordinated
  • Led by a stakeholder who understands the real-world relevance of the goals (no coding in a vacuum)

Deadline pressure often creates a perverse incentive to sacrifice quality for speed. Using a hackathon to clear out tech debt flips that around: you can’t kick the problem down the road. There is no road. There’s just a wall, and if you kick your tech debt away it’ll bounce right back to you.

In a hackathon, the goal is to repair an issue as quickly and cleanly as possible. This is a good way to tackle a large backlog of inherited or accumulated tech debt. Just like waking up in the middle of the night because you remembered your taxes are due tomorrow and you haven’t started them, there’s nothing like deadlines to get people motivated. Of course, since the hackathon is scheduled in advance, you also avoid the mistakes that come with last-minute panic.

Consider Why You Have Tech Debt in the First Place

While tech debt is inevitable, the tools you use to manage sprints can help you minimize and mitigate it. If your tools maximize developer and team productivity, they’ll minimize your tech debt. You can’t avoid having to clean up tech debt, but the slower it builds up, the easier it is to manage.

Even if your sprint management tools don’t directly add to technical debt, they can add to it indirectly by eating up developer time or splitting their focus.

So, are your sprint management tools easy to use? Do they require task-switching, a notorious robber of productivity? A solution to this context switching can be automated sprints, which allow you to “set it and forget it” rather than having to manually build out sprints each cycle.

Watch for our upcoming blog on How to Minimize the Dirty Laundry That is Tech Debt.

Software Development
Newsletter Icon