Une complexité envahissante

La complexité augmente dans tous les secteurs de l’activité humaine

Dans tous les secteurs industriels, on observe une difficulté croissante à faire face à la complexité grandissante des grands systèmes industriels modernes. Il suffit de penser à l’échec du premier tir de la fusée Ariane 5, au célèbre bug du Pentium 1 qui a obligé Intel à rappeler son micro-processeur vedette au niveau de l’ensemble de la planète, à l’échec désastreux du lancement de la classe A de Mercedes ou aux effondrements de grande ampleur des réseaux électriques de plus en plus récurrents dans le monde.

               
Ariane 5   Le Pentium d’Intel   Une Mercedes Classe A

 

 

La crise de la complexité en informatique

Ces problèmes sont tous particulièrement aigüs dans le secteur informatique qu’il est intéressant d’explorer plus en profondeur car on dispose de statistiques globales assez claires sur les taux de réussite des grands projets dans ce domaine.

Dans le secteur du logiciel, les travaux de Caper Jones – l’un des experts mondiaux en matière de métriques de complexité du logiciel – mettent ainsi parfaitement en évidence la corrélation existant entre la taille d’un logiciel et son taux de poubellisation. Pour les logiciels complexes (plus de 10 millions de lignes de code), on arrive d’ailleurs à un taux d’arrêt pur et simple des projets associés de plus de 60 % ! Les statistiques permettent donc de se rendre compte parfaitement que plus un logiciel est grand, plus il va être difficile de le réaliser. La taille d’un logiciel est donc une bonne mesure de sa complexité intrinsèque (même si celle-ci ne réduit bien sûr pas à ce paramètre).

Statistiques sur le respect des délais des projets d’ingénierie logicielle – Source : Caper Jones – Patterns of Software Systems Failure and Success – 1996

 

La situation est encore plus explosive en matière de projets de mise en place de systèmes d’information, i.e. des projets où l’informatique technique rencontre l’organisation de l’entreprise. L’étude Chaos du Standish group montre en effet que les ratios relatifs des taux de succès et d’échec de ces projets n’ont quasiment pas bougé au cours des 15 dernières années : 30 % de ces projets terminent en temps et en heure dans le respect de leur cahier des charges initial, 50 % aboutissent, mais en en respectant pas l’un de ces 3 critères (timing, coût, couverture fonctionnelle) et 20 % sont enfin purement et simplement arrêtés sans lendemain. Quand on regarde les statistiques pour les très grands projets (ceux avec plus de 10 M€ de budget), on constate qui plus est que les taux de succès s’effondrent totalement, seuls 1 % de ces projets réussissant à rester dans le vert.

Statistiques sur la réussite des projets de déploiement de systèmes d’information d’entreprise – Source : The Chaos Study – Standish Group – 1994/2008
 

Ces différents éléments mesurent très bien les difficultés existant face à la complexité en informatique, ces dernières étant sans doute beaucoup plus fortes dans ce domaine qu’ailleurs de part le côté extrêmement jeune de cette discipline sur le plan industriel et la nature totalement virtuelle d’une réalisation logicielle. Cela explique sans doute ces taux d’échec gigantesques, que l’on ne retrouve heureusement pas avec la même intensité dans d’autres environnements, ce qui crée cependant aussi un énorme défi spécifique pour l’approche architecturale dans ce secteur.