←back to thread

157 points loumf | 9 comments | | HN request time: 0s | source | bottom

This is the first half of my book, “Swimming in Tech Debt”. It is available at a pre-launch sale price of $0.99 (https://loufranco.com/tech-debt-book).

I have been working on it since January 2024. It is based on some posts in my blog, but expands on my ideas quite a bit.

In September 2024, excerpts appeared in Gergely Orosz’s Pragmatic Engineer newsletter, which helped me get a lot of feedback that expanded the book from my initial idea. This half is about what I expected to do before that —- the rest of the book goes into team and CTO practices.

Show context
conartist6 ◴[] No.45137491[source]
The swimming analogy is not a strong start. You disavow an obvious and strong analogy to monetary debt right away while dumping us into this strange metaphor that depends on us having an intuition for how you think and feel about swimming, and specifically swimming laps? Instead of setting the stakes high right off the bat you've lowered them and lost my attention with this wandering train of thought that has no clear relationship to the topic you wish to discuss...
replies(3): >>45138717 #>>45138824 #>>45142642 #
1. conartist6 ◴[] No.45138824[source]
I'm reading a bit more now and you're realizing that your debts are real and cost something all the time so that you will have to pay them. Nothing about swimming explains why this might be, though monetary debt sure does.
replies(1): >>45138888 #
2. loumf ◴[] No.45138888[source]
The analogy I am going for is the water resistance. The debt payment is the burst of momentum you get from pushing off the wall.

I think of tech debt as something you are dealing with all of the time and something inevitable.

I don't like the financial analogy because it implies that you "took out a loan" by taking a short-cut, and that you are obligated to pay it. There is definitely some of that, but mostly, I see it as good decisions that didn't age well. And also, that you may be ok with living with it.

replies(3): >>45139066 #>>45139367 #>>45139702 #
3. conartist6 ◴[] No.45139066[source]
You go right back to the monetary analogy when you need to explain that focusing on debt created value.

The thing that I think the swimming analogy doesn't capture well is that the resistance of water is fixed. The walls of the pool will be there to push off of no matter what you do. These are the intuitions you're asking people to draw on and they don't map.

replies(1): >>45139363 #
4. loumf ◴[] No.45139363{3}[source]
I struggled with this. I didn't have the guts to not use "tech debt" in the title and throughout the book. I wanted to coin a new term, but didn't find anything that worked.

There are parts of the debt analogy that (I think) really hurt getting it dealt with. I think that explaining it like that to non-engineering decision makers will make them think they understand it and then quash projects based on some kind of ROI analysis of debt payments. They'll be happy to have the debt.

replies(1): >>45139844 #
5. conartist6 ◴[] No.45139367[source]
The fungible nature of money helps explain why that is the case. One dollar bill is as good as another, something people know from handling cash. Paying down a debt is one kind of investment. Maybe it costs you $100/day to service that debt. If someone offers you a chance to invest that same money that you could have used to pay off the first debt and by investing earn divdends of $200/day, then the fact that one dollar is as good as another is what means that you should do it.

But even then you're also not (yet) getting to the heart of it: what is the value of tech debt? You still make it sounds like a damp rag dragging on you rather than an integral part of an energetic strategy. Money also gives people a clear analogy for why sometimes you want debt -- why and how it can be used as a tool.

In the swimming analogy I would say incurring a debt is like creating a wall that you can burst off of, at the cost of increasing the resistance of the water. Yeah it's a weird analogy. To be more literal, debt buys you the time you need to figure out the optimal direction and especially the critical priorities that will reward work -- will reward investment. It buys time to learn the requirements from experience, and for people to come to some community consensus as to which needs are most imminent. But only if the person managing the debt thinks of it as a tool to be used in this manner.

6. 4ndrewl ◴[] No.45139702[source]
Isn't that same resistance the thing that enables you to float in the first place though? I don't really swim so don't understand the analogy I'm afraid.

The debt analogy works because you're taking a shortcut that allows you to eg get to market sooner (Vs perhaps not at all).

replies(1): >>45140185 #
7. chrisweekly ◴[] No.45139844{4}[source]
Debt is the right metaphor. Some amount of tech debt is virtually unavoidable; just like w/ $, a low-interest student loan or mortgage might be a great investment, while using a high-interest-rate credit card, or usurious payday loans, represent catastrophe. Cutting a few corners for the sake of GTM is often the former. Forgoing proper tests, or letting PoCs shape architecture, is more like the latter.

I don't see "swimming" replacing it anytime soon -- and the energy you'd expend trying to shift the metaphor might be better spent elsewhere.

That said, "swimming in debt" still works, as a fairly common and intuitive metaphor. Break-even is treading water, profitability is flying above the waves, and accruing debt can put you in Davy Jones' locker.

8. loumf ◴[] No.45140185{3}[source]
For some debt, yes, it starts with a shortcut. I want to talk about other kinds of debt-like problems that have nothing to do with that. Where you did everything right, but the world just changed.
replies(1): >>45140961 #
9. conartist6 ◴[] No.45140961{4}[source]
I think most engineers know that doing everything right is reserved for toy problems. In engineering you're always making choices about what problems to deal with today and which to leave for tomorrow. Code is always some kind of simplification of reality: reality is just too damn complicated. The rules of the game of tech debt are the same as the rules of thermodynamics and the game of being alive: you can't win, you can't break even, and you can't even stop playing the game.