ISSUE #46 - February 4, 2018
It’s been nearly a year since we last looked at technical debt, and the new content written about the issue has mounted along with the debt itself. This is our new look at the problem of technical debt, its subtypes, measurement, and ways of paying it off. The earlier take is available in Tester’s Digest archive:
Kinds of technical debt, including defect debt, and some ideas for quantifying the costs of carrying such debt:
Bug debt! “Unresolved bugs are like the undeliverable mail of our day—a one-way communication without a recipient.”
Feature flags are considered technical debt, for very good reasons:
The big reason behind technical debt: we have systems with technical debt because those systems work – that is, they appear to be working well enough, since the “working” part is visible, and the “debt” part is not.
Why isn’t anyone doing anything about the tech debt? Let’s hope the situation at your workplace is not as dire as in this fictional bureaucracy:
PagerDuty on measuring technical debt with incident related data. While this is obviously tooting their own horn, the idea appears sound. “For example, if your MTTR for incidents related to a certain program is higher than your average MTTR, there’s a good chance the program in question is generating technical debt. Similarly, if servers running one type of operating system account for a disproportionate number of alerts, there’s probably a code or configuration flaw at play. That’s a technical debt you can address.”
When taking on technical debt (on dev or test side), have a specific plan for how you will pay it off:
One approach to dipping into your technical debt… spin the wheel!
How LinkedIn paused new development for 2 months to pay off its tech debt in 2011 - light on detail, big on inspiration:
The system complexity angle on managing technical debt: have points of flexibility in the right places in your software (not everywhere), minimize dependencies, refactor for velocity, throw away prototype code and low-performing features, build culture of testing and code review.
Worth learning: how to be a wizard. Well, that’s the title anyway, but this slide deck from Stripe’s engineer Julia Evans is amazing (take it from the person who hates slide decks). It covers the learning process of a future great engineer (or tester!)- what do you read? what do you try? how do you ask questions? how do you debug? how do you design? how do you develop understanding?
If you received this email directly then you’re already signed up, thanks! Else if this newsletter issue was forwarded to you and you’d like to get one weekly, then you can subscribe at http://testersdigest.mehras.net
If you come across content worth sharing, please send me a link at firstname.lastname@example.org