Two years ago I first asked the question:
How can [anti-fragility] be used in software and other computer systems?
The answer was (almost) right in front of me.
Kent Beck shows how to use small safe steps to write and change software.
While it is possible to keep providing more and more definitions, it is not the correct approach to building a theory. We often get the idea that a mathematical theory is built in a logical way starting from definitions and axioms. This is not the case. The definitions and axioms appear at the very end of the development of a good theory. It invariably starts with simple facts that later on are generalized into theorems, and only at the very end the formal definitions and axioms are developed. Sadly enough, many people who try to apply mathematics to programming start with axioms and then end up criticizing the real programs for not corresponding to their “beautiful” axioms. To build a theory of data structures we need to start with simple algorithms operating on data structures and only when we have looked at many specific algorithms can we come up with satisfactory theories.
Eric Ries tells in The Lean Startup how to move from an idea to a working product. You start somewhere and move in the direction that looks most promising while in the meantime testing the idea in the real world.