Blog Arolla

Quel rapport entre Extreme Programming et Software Craftsmanship ?

Le 24 juin 2014 avait lieu la première rencontre du nouveau Meetup XP Paris. À cette occasion j'ai eu le plaisir de présenter un Lightning talk sur le lien entre Extreme Programming et Software Craftsmanship. En voici la substance.

Pour parler de Software Craftsmanship il est essentiel de le remettre dans son contexte historique, tout comme l'agile à l'origine.

À la fin des années 90's on parlait de UML, MDA, Corba, Composants COM et EJB, et de RUP aussi. C'est dire l'obscurantisme de cette époque ! Triste période. Rational proposait la suite Clearcase Requisite Pro et Clearquest, ou comment passer son temps à ne pas coder.

L'agilité arrive et s'inscrit en porte-à-faux avec cette tendance dominante de l'époque. C'était courageux, ça a marché, ouf alors !

(Dans ma version de l'histoire) au commencement était XP, même si il existait un grand nombre de méthodes dites agiles.

XP était complet, et a attiré des développeurs brillants, qui faisaient surtout du Smalltalk (est-ce une coïncidence ?).

Mais l'histoire se gâte et Scrum s'impose. Au bureau quand je parle de "XP" on me répond "Scrum". Dommage.

Les conférences parlent de plus en plus de comment faire son tableau, de vélocité et de burndown.
Surtout on ne parle plus de code dans les conférences agiles !

Quelques années plus tard, on entre alors dans ce que Sandro appellera la "gueule de bois Agile". De son côté Uncle Bob en a marre aussi. Et Il a le sens du marketing ! Il propose alors le Software Craftsmanship avec un nouveau manifeste qu'il élabore sur le manifeste agile. Le terme de Software Craftsmanship n'est pas nouveau, mais devient alors un mouvement fort et visible.

Les mots d'ordre du Software Craftsmanship :
- Raising the bar!
- Working code is not enough
- Doing the right thing, and do the thing right!

En un mot : professionnalisme.

Il s'agit d'attirer à nouveau l'attention sur les pratiques de code et d'ingénierie : TDD, Clean Code, refactoring, design, patterns...

Il s'agit aussi d'une bannière marketing quasi vierge pour être attractive, et accessoirement supporter le nouveau business de son fils.

Dans un environnement désormais habituellement agile au sens "flow" ou "gestion de projet", le Software Craftsmanship représente alors la partie manquante pour reconstituer XP, complet avec les techniques de code.

C'est la raison pour laquelle pour moi parler de XP et Software Craftsmanship dans le contexte de 2014 c'est très similaire : il faut la totale !

Dans un contexte où les compétences techniques sont méprisées, c'est aussi la revendication d'une passion à bien faire et à s'améliorer. C'est donc un signe de reconnaissance, qui finira récupéré par des personnes et sociétés sans scrupules. C'est surtout une réaction à des excès dans l'histoire, et non une fin en soi.

Pour être exact, le Software Craftsmanship d'Uncle Bob ajoute une dimension revendicative qui n'était pas vraiment dans XP. On a gagné ainsi quelque chose en plus au passage...

Reste qu'en évoquant XP on affirme son lien à un club sélect et très bien fréquenté. Et comme XP n'a jamais été mainstream, ceux qui en parlent le font par passion, pas par récupération. Je n'ai encore jamais entendu quelqu'un prétendre connaître XP sans réel intérêt pour le sujet.

Dans l'air du temps actuel, remettre XP à l'honneur c'est aussi peut-être finalement une forme de coming out.

Et si XP était "extrême", alors il n'était finalement pas si extrême que cela; depuis on va encore plus loin, avec le Mob Programming qui radicalise le pair-programming, et Programmer Anarchy qui radicalise la notion d'équipes et de rôles. On parle toujours bien de valeurs agiles, même si on tord le cou à certaines pratiques.

 
 
 

Quelques liens pour en savoir plus:

https://fr.wikipedia.org/wiki/Software_craftsmanship

http://manifesto.softwarecraftsmanship.org/

http://www.meetup.com/fr/paris-software-craftsmanship/

http://www.amazon.com/Software-Craftsmanship-The-New-Imperative/dp/0201733862

Site Web | Plus de publications

Directeur Technique d'Arolla

2 comments for “Quel rapport entre Extreme Programming et Software Craftsmanship ?

  1. Maury Fabien
    18 février 2015 at 12 h 47 min

    J’aurais tendance à considérer Software craftmanship comme une envie, une aspiration à faire son travail correctement (avec professionnalisme), alors qu’XP effectivement est une liste de pratiques.
    Ce qui me plaît dans le software craftmanship, c’est qu’effectivement ses adeptes pratiquent XP, mais cela laisse l’ouverture à d’autres pratiques qui n’existaient pas à l’époque (et peut-être pas encore aujourd’hui !).
    J’aime douter et me remettre en question car c’est ce qui nous fait avancer, ce qui est plus simple dans un mouvement qui prône le professionnalisme, car on peut remettre en question ses pratiques sans renier le mouvement, ce qui est moins évident dans un mouvement qui prône des pratiques. En résumé ça m’évite de changer de meetup tout les 3 mois 😉