Software Antifragility

To roughly sum it up: robust software resists to failures while antifragile software extracts the intrinsic value of errors… But what does it mean exactly? Many things in life are antifragile, such as the human body. When stressed at the right level, such as a muscle or a bone would become stronger. So can a software system be qualified as antifragile? Certainly there are some tools, platforms, architectural styles, methodologies that can help create software with antifragile characteristics. But first we have to remember that antifragile is a systemic concept so it applies to delivery processes, all kinds of tooling used in whole delivery life-cycle, maintenance & operations and at last but not least – software-based services’ role in value stream. Some examples of practices that can help to build an antifragile system:
– Chaos engineering forces human feedback to the injected randomness and makes the system antifragile.
– Microservices combined with appropriate organisational and team structure enables antifragility.
– DevOps is a means for organizing teams into similar structures. You need both in order to benefit from them and gain from disorder.
– Continuous deployment pipeline is a tool that allows teams to react to stress faster, introduce or retract change faster and generally use the stress as the driver.
– Iterative development with open and honest retrospective rituals is alos at some point antifragile.
Once you put an appropriate organizational structure, the right tools and culture in place, then you can start gaining from change… and explore antifragility.

Leave a Reply

Your email address will not be published. Required fields are marked *