Il y a 9 ans -
Temps de lecture 5 minutes
Chapitre 3 du livre de Sandro Mancuso sur le Craftsmanship
Voici le résumé du chapitre 3 du livre de Sandro Mancuso sur le Software Craftsmanship. Ce chapitre porte un nom explicite : Software Craftsmanship. Il défini le terme, le replace dans son contexte historique et mentionne le manifeste.
Déjà publié :
Le software craftsmanship est une bien meilleure métaphore que le génie logiciel (NDT: software engineering). Le craftsmanship (NDT: artisanat) est à prendre au sens de l’apprentissage de techniques maîtrisées par ses pairs pour devenir un maître à son tour.
La définition de Wikipedia est trop brutale et ne décrit pas assez bien l’essence du mouvement.
Le software craftsmanship est un long voyage vers la maîtrise. C’est un état d’esprit dans lequel le développeur choisi d’être responsable de sa propre carrière, apprend constamment à se servir de nouveaux outils et techniques et s’améliore lui-même. Le software craftsmanship consiste à recentrer le développement logiciel autour des valeurs de responsabilité, de professionnalisme, de pragmatisme et de fierté.
En résumé, le software craftsmanship s’intéresse au professionnalisme dans le développement logiciel.
Au delà de la définition et parce que de nombreux développeurs n’aiment pas être catégorisés, le software craftsmanship essaie simplement de mettre un nom sur un ensemble de valeurs du développement logiciel auquel chacun est libre d’adhérer.
Le débat sur ce qu’est réellement le développement logiciel est sans fin : de l’artisanat, un commerce, une science d’ingénieur, une science ou de l’art ? Les arguments pour l’une ou l’autre de ces orientations sont souvent corrects. Quel qu’il soit, ce que le software craftsmanship apporte c’est un plus grand professionnalisme.
L’histoire de ce mouvement se caractérise en la publication de quelques livres clés :
- 1999 The Pragmatic Programmer: From Journeyman to Master – Andy Hunt et Dave Thomas
- 2001 Software Craftsmanship: The New Imperative – Peter McBreen
- 2008 Clean Code: A Handbook of Agile Software Craftsmanship – Robert C. Martin
- 2011 The Clean Coder: A Code of Conduct for Professional Programmers – Robert C. Martin
Il s’est aussi traduit par la création d’entreprises qui proposaient des formations craft.
Le Software Craftsmanship Summit a eu lieu fin 2008 afin de mieux définir ce mouvement naissant. Composés de personnalités intéressées sur le sujet, il a abouti quelques mois plus tard au manifeste du software craftsmanship.
Le mouvement est né aux États-Unis mais est également très actif dans de nombreux autres pays.
Le software craftsmanship promeut à ce point l’échange de connaissances et de techniques que 8th Light and Obtiva (maintenant Groupon) ont effectué un échange de craftsman (NDT : Craftsman Swap). Quelques développeurs ont intégré les équipes de l’autre entreprise afin de découvrir leur manière de travailler. C’est une expérience extrêmement riche pour les Hommes qui la vivent comme pour les entreprises.
De nombreuses communautés sont nées à partir de 2009. Elles sont actives et réunissent les craftsmen au sein d’une même ville ou d’un même pays.
Il y a eu de nombreux débats sur l’utilité d’un manifeste. Toutefois Doug Bradbury fit la quasi unanimité en rassemblant dans 4 règles claires l’ensemble des idées émises.
Le manifeste a très bien saisi l’idée en parlant de relever le niveau (NDT : raising the bar). Il fait également passer l’idée que les développeurs vont prendre les choses en main et être acteur du succès d’un projet.
Pas seulement un logiciel qui fonctionne, mais également un logiciel bien écrit
Un logiciel qui fonctionne est peut-être un logiciel sans test, avec un couplage fort entre le métier et la technique et des blocs de code énormes. C’est un logiciel que personne n’a envie de maintenir et faire évoluer. C’est pour cela que le software craftsmanship s’attache aux tests, à un design simple ou à une séparation claire des responsabilités.
Pas seulement répondre au changement, mais également ajouter régulièrement de la valeur
Au cours du temps, une application qui évolue et qui grossit doit être de plus en plus rentable pour son entreprise et efficace pour ses utilisateurs. Il est anormal que l’on constate globalement l’inverse dans notre industrie et que les choix d’abandon ou de ré-écriture d’une application soient si souvent pris. Le software craftsmanship dédie toute son énergie à créer de la valeur dans son logiciel par une très haute qualité.
Pas seulement des individus et des interactions, mais également une communauté de professionnels
Le software craftsmanship promeut l’apprentissage et l’ouverture pour que l’amélioration de chacun profite à tous.
Pas seulement une collaboration avec le client, mais également une partenariat productif
Un développeur qui termine toujours son travail au moment où on lui a demandé n’est pas un software craftsman. Le craftsman ne passe pas sa journée à écrire du code : il contribue à améliorer les procédures et les processus du projet.
Parfois les entreprises ne sont pas prêtes pour ce partenariat car elles n’accordent pas suffisamment d’autonomie ou de décision à l’équipe. Il est louable de vouloir changer cela mais il arrive que cela soit vain. Dans ce cas il est du devoir d’un software craftsman de changer de route ; la gestion de la carrière d’un craftsman est très importante.
Le problème du manifeste est qu’on ne peut pas être contre ses 4 points. Contrairement au manifeste agile qui demande réellement à une entreprise qui souhaite l’appliquer un changement radical de sa manière de fonctionner, celui du software craftsmanship est plus une centralisation de certaines valeurs.
La question est donc : si on ne peut pas remettre en question ce qui est exposé dans le manifeste, pourquoi constatons nous très souvent que ces principes ne soient pas respectés ?
Commentaire