Loose Gravel

lbwood
ProfitOptics
Published in
2 min readSep 25, 2023

a story about tech debt

Weeks ago, one of the roads we use on a daily basis was repaved. The county positioned signs at either end of the road warning drivers that there was loose gravel. Super helpful at the beginning for those that wanted to slow down or avoid the road altogether…

Image of neon orange “loose gravel” sign at roadside

…that said, the signs are still there after weeks of traffic and multiple waves of storms have long cleared the loose gravel. For local drivers, the signs no longer hold meaning — except maybe to elicit a snicker that they still have not been collected. For drivers less familiar with the area, the signs may actually pose a hazard if an out of town driver were to slow for fear of gravel and a local driver were to be frustrated at the slowdown.

As silly as it seems, I used the stale signs to explain to my kids why it’s important to “run our fences” and manage tech debt. While I pass no judgment on the county (that is a level of logistics that even my five-kid household cannot rival), leaving the signs out beyond their useful value is much like the loose ends we often abandon within our systems.

  • Poor stewardship: Presumably paving operations have continued throughout the county, and these signs could be put to use elsewhere.
  • White noise: No one puts any value into the messaging because it is stale and no longer relevant.

Best practice would say that we need to define an appropriate length of time to warn drivers of the risk of gravel and then systematically collect the signs once they are no longer needed. This would keep messaging relevant, ensure the audience pays attention, and maintain an active inventory of resources.

Much in the same way, we too often abandon loose threads within our code or leave stale data out in the ether because it is easier to just keep moving. We can comment out code or provision more server space much faster than we can perform the appropriate due diligence. That said, we then leave ghosts in the machine for others to find and later manage. The next generation of product owners or development teams are at the mercy of our castoffs when they try to reverse engineer the function or determine the useful life of stagnant data.

We do ourselves and our successors a favor when we keep things crisp by removing and regression testing dead code blocks or dropping datasets that are beyond their useful life. These are obviously very high-level examples; I realize that volumes have been written about tech hygiene, but I thought the novelty of the stale road sign a powerful analogy to remind ourselves of this principle — not only in tech, but throughout our daily lives.

--

--