Technical Debt as Barnacles
Barnacles in Code
As I dug through a particularly overburdened singleton at work recently, I was reminded of a constant in software development: crummy code attracts more crummy code. I could see the justifications that the previous developer (read: me) had made and they probably made sense at the time. Unfortunately, the compromises did not hold up over the years and we had finally reached a point where the whole mess needed to be teased apart and cleaned up. It was time to do some barnacle scraping.
A Marine Metaphor
Barnacles. The bane of any boat owner’s existence. The persistent critters attach themselves to any submerged surface in as little as a long weekend. Wait much longer than that and you’ve got a real mess on your hands. Cleanup involves laboriously scraping or pressure washing the boat’s hull followed by a chemical treatment. If you skip the cleanup, expect reduced speed and fuel efficiency due to the added drag.
Technical Debt like my overburdened singleton is like a barnacle infestation in a few ways:
Easy To Clean If Addressed Early
A weekend’s worth of barnacle growth can be scrubbed off with just a hose and brush. This is technical debt in the top right of the Technical Debt Quadrant that is addressed in a timely manner.
Painful To Rectify If Addressed Too Late
Removal of a entrenched barnacle infestation is a difficult and time consuming process. Simple cleaning tools will no longer suffice: it’s time for a pressure washer or a putty knife and SCUBA gear. This is likely technical debt from the left side of the quadrant but might be ‘good’ debt that has been ignored for too long.
Impacts Performance If Ignored
Like a boat slowed by extra drag on its hull, a team burdened by excess technical debt cannot operate at top performance. The team can slog on inefficiently or choose to “Dry Dock” for a bit and streamline itself.
comments powered by Disqus