Logo Xingxin on Bug

Building Antifragile System

January 18, 2025
3 min read

antifragile-concept-collage.webp

In Nassim Taleb’s Antifragile, he introduces the idea that some systems don’t just survive chaos - they thrive on it.

Cite

Antifragile: Things That Gain from Disorder
The antifragile gains from prediction errors, in the long run. If you follow this idea to its conclusion, then many things that gain from randomness should be dominating the world today - and things that are hurt by it should be gone.
^774230

This idea struck a chord with me. As a software engineer, I deal with bugs🐞 every day. Aren’t these bugs the “prediction errors” Taleb talks about? And isn’t the process of fixing them what makes software antifragile?

The reminds me of an antipattern that the node.js warn against. In traditional desktop development, we have 3 environments:

  • Development
  • Staging
  • Production

But in node.js, the best practice is to avoid setting up distinct environments. Why? Because separating staging and production creates a hidden fragility. This gap between environments is where bugs hide, where assumptions fail, and where the unexpected thrives. In other words, you’re insulating your system from the very randomness it needs to encounter to become robust.

What if, instead of shielding production from randomness, we embraced it? What if we treated production as the ultimate testing ground?

Well. I think it depends. The antifragility comes from exposing a system to small, frequent shocks. But the key is that these shocks must be small and curable. The desktop application can’t evolve as quickly as server-based application due to the nature of deployment. In a nutshell, choosing a desktop application already implies you are choosing fragility.

This is where Graham’s approach to server-based software comes in. At Viaweb, they didn’t wait for a grand, polished release. They deployed multiple times a day, treating each release as a small, incremental experiment.

Cite

Hackers & Painters: Big Ideas from the Computer Age
For a big company, they were exceptional. But they were still only about a tenth as productive as a small startup. No big company can do much better than that.

The way we work - they way we code - mirrors how our business evolves. Perhaps, if you one day you want to grow your own business, the “X product” is your only option? An X that can quickly be exposed or deployed to small, frequent shocks. This is where a startup thrives because they can make fast decisions, experiment frequently, and learn from small shocks.

Your software learns, adapts, and evolves. Your business learns, adapts, and evolves.

It’s not just robust; it’s antifragile.