Engineer's guide to convincing your Product Manager to prioritize technical debt
11–20 of 30 posts
Re: Engineer's guide to convincing your Product Manager to prioritize technical debt
#12You 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.
Re: Engineer's guide to convincing your Product Manager to prioritize technical debt
#13I 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…
Re: Engineer's guide to convincing your Product Manager to prioritize technical debt
#14I 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 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
#15Re: Engineer's guide to convincing your Product Manager to prioritize technical debt
#16You 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.
Re: Engineer's guide to convincing your Product Manager to prioritize technical debt
#17Honestly, 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
#18You 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.
Re: Engineer's guide to convincing your Product Manager to prioritize technical debt
#19You 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
#20You 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.
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.