You don't negotiate with Product Owners on time on technical debt vs. time on features. You refactor all the time, while building the features. Product Owners not giving you time aren't the ones at fault for the technical debt, you the coder are, for allowing the code to become a mess over time.
Learn Continuous Integration, Test Driven Development, and how to work in small batches. If you're on a legacy code base, same approach for new code, and additional acceptance tests for old code.
This article is written extremely well, with wonderful context, even utilizing mob programming, describing exactly what you shouldn't do. Don't create a culture that condones bad code. There will always be technical debt, but you should be tackling it all the time, not deferring to some negotiated time period.
Top comments (1)
So true.
«I have yet to see a company that isn’t running code in production that was [only] intended to be a proof of concept or quick prototype.» -- Jason Lengstorf
The idea of ‘Throwaway prototypes’ is a scam.
Stuff tends to stick around!
That’s why you shouldn’t take shortcuts, since «the incentive to fix things disappear after they are shipped», incurring tech debt.
You likely won’t get around to «polish that feature later», or «clean up the codebase», or «delete the prototype and start from scratch».
The pressure of moving forward is too great. Put tasks fully behind you!
Another story from the trenches:
-- Dario Gieselaar (@GieselaarD) in “The Engineering Problem of A/B Testing”, levelup.gitconnected.com/the-engin...
Also sourced from my previous tweets:
x.com/magnemg/status/1284139466777...
x.com/magnemg/status/1366700117978...