Cet article est le second de la série « les Grand·e·s ». Après avoir présenté les Grands Esprits, je trouvé important de les replacer dans les courants de pensée aux quelles ielles ont participés ou qu'ielles ont crées.
Il y a bien sûr d'autres approches au développement logiciel, mais c'est de ces trois là que je me sens le plus proche et avec lesquelles je partage le plus de valeurs.
Sans tout respecter à la lettre, je retrouve un grand nombre de ces pratiques dans mon quotidien de développeur. Mais cela fera sûrement l'objet d'une autre série d'articles.
Ceci étant dit…
Agile¶
Le Manifeste Agile a été écrit en 2001, suite à la rencontre de 17 spécialistes de développement logiciel, parmi lesquel·le·s : Kent Beck, Ward Cunningham, Martin Fowler et Robert C. Martin.
De leurs discussions ont émergé 4 valeurs communes qui peuvent se résumer ainsi :
- les individus et leurs interactions sont plus importants que les processus et les outils ;
- un logiciel fonctionnel est plus important qu'une documentation exhaustive ;
- la collaboration avec les clients est plus important que la négociation contractuelle ;
- l'adaptation au changement est plus important que l'exécution un plan.
Cela ne signifie pas que la seconde partie de chaque phrase n'est pas important, mais qu'il est moins important que la première.
De ces 4 valeurs découlent 12 principes qui sont présentés sur la page Wikipédia du Manifeste Agile.
Extreme Programming¶
L'extreme programming (XP) a été inventé par Kent Beck, Ward Cunningham et Ron Jeffries. Le terme a été officialisé en 1999 avec le livre « Extreme Programming Explained » de Kent Beck.
XP est une méthode « agile » qui porte 5 valeurs :
- simplicité : faire uniquement ce qui a été demandé ;
- communication : tout le monde fait partie de l'équipe et communique en face à face quotidiennement ;
- rétroaction : présenter le logiciel tôt et souvent, écouter attentivement et faire les changements requis ;
- respect : tout le mondes contribue ne serait-ce que par son enthousiasme ; et
- courage : dire la vérité à propos des avancées et des estimations.
Ces 5 valeurs sont déclinées en principes qui sont présentés sur la page Wikipédia de l'Extreme Programming. Parmi ceux ci, on peut citer l'écriture des tests unitaires en premiers, la programmation par paire et l'intégration continue.
Software Craftsmanship¶
L'artisanat logiciel est une autre approche du développement logiciel qui met en avant le développeur comme professionnel. Cette communauté a elle aussi son Manifeste.
Les 4 valeurs mises en avant sont :
- des logiciels opérationnels, mais aussi des logiciels bien conçus ;
- l'adaptation aux changements, mais aussi l'ajout constant de valeur ;
- les individus et leurs interactions, mais aussi une communauté professionnelle ; et
- la collaboration avec les clients, mais aussi des partenariats productifs.
Il est précisé que « en recherchant les éléments de gauche, nous avons trouvé que les éléments de droite sont indispensables. »
Contrairement aux deux autres approches, l'artisanat logiciel est plus un état d'esprit qu'un ensemble de principes techniques. C'est d'ailleurs en ce sens qu'il est intéressant.
Les autres¶
Il y a bien sûr d'autres approches au développement logiciel. Mais, pour moi, elles sont plus des méthodologies de gestion de projet que des pratiques de développement.
J'ai pu évaluer et/ou travailler avec Scrum, Kanban et Lean. J'en ai adopté certaines pratiques, mais je n'ai jamais réussi à appliquer une de ces méthode dans son entièreté.
Le principal reproche que je leur fais et de se soucier plus des outils et du processus que du logiciel. Mais je vous encourage tout de même à jeter un coup d'œil !
Mises à jour :
- 15/06/2022 : Ajout de la section « les autres ».