Live data from Hacker News

Engineer's guide to convincing your Product Manager to prioritize technical debt

newsletter.eng-leadership.com

11–20 of 30 posts

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#11
Another way of looking at this is hiring Technical product managers, aka, folks who have moved to product management from software engineering. This automatically means you have engineers and product managers talking the same language from day one and you don't have to package tech debt as "value propositions". Being software engineers themselves, the PMs at our company usually have a good understanding of when to move slow now (to move fast later), when it's acceptable to apply band aid fixes to keep the ship moving forward or when it's "everything is on fire, this needs a complete rewrite!" time

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#12

You shouldn't have to "convince" anyone, only to inform them. If they don't trust you to look after the software, they will ultimately get what they deserve, which is a software that doesn't work and is unmanageable beyond repair. As an engineer, your job is to do engineering, not to engage in people manipulation. My policy is to not protect evil manifested as product-greed. Sometimes it's better to let it burn.

[deleted]

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#13
post #4

I think best is not to ask the product manager for permission to address technical debt but to do it as a regular part of the job. And it's better to do this in an ongoing manner vs letting it pile up until nothing works anymore. Quantifying the improvements you get from addressing technical debt is a losing game. Most likely you will have to bullshit some numbers together.

Sadly true. In the time spent gathering believable information to present, you could probably address a reasonable number of small tech debt items. Large tech debt items probably can't be resolved without some major business-impacting issues. At which point, you might rather not be around. Regarding bullshitting numbers, I think it's especially a losing game when you are presenting numbers to more experienced profess…

especially when technical debt originates from unknown or forgotten business requirements. Shouldn't take apart the toaster when its actually a microwave because that may actually kill us.

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#14
post #4

I think best is not to ask the product manager for permission to address technical debt but to do it as a regular part of the job. And it's better to do this in an ongoing manner vs letting it pile up until nothing works anymore. Quantifying the improvements you get from addressing technical debt is a losing game. Most likely you will have to bullshit some numbers together.

Sadly true. In the time spent gathering believable information to present, you could probably address a reasonable number of small tech debt items. Large tech debt items probably can't be resolved without some major business-impacting issues. At which point, you might rather not be around. Regarding bullshitting numbers, I think it's especially a losing game when you are presenting numbers to more experienced profess…

"I think it's especially a losing game when you are presenting numbers to more experienced professional bullshitters."

I think pro bullshitters know it's all BS. The real problem are the people who haven't realized that yet :-)

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#15
Hah, if only. My last PM position I was right there with engineering pushing for this. Our issue was convincing the C-suite, who were more nervous about our PE owners wanting to divest in 2ish years, so were in full "fatten the pig for market" mode, believing technical stability and foundations could be the problem of the new owners. And then getting frustrated at PM and Eng because roadmap items took longer to deliver because of the complexities or other issues surrounding tech debt.

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#16

You shouldn't have to "convince" anyone, only to inform them. If they don't trust you to look after the software, they will ultimately get what they deserve, which is a software that doesn't work and is unmanageable beyond repair. As an engineer, your job is to do engineering, not to engage in people manipulation. My policy is to not protect evil manifested as product-greed. Sometimes it's better to let it burn.

What is it that you think engineering entails, exactly? In a software business your job is to produce artefacts the business can sell, without spending so much in the process as to destroy any hope of profit. Part of this involves talking to (not manipulating!) your colleagues, including product management.

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#17
This is kind of a weird one. Like, this isn't bad advice for advocating for yourself in general, and it's a far sight better than the approaches that I have seen at a lot of companies (i.e. "complain loudly enough until they give in" or "never, we just never address technical debt and we hope that doesn't come back to bite us"), but even still, I read this and I get the vibes of a dysfunctional organization hiding behind the scenes. Engineers shouldn't _have_ to try to beg, borrow, and steal time to work on technical debt. Moreover, "technical debt" in this article seems like it's being used more as a synonym for "crappy code" than the actual original debt metaphor -- there's no discussion of "interest" (i.e. accumulated costs over time), or payoff events (cases where the debt comes due all at once), or important business milestones (which can drastically affect whether you can even afford to pay attention to technical debt at this time), etc.

Honestly, this shouldn't be something that non-leadership engineers should be concerned with at all. They should be working with engineering leadership to ensure that technical debt is identified and classified, so that engineering leadership can work with product leadership to prioritize the payback of technical debt at an appropriate time, in the appropriate order. Trying to solve this problem at the level of individual teams and individual PMs means that the larger scope of the business's needs aren't available to be considered. Is there a funding round coming up? A big partnership announcement? A hiring round? A hiring freeze? You don't know, and you won't necessarily be told, even if you ask.

