Le point commun oublié
Le développement piloté par les tests, "DRY" (Don't Repeat Yourself), les principes SOLID, l'architecture hexagonale, "YAGNI" (You aren't gonna need it), l'injection de dépendances, le refactoring...
Connaissez vous leur point commun ? Si vous évoluez dans le monde du développement logiciel, il y en a un qui est, probablement, évident : tous ces termes font partie du jargon.
Mais ils ont un autre point commun. Et j'ai parfois l'impression que dans ce monde du logiciel, il a été oublié, ou, pire, pour ceux qui y sont arrivés récemment, il n'a jamais été connu.
-
Le développement piloté par les tests, ou TDD, consiste à enchainer l'écriture de tests unitaires, l'écritude de code correspondant à ces tests et le remaniement de ce code. Il a été popularisé par Kent Beck à partir de 1994, intégré dans la méthode de développement Extreme Programming, et codifié dans Test Driven Development: By Example, toujours par Kent Beck.
-
Ne vous répétez pas / Don't Repeat Yourself, ou DRY, est un principe de programmation qui préconise d'éviter la redondance de code afin d'éviter les divergences. "Dans un système, toute connaissance doit avoir une représentation unique, non ambiguë, faisant autorité". Il a été formulé en 1999 par Andy Hunt et Dave Thomas dans The Pragmatic Programmer.
-
SOLID est un acronyme dont chaque lettre fait référence à un principe de conception logicielle. Ces principes ont des origines diverses. Leur expression actuelle a été formulée en 1996 par Robert C. Martin au travers de divers articles : Responsabilité unique - SRP, Ouvert/fermé - OCP, Substitution de Liskov - LSP, Ségrégation des interfaces - ISP, et Inversion des dépendances - DIP
-
L'architecture hexagonale est un pattern d'architecture logicielle où le noyau applicatif expose des ports afin de rester faiblement couplé à tous les mécanismes d'entrée/sortie (interface utilisateur, base de données, fichiers, réseau, etc.) Ceux-ci doivent passer par des adaptateurs pour dialoguer avec le noyau. Il a été inventé, puis formalisé en 2005, par Alistair Cockburn.
-
Vous n'en aurez pas besoin / You ain't gonna need it, ou YAGNI, est un principe de développement logiciel qui recommande de n'ajouter une fonctionnalité que lorsqu'elle est absolument nécessaire et non pas en prévision d'un hypothétique besoin futur. Il a été exprimé en 1998 par Ron Jeffries.
-
L'injection de dépendances est un pattern de programmation qui facilite le découplage entre composants logiciels. Il a été formalisé en 2004 par Martin Fowler.
-
Le remaniement/réusinage de code ou Refactoring est une pratique qui consiste à améliorer la structure d'un code sans modifier ses fonctionnalités. C'est une pratique ancienne qui a été largement popularisée par Martin Fowler en 1999 dans Refactoring: Improving the Design of Existing Code.
Alors ? Le point commun oublié ? Vous l'avez ?
Toujours pas ? Kent Beck, Andy Hunt, Dave Thomas, Robert C. Martin, Alistair Cockburn, Ron Jeffries, et Martin Fowler ont un point en commun. En février 2001, il ont tous participé à un séjour de ski dans les montagnes de l'Utah avec 10 autres personnes du monde du logiciel.
A cette occasion, ils ont rédigé un petit texte devenu célèbre sous le nom de Manifeste pour le développement agile de logiciels. Bref, ils ont inventé ce que l'on appelle aujourd'hui "Les méthodes agiles".
Tout ça pour dire que les méthodes agiles ont été inventées par des développeurs de logiciels. Il serait utile que les non-développeurs qui les adorent et les développeurs qui les détestent s'en souviennent de temps en temps.