| Controversial idea: Technical debt is something that 'business users' don't need to or want to care about. If you're having conversations about technical debt, you've messed up, and you will continue to have unsatisfactory outcomes until you stop doing so. You can't tell people; here is a dial, you can pick 'fast and you're screwed later' or 'slow and careful now'. You're setting yourself up for failure; they cannot pick 'slow and careful', because that's not their job; their job is to quickly deliver value/outcomes/whatever. Almost no one has a job of 'go do this really slowly and carefully'. They will always pick fast, and it's your problem later. So... don't do that. Instead, say: this is how long it will take to do. Not "if we rush we could probably do it in..."; no, if you say that, then why are you not rushing now? Do you not care what the business wants? Do you not have 'skin in the game'? Say: This is how long it will take, we estimate. If you want it faster, we can cut some features. Then, do enough of a good job so you can continue to deliver value in the future. That's literally your job. Doing a rubbish job as quickly as you can is not your job. Not ever. You cannot abrogate responsibility for doing your job properly by saying "but I was told to do this", if you literally gave them the choice of A or B, where one of those options was "you have to pick this one, and it lets me get away with doing a rubbish job of it". That's YOU choosing to do a rubbish job. ...and to be fair, yeah, there are situations where someone will come and tell you "no, do it now", and that's what you have to do... but you also have to come and clean up afterwards. Not because you're told to, explicitly, because... it's your job. |
There are always trade-offs, and a good partner in any team/business will help those be articulated.
One thing that is important for any engineering team is to have a certain amount of capacity either permanently dealing with technical debt, or regularly dealing with it. Judging the amount of effort that goes into fixing it depends entirely on the amount of 'interest' you're paying. That isn't always easy to measure, but a good senior engineering team will have a sense of when things are getting hairy.
The idea that it's avoidable is unfortunately wishful thinking for any project of a substance.