4 min read

Technical debt

If I owe you a dollar, I have a problem; but if I owe you a million, the problem is yours.
Technical debt
If I owe you a dollar, I have a problem; but if I owe you a million, the problem is yours.

Show Notes

One of my favorite memes is ELI5, which stands for explain like I'm five. I first ran across this meme on a Reddit channel for people seeking insight into the in obvious. Well, I have a five-year-old daughter who is given to pondering the obvious. And I frequently find myself struggling to explain stuff to her. A few days ago, I made a fool of myself, trying to explain why, exactly, every snowflake is unique. Let's just say my explanation raised some eyebrows. But the stuff that is really hard to explain is usually work-related. Case in point, technical debt. How do you explain technical debt to a five-year-old? I tried. It did not go well.

Well, sweetheart, technical debt is when a company finances the present by mortgaging its future. "Daddy, what are you even talking about?" Let me try again. You see, sweetie, sometimes it makes sense for a company to do something fast, even if it's kind of wrong. "But Daddy, you told me never to cut corners." Well, it's not really cutting corners. You have to pay the debt back You seem after you do it wrong. You're supposed to go back and do it again but right this time. "Daddy..." On and on it went. I just kept digging myself into a deeper hole. My daughter's sweet, innocent face beclouded as she realized daddy is full of shit.

It's a lot easier to explain technical debt to a grownup. Why? Because grownups have credit cards and mortgages and student loans. Let's talk about student loans. I just read in Forbes that the fastest-growing population of student loan debtors is senior citizens. According to Forbes seniors between 60 and 69 have around 85 billion in loan debt. Ladies and gentlemen, we are out of runaway, is the only feasible solution a bailout? It kind of seems that way. This is why certain presidential candidates have been proposing student loan forgiveness and other bailout plans. To paraphrase the economist John Maynard Keynes, if I owe you $1, I have a problem. But if I owe you a million, the problem is yours.

Now let's bring it back to tech debt. Times were different back in 1992 when Ward Cunningham first coined the phrase technical debt. Back then tech debt was a metaphor for thinking about design trade-offs. Nowadays, tech debt is used as a justification for not doing design, or even worse for neglecting internal quality. It was not always thus. Developers used to feel deep personal shame over bad code or a sloppy design. Yeah, I'm not making that up. People used to think of tech debt as a reflection of their own character, guys would cry in my office because they felt so humiliated by tech debt. Those were the days.

To modern humans that seems kind of anachronistic, but guess what? When people feel personal accountability for the code they write, tech debt gets paid down. When I first started in tech, teams would repay the debt within a sprint or two. There was no rule per se, that was just the cultural norm. Nowadays, crufty, crappy, dangerous code accumulates over months and years. You need to take a core sample to see all the layers of politics, institutional bias, and laziness.

Tech debt is no longer used as a chit in design trade-offs. Now people use tech debt as a cudgel in interdepartmental warfare. It is a shit show. How did we get here? Well, I have an idea. Before the financial crisis of 2008 debt meant something you had to pay for. After the bank bailout, the meaning of debt changed, at least in America. Now debt means something someone else has to pay for. Let's be real. If you can walk away from debt with little consequence to yourself, if in fact, debt forgiveness is enshrined as a socio-cultural norm, then does debt really mean anything anymore? What kind of incentives dominate in a world where debt is perpetual, and forgiveness is guaranteed? Friends, this goes deep, so deep.

Remember in 2008 society stepped in to save the banks and absolve an entire industry of its mistakes. Well, in 2019, presidential candidates are stepping in to absolve individual borrowers of their mistakes. Yeah, this is where we are as a society. It's scary. Where it gets really interesting is when you start to consider generational bias. Baby Boomers, Gen Xers, and millennials all think about debt differently.

Back in the 90s, I learned how to program from a member of the so-called Silent Generation. This was a man who survived the great depression by eating millet and potatoes. If you grew up in a world where financial institutions are allowed to crash, debt forgiveness is not part of your worldview. My mentor's aversion to tech debt or debt of any kind was rather intense. And I will admit that I chafed under his tutelage. But ultimately, he taught me right.

Today the industry is dominated by people with five or even six figures of student debt. And the dominant national narrative is not whether the debt should be forgiven, but when and how much. Today's techies don't think of tech debt as a reflection on their own character, but as a reflection of their management's incompetence, or as a reflection of sales priorities, or product priorities, or market conditions. Kinda like other forms of debt, tech debt always seems to be someone else's problem, which raises an uncomfortable question. Do today's techies actually intend to pay off their debt or are they waiting for a bailout? Remember, if I owe you $1, I have a problem but if I owe you a million, the problem is yours.

I'm hiring software engineers! Check out the jobs page to see my open positions.