Look, can I get real for a minute?
Your boss doesn’t care about Tech Debt.
Neither does your customer, your VPE, the owner of the company or anyone who uses your software. They don’t give a golly-gosh-darn about how bad the last person left the code. They don’t care that it’s not “elegant,” or it’s “crafty” or the comments are out of date. They don’t care if your build takes 10 minutes to run, they don’t care if your objects are too tightly coupled, and the sure as heck don’t care if your indentation is consistent.
They don’t care because the software works well enough for them, often enough, that they are satisfied with it.
Even if your boss doesn’t use the software you build, the tech debt probably isn’t causing her phone to ring 100 times a day from angry users. Instead, her boss and users are applying steady, constant pressure to deliver more features, faster, that cost less to build.
I get scores of emails where programmers and tech leaders say their biggest problem is “Not enough time to refactor tech debt.”
Let me state here and now that this is not your biggest problem.
Your biggest problem is that you and your boss aren’t aligned.
She wants more features. You want to pay back tech debt.
She keeps pushing you for more. Your team keeps protesting that the code is so bad it’s like a hostile work environment.
You might win this battle sometimes, but in the end, you’ll probably lose the war.
You’ll get fired.
Or, maybe your team will start to lose faith in your ability to provide them what they need.
Or, perhaps you’ll be asked to move back to Senior Programmer.
Or, maybe you’ll decide you can’t stand the stress and choose to take up organic hay farming.
Honestly, I’m afraid that you’re clueless that this is your biggest problem, and you’ll be blindsided when your boss has an awkward conversation with you.
So, what should you do?
1. Talk to your boss about it. If you always hear “more features, faster” from above, and your team is saying “slow down and let us fix things” then you and your boss need to have a very clear, possibly involved discussion about what the priorities are.
2. If your boss thinks Tech Debit is a myth (and believe me, some do!), talk with your team about the real impact of these quality problems. Saying that the code is “hard to work with” or “has a lot of friction” may sound like whining to your boss. Instead, work to quantify the effects of poor code quality in terms such as bug count, hours spent fixing bugs in that module in the past quarter, and the labor cost used to do so. These kinds of numbers reveal the financial impact of what your team is complaining about, and will certainly change the conversation you have with your manager about Tech Debt.
3. Get on the same page of the table with your boss, and look at the numbers together. If both of you are trying to solve the problem of the high expense caused by poor quality, it’s much easier to have a productive discussion and removes the “us and them” feeling you might be getting. When both of you focus on a third thing (the problem), it allows you to work together rather than against each other to discuss solutions.
At the end of the day, getting pressured to go faster really sucks. But hearing your team complain about abstract Tech Debt sucks just as much. Work with your staff to understand the business impact of quality issues, and help management understand the impact of their priorities.
By doing this, you’ll avoid the problem that could get you fired: losing your bosses confidence that you can deliver what the company needs. And that would be a dog-gone shame.
Oh, and if you’re feeling exceptionally brave, buy your boss a copy of my book and send it to her over email. Tell her to start with Bad Habit 5, Constantly pushing the team to deliver faster.