On top of that, the standard of measurement for improvement is flawed. The article is suggesting that "technical debt" as a whole is doubling the amount of time it takes to do features, but that's just not the way it works. Technical debt isn't just "crappiness of your codebase" -- you'll never solve that, no codebase is perfect. Technical debt should be tracked as individual, specific issues that will have specific negative effects (the database doesn't have appropriate indices and will get slower over time causing increasing performance issues, the version of the third-party API we're using is being deprecated and if we don't upgrade, we'll have a production outage, our User class has grown out of control and any feature that touches it effectively touches most of the app, causing bugs to appear at a much higher rate and slowing releases of these features, etc). I'm summarizing because this is already a long comment, but these issues should be even more specific than that: you need to describe the issue, the cost to fix it, the pain it's causing now, the pain it will cause over time and what that time frame is, and if there's any events that will require you to have the debt solved Or Else. Talking about technical debt with this information available gives concrete information about why it's valuable to solve. Talking about it with "we will move 2x faster" is unlikely to convince anyone, because software development isn't that reductive. You cannot guarantee that flat, project-wide improvement, and people will remember the time they spent three months not building features for no benefit they can understand.

I feel like the approach specified in the article will work -- at best -- once. A lone engineer doesn't have access to sufficient information to truly make a case for why this is a good time for the repayment of a particular piece of technical debt, can't see the full spread of potential technical debt that _could_ be solved and should be considered, can't adequately convince people as to the benefits of having resolved the technical debt, and honestly shouldn't be spending their limited political capital trying to get their personal pet peeve fixed. If technical debt isn't getting fixed appropriately, that's an engineering leadership issue, and you should be working with engineering leadership to try to help them understand any debt they're not aware of so it can get prioritized appropriately, and then afterwards, work with them to make sure that the specific, visible improvements and "catastrophes avoided" are recognized and respected.

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#18

You shouldn't have to "convince" anyone, only to inform them. If they don't trust you to look after the software, they will ultimately get what they deserve, which is a software that doesn't work and is unmanageable beyond repair. As an engineer, your job is to do engineering, not to engage in people manipulation. My policy is to not protect evil manifested as product-greed. Sometimes it's better to let it burn.

It’s not usually the PM that has to deal with the unmanageable mess, it’s the engineer who’s still expected to deliver and gets it held against them when they can’t because of the mess.

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#19
post #18

You shouldn't have to "convince" anyone, only to inform them. If they don't trust you to look after the software, they will ultimately get what they deserve, which is a software that doesn't work and is unmanageable beyond repair. As an engineer, your job is to do engineering, not to engage in people manipulation. My policy is to not protect evil manifested as product-greed. Sometimes it's better to let it burn.

It’s not usually the PM that has to deal with the unmanageable mess, it’s the engineer who’s still expected to deliver and gets it held against them when they can’t because of the mess.

That's only if the engineer doesn't have it previously documented in writing, on record, that any delays are due to the mess, and that the mess needs to be fixed the right way. It certainly should not come as a surprise. This is what I meant by "inform them".

Re: Engineer's guide to convincing your Product Manager to prioritize technical debt

#20
post #16

You shouldn't have to "convince" anyone, only to inform them. If they don't trust you to look after the software, they will ultimately get what they deserve, which is a software that doesn't work and is unmanageable beyond repair. As an engineer, your job is to do engineering, not to engage in people manipulation. My policy is to not protect evil manifested as product-greed. Sometimes it's better to let it burn.

What is it that you think engineering entails, exactly? In a software business your job is to produce artefacts the business can sell, without spending so much in the process as to destroy any hope of profit. Part of this involves talking to (not manipulating!) your colleagues, including product management.

> without spending so much

This is really not the engineer's doing or problem. That's except if the engineer has been producing wasteful solutions that rack up cloud bills in a way that's 10x more money inefficient than it needs to be. For the most part, corporations waste extreme amounts of money in numerous ways, and the engineer has nothing to do with any of it. For the most part, the engineer has no say in the general business waste.

> in the process

This was unjustified. A good engineer will spend what is necessary, and no more. Generally, the business expenses that typically make or break the business are much larger than the engineer's residual salary.

> What is it that you think engineering entails

It does not entail saving the management from itself. I would in fact be happy to see the management fail if they don't listen to the engineers, telling them "I told you so". This is assuming I had previously documented my concerns in writing. I don't feel the need to have to convincingly "sell my concerns" in the face of resistance when no one really wants to listen anyway. My job is to eliminate my liability, which I did when I documented the concerns exactly once in writing.

In summary, if management is going to act st00pidly by ignoring the concerns noted by engineers, it is really not the job of the engineers to bend over backwards to convince them. Often it is failure that teaches the most important lessons.

Post reply on HN