I speak very highly of my wife's Grandfather, Stan. He served in the United States Army during World War II, working on radar installations in or near Italy. He had a partner assigned to him who, it was revealed after the war, had orders to shoot him if it looked like he was going to be taken prisoner. Which is pretty metal.
He grew up in the shadow of the Great Depression, so he had a very exacting approach to money management. Every single cent he or his family spent would be marked in a ledger he carried around with him. When his daughter, my wife's mother, would ask for a nickel at a little league game so she could buy peppermints and a soda, he would write that transaction down.
I tell you about Stan to contrast with myself. I do very little accounting of my own money. I never check my account balance; I just say "that's fine" when the nice people at Chipotle remind me that guacamole is extra, and then I deal with the overdraft fee. If you ask me what I'm worth, I would shrug and say "that's a problem for my beneficiaries" and go on my way.
I don't meet many people like Stan these days, which is why I think the "debt" metaphor is outdated and should be tossed aside. It's time for a more general, pan-generational metaphor:
Cleaning. The metaphor is "cleaning".
I was beaten over the head with this metaphor while my wife and I were scrambling to make our house presentable enough that incipient guests wouldn't call the fire marshal on us. My daughter was turning 2 which of course obligated us to serve cake to a bunch of well meaning people bent on robbing us of our scarce social energy – and our children ensure we have plenty of trash, laundry, and general stickiness that should be taken care of before "normals" show up.
As I was packing dirty dishes into the refrigerator and oven I found myself reflecting on my current project. "How is this frantic 'cleaning' any different than when we made questionable technical decisions to help the client make their deadlines?" I asked myself.
"It isn't", I say, now, in my once-again messy kitchen. The dishes agree - I forgot about the ones I left in the oven and the mold is getting advanced enough that it's prepping for its SATs.
Nearly everyone has some experience with cleaning, or knows what happens if you leave some tasks undone for too long. At the very least you've opened the refrigerator, took a whiff and thought "I should probably do something about that." Let's try out the cleaning metaphor in a technical context and see if it resonates with you:
We accrued some technical dust bunnies this week because we had to sweep a few small architectural changes under the bed to get a feature out more quickly. If we're going to use that room in the future we should probably schedule some time to move the bed, vacuum, and scrub the floor.
This is something my team has done countless times, and, because (in our current project) architectural changes show up frequently, there are some areas that require us to wade through a ton of clutter just to change a lightbulb.
"Pick up as you go" vs "Deep clean"
The metaphor extends to day-to-day coding. You don't want to leave your code area a mess when you're done. Pick up your apple core and toss it in the garbage. Make your bed. Fold, then put away your laundry.
In code, just as real life, there is no fairy that washes your dishes for you. That's either a problem for Future You or someone you live with. When you neglect cleaning up, you are creating future work for someone (possibly even yourself). This is the "debt" that accrues in that other, crappier metaphor. In real life, it's how you get ants.
Cleaning and prioritization
The metaphor can also be used to help prioritize when under pressure. If your house is on fire, do you need to make sure your Kit-Kat wrapper goes in the trash? Probably not, it's going to be a smoldering pile of molten plastic in mere seconds regardless of where you leave it. Your immediate focus should probably be evacuating with all your friends/family/pets.
Your kid is having a friend over for a playdate? In 15 minutes? It's probably okay that your dried clothes stay in the dryer for another couple of hours, but we might want to do something about the yogurt your toddler was artfully smearing all over the living room floor.
That big birthday party is finally over, but now we get to deal with the aftermath. Luckily all the plates, utensils, napkins, and cups were disposable (take that, Earth) and they're all piled neatly on this disposable tablecloth. Don't judge me. We all make questionable technical decisions when we're exhausted.
And then comes time to "pay down the debt". Or does it? If we're pretty sure the room we've just wrecked will never be used again, let the spiders have it. "We don't go in there. That's the spider's room." I have closets like that in my house.
If you do need to deep clean a room, you need to allocate time for it. Buy supplies for it. Maybe bring in professionals. Flamethrower-wielding spider exterminators. Whatever. But you can't really treat it like normal work. You made a Huge Mess for some real purpose, and now that the purpose is fulfilled you have to start scrubbing.
Clean rooms make doing things easier
If your kitchen is perfectly clean then preparing a meal is way easier. If your garage is perfectly clean then keeping your car frost-free is way easier.
Let's say your furnace starts acting up and it needs to be looked at by a serviceperson. You've left your clean laundry in a pile near the furnace room and they've tromped mud all over the area, and a little grease somehow. Now you have to redo your laundry. If only you had taken the five minutes to fold your clothes and put them away! Now you've lost another three hours (if you're attentive) and another load of laundry detergent (street value: $15/load for HE).
Another example: you want to paint a room. Which room is easier to paint: the one with the clean floor and well managed couch with decorative pillows artfully strewn about? Or the stye that is currently my living room? The answer is obvious. Pull the couch away from the wall, paint, wait a bit, then replace the couch. In and out, twenty minutes. Or hours. I don't know, I'm not a painter.
People have different comfort levels
I work with some people who see a messy room and feel compelled to make it spotless before they even start whatever task brought them there. Conversely, I have worked with people in the past who don't care how immaculate a room is, they'll tromp in with their mud-covered work boots and slap a cheap, plastic module right in the middle of the china cabinet.
There's a balance, of course. On my team we talk about "boy scouting", leaving the area slightly better than how you found it. Myself, I prefer to maintain homeostasis – if the area I'm working in is messy, I'll do something slightly less messy and maybe put some laundry in a hamper. If the area is immaculate, I'll damn well make sure I'll install an energy-efficient, dimmable, locally sourced, eco-friendly lightbulb, perhaps with a tasteful-yet-quirky diffuser.
This "clutter" metaphor has given me a language to identify a tension on my team and have conversations about self-awareness and tradeoffs. If there's a leak in the basement you can slap a patch on it in a few minutes without needing to take care of the cricket infestation over by the water heater.
I scoff at thee, debt metaphor
Each of these situations lend themselves well to metaphor. You may have noticed that, with very few exceptions, I haven't used any words from software in this article. Were you able to inject examples from your own project to fit the scenarios?
I don't think I could've written this article without technical terms if I were using the Debt metaphor, but that could be a limitation of my skill as a writer. Even though we both know that's nonsense.
If you've found this metaphor resonates with you, try it out on your team, in your workplace, wherever. Let me know how it fits. If you can find me. I'm going to brave the oven and get these dishes done whether they like it or not.