"You ain't gonna need it" ou principe YAGNI est sans doute l'un des principes les moins bien compris des développeurs.
Rempli de bonnes intentions, nous sommes tous enclin à faire des développements informatiques supplémentaires; ces développements ne servent à rien pour l'application sur le moment mais peuvent éventuellement faciliter l'intégration de futures évolutions. De bonnes intentions certes, mais qui est à même de prédire l'avenir ? Dans 99% des cas, le futur nous donne tort ; tout ce que nous imaginons ne se produit jamais. Arrêtons donc de jouer aux astrologues du virtuel et arrêtons de nous prendre pour la "Madame Irma du bit" !
Imaginez que le plombier ne suive pas le principe YAGNI, voici un scénario possible : au bout d'une journée, votre "professionnel de la plomberie" vous annonce fièrement que le travail a été plus long que prévu ; votre lavabo est maintenant utilisable et, cerise sur le gâteau, un tuyau a été mis en place entre la canalisation et la chambre d'à côté. Surpris et énervé, vous lui demandez des explications ; il vous répond alors : "Si un jour vous échangez votre chambre avec votre salle de bain, le tuyau sera déjà en place et vous gagnerez du temps". Bilan de l'opération : vous payez 1 journée de travail au lieu d'une heure, le mur de séparation entre votre salle de bain et votre chambre a été percé et un tuyau pointe son nez dans votre chambre ! Imaginez votre tête !
Cet exemple, volontairement fantaisiste, est pourtant celui que nous proposons régulièrement à notre chef de projet. Les conséquences sont pourtant les suivantes :
- un surcoût de développement
- un surcoût dans l'écriture des tests
- un code rendu souvent plus compliqué
- des portions de code qui ne répondent à aucune spécification.
Conclusion : comme l'écrit Horace dans l'un de ces poèmes: "Carpe Diem" : Cueille le jour présent sans te soucier du lendemain.
Aucun commentaire:
Enregistrer un commentaire