I’ve known about “free as in beer” and “free as in speech” for a while now but only recently have I learned about “free as in puppy.” I came across the phrase while reading a Stratechery article describing various ways of thinking about regulation. The idea is that just like getting a free puppy, you get it for free but it comes with a significant long term cost.
I’m a big fan of the phrase and it highlights a very common tradeoff we make, especially in engineering. We often get carried away solving a problem but fail to consider the long term cost of maintenance and support. By the time we discover these long term costs the product is entrenched and we’re on the hook for maintaining it in its current form. It’s important to slow down and realize that nearly all software we write is in the “free as in puppy” camp. Writing the code to work is the easy part - writing it to work with no ongoing cost is the challenge.