What did you eat in your teens and early twenties?

If you’re like most of us, you ate whatever you wanted, probably because it felt like it didn’t matter what you put into your body. Poor eating habits usually don’t have an immediate or even obvious impact. And our health and shape typically remain the same.

Then, age happens, and the older we get, the more our choices start to add up to results we don’t like (or can even reverse). So, it’s only in our late 20s or even 30s and 40s that many of us pay more attention to what we eat. Maybe you cut down on sweets or reduce carbs, for example.

This doesn’t work without a system, though – neither does reducing technical debt.

Why addressing technical debt requires a system

Have you ever finished a junk food binge and thought, “That’s it, I’m not doing this again,” but three days later, you devour another pizza?

Unfortunately, as we all know, you can’t escape this trap just by wishing for change. It requires concentrated effort, such as:

  • Thinking about why you’re overeating
  • What triggers certain eating behaviors
  • What healthy substitutes you’ll eat for snacks
  • Actually following through on these thoughts
  • And so on

You need to make a similar effort with technical debt:

But all of this, no matter how well thought-out and planned, becomes chaos without a system. You need an intentional, clearly articulated set of protocols that lays out and incentivizes certain behaviors that, when acted on, bring you closer to a goal.

The beauty of such a system is that, when you’ve used it long enough, it becomes second nature. You don’t need to expend as much effort for it to work or make good choices.

I don’t want to tell you what this system should look like for you. Instead, I want to highlight guiding principles that have helped keep me on track with managing technical debt at work.

Here’s what those are.

1 - Secure and maintain resources

This part of your system first requires knowing what precisely you’ll be asking for. So, set aside time to regularly review your tech debt logs and determine what resources you’ll need to address the issues on the list. 

If you’ve set up an effective logging system, your team members will have already tagged technical debt with estimates on time and resources.

I also get this information by looking ahead. I note upcoming events in advance, such as feature launches or other significant milestones. These typically generate more technical debt than usual. In addition, I note times when I think things will be less frantic.

With this information, you can pitch a plan to upper management and other business representatives during your next meeting. When I sense resistance, I highlight the value that addressing technical debt will bring to the project.

2 - Create regular protocols and standards

Imagine you sit down with a friend’s MacBook. When you boot it up and want to use a web browser, you find the: 

  • Search bar in a completely different place
  • Tabs laid out differently than you’re used to
  • And so on 

They didn’t do this accidentally or out of spite – this is what works for them. Your job is to learn how to use it.

Now imagine you’re an engineer assigned to look at some technical debt but find that every other engineer logs and tracks it differently (which maybe isn’t so hard for you to imagine!). 

Maybe some of their methods are useful, but you’re wasting precious hours (even days) learning all these different systems before actually doing the work you’ve been assigned to do!

As the engineering manager (EM), create standards that everyone should follow to prevent this waste and confusion. 

First and foremost, store and tag technical debt in a common log. 

If you create a new system, make sure everyone has the opportunity to learn about it. Above all, tags should be consistent and understandable.

Onboarding is just as critical. 

If you find that newer engineers are doing things differently, it may be because they’re still used to their former company’s protocols or they weren’t properly onboarded. 

And periodically review your onboarding procedures yourself or assign someone to the task. 

Make sure everyone is exposed to the same approach to the log.

3 - Coordinate across teams

It’s easy to think mostly (or only) about the engineers you have to assign to technical debt tasks. But there are many other important players to keep in mind and coordinate with. So, when your engineers log tech debt, make sure they indicate which teams are most likely to be affected by the issue.

Most technical debt issues require testing from QA engineers, for example, and the scope will depend on the task. 

Sometimes, it’s limited to one section of the feature, but sometimes, there needs to be a full product regression. Changing an important piece of code can create echoes that take weeks to iron out.

Depending on how deeply embedded the technical debt is, it may even affect the design. 

In cases like this, the UX and other teams may need to be brought in to help resolve the issue. As you well know, this means involving team members who don’t have technical backgrounds. Which also means building in time to:

  • Educate them about tech debt
  • Why it’s important to address
  • And how this will make their jobs easier

You also have to keep your fellow managers in the loop. 

Addressing technical debt can change production schedules and require extra resources. So, schedule time to discuss these issues with the managers of those teams. 

Also, if a task demands a lot of resources, ask yourself how critical it is. It may be better to address it at a moment when other teams are more ready to jump in and help.

4 - Maintain and change systems as required

Last, keep an eye on the system in case something goes wrong or if it doesn’t work as it should.

Failure could mean a number of things:

  • New issues aren’t being added
  • Too many issues are flagged as technical debt
  • More is added than resolved
  • Low-priority issues are being addressed first
  • And so on

These form the basis of metrics you can use to track your progress. You (or someone you delegate to the task) have to keep an eye on this to see if problems emerge. The kind of problem determines your next steps.

For instance, if not enough is being done, you may have to dedicate more resources or hire someone to manage the process. Or maybe you’re more ambitious than your resources allow and have to scale back and focus only on the most critical pieces of technical debt.

The answer is going to differ in each case. But the principle remains the same: your system keeps things moving along. Maintaining it is key to making sure you stay on top of your team’s technical debt.

The short version: systems make good work habits second nature

Technical debt, or the resources you use to address it, can easily spin out of control if you don’t have a system to keep you and your team focused.

As the EM, it’s your job to design and maintain this system. Here are a few important things to keep in mind:

  • Systems are important: they help us build good habits that become natural over time
  • Resource management: you have to make sure you have enough resources to do the work you need to do at different times
  • Standardize: design and communicate a system for all team members to use
  • Coordination: keep other managers and teams in the loop when addressing technical debt affects their tasks
  • Maintain your systems: keep tabs on your system so you’ll know if something goes wrong and will be prepared to change course

Keeping all these points in mind will help you address technical debt in a way that keeps it from snowballing out of control while not exhausting your team’s resources. This leads to healthier teams better positioned to thrive in the future.


Want more tips on leading effective software engineering teams?

Join my newsletter if you’ve found this content useful


Originally published on Medium.com


Content in this blog post by Alex Ponomarev is licensed under CC BY 4.0.