ESI UCLM
AccueilOpinionLogiciel anti-fragile

Logiciel anti-fragile

Logiciel antifragile David Vallejo. Professeur ESI UCLM

Logiciel anti-fragile

Par David Vallejo Fernández (Professeur d'université).

Taleb raconte, dans son livre Antifragile, qui les choses sont classées en trois colonnes : fragiles, robustes et antifragiles. Les choses fragiles aiment la tranquillité d'esprit et sont faciles à casser, comme un verre en cristal fin lors d'une célébration du Nouvel An. Les choses robustes, ou résilientes, résistent aux chocs lorsque des turbulences surviennent et maintiennent leur statut, comme la petite entreprise qui se diversifie et maintient une large clientèle. Les choses anti-fragiles vont plus loin que les choses robustes, et bénéficient même de l'incertitude, du risque ou de la volatilité, tout comme mère nature. Taleb propose un exemple très visuel, puisant dans la mythologie grecque, pour comprendre la différence entre ces trois qualités. Damoclès est un personnage fragile, car ce n'est qu'une question de temps avant que le crin de cheval tenant l'épée au-dessus de sa tête se brise et mette fin à sa vie. L'oiseau Phénix est une créature robuste, car il est capable de renaître de ses cendres à sa mort. L'Hydre, être mythologique en forme de serpent à plusieurs têtes, a bénéficié de situations négatives, car à chaque fois qu'une tête était coupée, deux nouvelles naissaient.

intéressant réfléchir à cette classification dans le contexte des logiciels. Le développement logiciel est un processus complexe, où le nombre d'interdépendances existantes est élevé, parfois même difficile à détecter, et l'apparition d'une erreur ou d'un bogue peut entraîner des réponses non linéaires. Malheureusement, nous, les humains, avons du mal à comprendre la non-linéarité, car nous avons tendance à penser en termes linéaires. Si la manifestation d'un bogue dans un système informatique génère une diminution de 10% de sa fonctionnalité, l'apparition de deux bogues, liés ou non, pourrait générer un effet bien supérieur, ou bien inférieur, au double de l'effet initial (c'est-à-dire disons, le double de 10 %).

El logiciel fragile, comme Damoclès, vit dans l'attente d'un échec qui apparaîtra inévitablement. Les logiciels fragiles sont l'ennemi du temps. De la même manière que la dette publique d'un pays le fragilise lorsqu'il s'agit de négocier avec ses partenaires, les intérêts tirés d'un logiciel à dette technique entraîneront, à terme, des coûts de maintenance plus élevés. L'entropie du logiciel augmentera au fur et à mesure que sa maintenance deviendra plus complexe, impactant une conception initiale qui devra éventuellement être modifiée. 

El logiciel robuste, d'autre part, est conçu en considérant qu'il doit faire face au passage du temps et qu'en même temps, il doit répondre de manière adéquate à la présence d'erreurs. Les tests et le débogage de code sont les techniques incontournables pour augmenter la robustesse des logiciels. Dijkstra a déclaré que si le débogage est le processus de suppression des bogues du logiciel, la programmation doit être le processus de leur introduction. Le code sans bogue n'existe pas. Nous ne pouvons pas prédire quand ils se manifesteront avec des conséquences indésirables. Parfois, robuste n'est pas assez robuste, et il est très difficile, voire impossible, d'estimer la probabilité et l'impact associés à une éventuelle défaillance logicielle. La gestion des risques offre un faux sentiment de sécurité.


Compte tenu de la nature de l'antifragilité, la création de logiciels antifragiles bénéficieraient de l'introduction de facteurs de stress ou d'éléments aléatoires. La philosophie de libérer tôt, libérer souvent, popularisé par Eric S. Raymond dans son essai La cathédrale et le bazar et inspiré par le modèle de développement du noyau Linux, correspond à cette idée. Pas tout cathédrales logicielles doit être construit de manière parfaitement orchestrée. Le bazar est dynamique, animé, en constante évolution et plein de marchands avec des approches différentes et des objectifs individuels. Avoir des utilisateurs dès le début augmente la progression d'un développement façonné progressivement par une utilisation aléatoire du logiciel, améliorant la qualité du résultat final. Cette philosophie, qui élimine le risque de créer des logiciels que personne n'utilisera finalement, est l'un des principes de la Open source. Logiciel open source il évolue grâce à l'effort collaboratif de ses programmeurs, et il résiste à l'épreuve du temps tant qu'il continue d'apporter une réelle valeur à ses utilisateurs.

G. Moreau : Hercule et l'hydre de Lerne (1876)
Partager avec:
Évaluez cet article