Good Code Can Be Easily Deleted: Tips on Dealing with Technical Debt
This week I got to sit down with Robby Russell on the Maintainable Podcast to chat about technical debt: what it is, how to avoid it, and how to get rid of it when you’re already knee deep in it. I feel that there were a few ideas I didn’t say very elegantly (doing a live podcast is hard!), so I thought I’d do a follow up post to clarify. If you haven’t had a chance to listen to the episode yet, I recommend you do that first before continuing to read.
What is technical debt?
First, let’s define our terms. When it comes to “tech debt”, it seems there is disagreement in the community as to what that actually entails. Is really old code considered “tech debt” if it’s fully functional, bug free and has excellent test coverage? What if the original author is no longer around? What if it’s got terrible documentation?
On the podcast, I define “tech debt” with a story. Imagine it’s spring time. The snow has just melted and you decide it’s finally time to repaint your house. You buy the tools you need, the paint, a bucket, and set up the ladder so you can get to work. The project takes a few days, and you’re almost done when you realize your gutters need cleaning first. You leave the painting stuff on the driveway for a moment and go looking for your gloves. You get to work on the gutters.
By now it’s summer. The house isn’t fully painted yet, but at least the gutters are mostly clean. Your kids start taking out their skateboards, bikes and scooters out of the garage. Your driveway is still covered in painting supplies and now that the kids are out every day, you can’t possibly find the time to finish the task. Your neighbor stops by unexpectedly to drop off that garden hose he borrowed. You weren’t home, so he added it to the pile that’s now building up in front of your house.
In the fall, the pressure mounts. You realize if you don’t finish the paint job, you’ll be in deep trouble come winter. You dig out the painting supplies but the paint is now dry so you run to the store to get something new. Meanwhile, the leaves and acorns from the oak tree in your yard have already started falling and they’ve…