… TigerBeetle has a “zero technical debt” policy. We do it right the first time. This is important because the second time may not transpire, and because doing good work, that we can be proud of, builds momentum.

TIGER_STYLE.md

I’ve been going down the rabbit hole tonight on “Tiger Style”. On its face it’s a set of design principles for creating systems with very high safety and correctness requirements.

I’ve seen these sorts of guidelines before, but what’s interesting to me is the combination of runtime assertions and fuzz testing; using data created from a specific random seed. When the assert fails it can crash with a stack trace, but also with a record of the random seed used. This makes the failures perfectly reproducible.

Back to the “zero technical debt” policy:

This is the only way to make steady incremental progress, knowing that the progress we have made is indeed progress.

The idea resonates with me, it’s similar to the idea in the quality vs. cost post. Building slower lets you build faster.

But is it the only way to make steady progress? It’s a bold claim. What about the idea of shipping small MVP products and iterating in tiny chunks, never getting too ahead of your last customer interview?

Perhaps the difference is that in a GPL licensed codebase, the code is the product. Yes some companies might productise elements of the codebase, but in Open Source, the codebase is also a product. That allows this sort of focus on the internal properties of the code.

The other idea I had is that perhaps this “zero technical debt” policy only works in a “zero interest rate” world. Making steady incremental progress means something different in a world where money is free. Making progress towards safety and performance is still making progress.


There’s more in this excellent presentation about Tiger Style programming and the TigerBeetle database it comes from. They make a compelling case for creating a database specifically for financial transactions, and the “correct-ness first” development approach fits perfectly.