Qu'est-ce qu'un artisan logiciel ?
On voit beaucoup passer d'artisans logiciels sur les réseaux sociaux, mais qu'est-ce que ça signifie exactement ?
Article publié le 18/05/2021, dernière mise à jour le 19/09/2023
Avant de continuer à lire, je vous conseille de consulter mon article "Qu'est-ce que la méthodologie Agile ?" pour mieux comprendre la suite.
Un artisan logiciel, (parfois appelé "artisan développeur" ou "Software Craftsman" en anglais) est un développeur qui applique dans son travail la philosophie décrite dans le manifeste de l'artisanat logiciel.
L'artisanat logiciel n'est pas une philosophie alternative à la conception Agile, c'est en fait une extension de cette dernière. À l'origine, le "Software Craftmanship" avait même été proposé pour devenir la 5ème règle du manifeste Agile, mais cette décision ne fût pas l'unanimité.
Ce qu'il faut retenir, c'est qu'un artisan logiciel est avant tout un développeur Agile.
Le manifeste
Le manifeste de l'artisanat logiciel reprend donc les 4 principes du manifeste Agile, tout en les faisant évoluer :
- Pas seulement des logiciels opérationnels, mais aussi des logiciels bien conçus.
- Pas seulement l'adaptation aux changements, mais aussi l'ajout constant de valeur.
- Pas seulement les individus et leurs interactions, mais aussi une communauté professionnelle.
- Pas seulement la collaboration avec les clients, mais aussi des partenariats productifs.
La première chose que l'on peut remarquer, c'est qu'au travers des mots utilisés, ce manifeste tend à porter une vision de longévité, qui transcende l'idée simple de projet et de produit pour aller s'inscrire sur le plus long terme.
Les valeurs de l'artisan logiciel
Derrière ce manifeste et cette idée générale de pérennité, se cache des valeurs sous-jacentes que partage les artisans, et qui constituent une véritable philosophie :
Parmis ces valeurs, on retrouve par exemple :
- la qualité (robustesse du logiciel)
- le professionnalisme
- le savoir-faire
- le partage d'expérience
- l'humilité (remise en question)
Pour vivre de son travail dans le respect de ces valeurs, l'artisan doit mettre en place des outils et méthodes afin de faciliter son quotidien et améliorer la qualité de son travail.
Les outils/méthodes de l'artisan logiciel
Il est important de noter que l'artisanat logiciel n'est pas un moule à l'intérieur duquel tous les adeptes utilisent les mêmes outils, ceux présentés ci-dessous sont donc des exemples.
On peut dire qu'il y a autant de manière de faire de l'artisanat logiciel qu'il n'y a d'artisans.
Pour la qualité du code, un "Craftsman" va par exemple s'appuyer sur des méthodes, patrons et paradigmes de conception afin de rendre le logiciel plus robuste ou le code plus propre.
On trouvera par exemple :
- KISS (Keep It Simple, Stupid), DRY (Don't Repeat Yourself), SOLID
- l'OOP (Object-Oriented Programming)
- le DDD (Domain-Driven Design)
- le TDD (Test-Driven Development)
- Et bien d'autres.
À noter que si le TDD n'est pas nécessairement utilisée par TOUS les artisans logiciel, les tests (unitaires, intégration, non-régression,...) ont une place très importante dans la vie du craftman.
Pour le partage de connaissance, on va pouvoir mettre en place des sessions de pair-programming ou de mob-programming par exemple, méthode de travail consistant à travailler à plusieurs sur une même machine.
Si le "pair-programming" vous intéresse, j'ai écrit un article détaillé à ce sujet que je vous invite à lire.
Mais la participation à des conférences, des ateliers, des podcasts ou même l'écriture d'un blog technique est aussi un bon moyen pour qu'un artisan puisse transmettre ses connaissances.
Concernant la gestion de projets, le pilotage en SCRUM permettra par exemple à l'artisan de se remettre en question et réfléchir (de manière collective) à des pistes d'amélioration de son travail lors de chaque fin de sprint, pendant la rétrospective.
Pour aller plus loin
Cet article reste une introduction aux principes du software craftsmanship qui est en pratique une philosophie plus complexe.
Si vous êtes intéressé par le sujet, je vous invite à lire le livre de l'un des pionniers de l'artisanat logiciel : The Clean Code par Robert C. Martin
Et sinon il existe d'excellents podcasts, comme celui de Benoit Gantaume intitulé "Artisan Développeur" dont je parle dans mon article "4 podcasts incontournables pour les développeurs en français".
Aucun commentaire pour l'instant