Principles of Antifragile Software Martin Monperrus University of Lille & Inria, France
[email protected] January 27, 2017 Abstract reliability. The notion of “antifragility” comes from the There are many software engineering concepts book by Nassim Nicholas Taleb simply entitled and techniques related to software errors. But “Antifragile” [14]. Antifragility is a property of is this enough? Have we already completely ex- systems, whether natural or artificial: a system plored the software engineering noosphere with is antifragile if it thrives and improves when fac- respect to errors and reliability? In this paper, ing errors. Taleb has a broad definition of “error”: I discuss an novel concept, called “software an- it can be volatility (e.g. for financial systems), tifragility”, that is unconventional and has the attacks and shocks (e.g. for immune systems), capacity to improve the way we engineer errors death (e.g. for human systems), etc. Yet, Taleb’s and dependability in a disruptive manner. This essay is not at all about engineering, and it re- paper first discusses the foundations of software mains to translate the power and breadth of his antifragilty, from classical fault tolerance to the vision into a set of sound engineering principles. most recent advances on automatic software re- This paper provides a first step in this direction pair and fault injection in production. This pa- and discusses the relations between traditional per then explores the relation between the an- software engineering concepts and antifragility. tifragility of the development process and the First, I relate software antifragility to classi- antifragility of the resulting software product.