J’écris ce message pour répondre à l’inconnu qui a commenté mon cahier du jour

Ce que j’écris dans mon cahier du jour n’est pas vraiment à destination du public. C’est plutôt une réflexion personnelle. C’est pourquoi les messages peuvent être assez succins.

Je trouve amusant que cette personne m’ait laissé un message lui-même très (trop) court : “Je n’ai rien compris, désolé”. Rien, vraiment ? Il doit bien y avoir quelque chose, j’écris en français tout de même… enfin je m’y efforce. Mais, comment répondre à un tel message ? Qu’est ce qui se cache derrière ce rien qui n’en est pas un. Le “désolé” qui ponctue la phrase me laisse supposer un certain énervement. J’en suis moi même désolé ! :-)

En ce qui concerne mon message, je voulais dire qu’un aveugle qui construirait un château de carte pourrait s’obstiner à le construire sans se rendre compte que celui-ci est déjà en partie écroulé.

Il y a deux choses dans cette métaphore qui correspondent aux projets informatiques : - Fragilité : il est très facile de “casser” un programme par erreur. - Feedback : se rendre compte qu’un programme ne fonctionne plus n’est pas immédiat.

D’un certain point de vue, un programme informatique est comme un château de carte. Chaque ajout de fonctionnalité fait courir un risque d’effondrement supplémentaire au reste de l’application. Lorsqu’on modifie une application, le risque de régression est élevé. En particulier si cette dernière souffre d’un défaut d’intégrité conceptuelle. C’est pour cette raison que beaucoup de projets essaient de spécifier puis concevoir au maximum une application avant de la réaliser. Dans ces conditions, on pourrait vraiment se demander pourquoi les nouvelles méthodes de développement logiciel prêchent pour le cycle itératif ? La construction itérative a de nombreux avantage par rapport à ce qu’on appelle le “big design up-front”, mais elle n’est viable qu’à condition d’automatiser les tests d’acceptation fonctionnels.

Pendant que j’y suis, ajoutons aussi que l’automatisation des tests unitaires (aussi appelés tests techniques ou tests développeurs) est tout aussi indispensable.