In the era of seemingly never-ending tech layoffs, software development teams are being asked to do more with less. While teams are carrying on, continuing progress, releasing new features – tech debt never stops piling up.
Development teams know that they have to chip away at technical debt or face big problems in the future. They often intuitively know where the problems lie – but sometimes it’s difficult to explain them. Development teams need to fully understand their tech debt and then work together with their non-technical counterparts to prioritize it, sometimes above and beyond a simple 10-20% time that’s been allocated to “tech” initiatives.
There are a couple of ways to approach bringing your non-technical teammates into the conversation so that they can understand and help prioritize.
Use analogies! This tactic is overused for a reason. Whether it’s rust on an airplane, fixing a car, or making improvements to your house, there are many parallels to tech debt that show up in our daily lives. But the point is, you start to help your teammates understand the implications of delaying the inevitable and the “true cost” of putting off certain changes.
Use numbers as much as possible. Your business counterparts are likely used to having to justify investments and tradeoffs with numbers. Yet, tech debt is hard to quantify, and there aren’t great tools that yet exist to help with this task. Making an attempt is better than nothing. Try cataloging how much time the tech debt is wasting with ongoing remediation, maintenance, and fixes. Compare that with the time (cost) of mitigating the issues now.
Understand your teammates’ goals. This is an important, and often overlooked one. Before you can collaborate (and negotiate) with non-technical counterparts, you need to put yourself in their shoes and understand what motivates them. What numbers do they need to hit this quarter, year, etc? By understanding the frame of mind from which your teammate is coming, it will be easier to frame your discussion around their short- and long-term goals, and therefore arrive at a compromise.
Reveal your uncertainty. Remember that with each of these situations, you enter into a Prisoner’s Dilemma — there will be repeat interactions in the future, and it’s easy to erode trust quickly. Show your hand by making it clear where the unknowns lie. Just like when finding a leak in your roof (there’s that analogy!), “we don’t really know what the root cause is, or what the hiccups will be, until we start the job and start inspecting…being a seasoned home owner, you know that the estimate is just that – an estimate – and that it’s likely to change when the roofer gets a better look.” While it’s not wise to say “I don’t know how long this will take” (see point above about using numbers as much as possible), being clear that there’s always uncertainty will save difficult discussions later.
More than anything, keep the door to conversation open, focus on the impact of a change versus the change itself, and quantify as much as possible.