webleads-tracker

Date

26 août 2022

Catégorie

Recrutement tech

Software Craftsmanship, quesaco ?

Software Craftsmanship, quesaco ?

Le « Software Craftsmanship » c’est à dire littéralement « l’artisanat du logiciel » est bien plus qu’un nouveau buzzword issu du monde de la tech. Il s’agit d’un état d’esprit, un mouvement en plein essor prônant le développement de logiciels de qualité.

Dans une société où le numérique est omniprésent, il répond à la nécessité et à la volonté grandissante qu’ont désormais les entreprises et leurs développeurs d’offrir des produits digitaux soignés à même de satisfaire leurs utilisateurs et les clients. Cela est devenu une question d’éthique, mais aussi de compétitivité.

Quelle est l’origine du Software Craftsmanship ? Quels sont ses concepts ? Comment une entreprise peut-elle intégrer dans ses équipes un Software Craftsman ?

Quelle est l’origine du Software Craftsmanship ?

Software craftsmanship : origine et objectif

S’il puise ses racines déjà dans les années 1990, le mouvement du Software Cratfsmanship voit le jour en 2009 avec la parution d’un « Manifeste pour l’artisanat du logiciel ». Celui-ci explique aux développeurs les diverses techniques à suivre ainsi que les valeurs nécessaires au développement de logiciels de qualité. Son objectif est de diffuser les bonnes pratiques et de mettre ainsi fin à une trop longue période où la baisse des coûts et la rapidité de sortie des produits se faisaient au détriment de leur qualité.
Pratiquer le Software Craftsmanship représente un investissement de départ qui en évite bien d’autres. En effet, la non-qualité a un coût humain et financier. Une application remplie de bugs est compliquée et chère à faire évoluer, et le client est insatisfait. De plus, un développeur travaillant dans un cadre démotivant risque de fuir le navire.

Son inspiration : la méthode Agile

Le mouvement du Software Cratfsmanship s’inspire et complète la méthode Agile qui est un peu laconique sur la thématique du développement en lui-même. La méthode Agile qui est axée sur les process de management est devenue depuis quelques années la référence dans les entreprises du numérique. Elle prône la gestion des projets informatiques de manière souple et collaborative et privilégie le dialogue entre toutes les parties prenantes. Son objectif est de concevoir des produits de qualité répondant finement aux exigences des utilisateurs et des clients. 

Quels sont les concepts clés du Software Craftsmanship ?

Basé sur les principes de la méthode Agile, le manifeste du Software Craftsmanship s’adresse tout particulièrement aux développeurs. Les “software craftsmen” ont pour but d’élever la qualité de leur code et d’aider leurs pairs à y parvenir. Pour cela, ils suivent 4 concepts : 

1. « Pas seulement des logiciels opérationnels, mais aussi des logiciels bien conçus. »

Le code doit être de qualité, simple, lisible, intelligible, susceptible d’évoluer et d’être retravaillé aisément. Le produit livré est fiable et sa maintenance facile. Son code ne doit pas être réécrit une fois tous les 4-5 ans mais mis à jour à fur et à mesure.
Le développeur a pour cela accès à une boîte à outils très riche. Il peut utiliser des méthodologie comme le TDD, le « Test Driven Development » ou développement piloté par les tests, qui consiste à écrire le code en s’appuyant sur des tests réguliers. Il peut également adopter le BDD, le « Behavior Driven Development » ou Programmation orientée par le comportement. Le DDD ou Domain Driven Design encourage à découper l’architecture du logiciel en plusieurs domaines. Le DRY ou Don’t Repeat Yourself promeut l’automatisation et l’optimisation de ce qui a déjà été fait au sein du code sur un même système. 

 2. « Pas seulement l’adaptation aux changements, mais aussi l’ajout constant de la valeur. »

Chaque ligne de code doit créer de la valeur. Elle ne doit pas en coûter.

3. « Pas seulement les individus et leurs interactions, mais aussi une communauté de professionnels. »

Le mouvement incite les développeurs à travailler de manière collaborative, en binôme, à faire du peer-programming et à partager leurs expériences et implémenter leurs bonnes pratiques dans leurs équipes.

 4. « Pas seulement la collaboration avec les clients, mais aussi des partenariats productifs. »

Il est fondamental d’aider les clients à comprendre ce que le développeur fait pour eux dans le but qu’ils en saisissent la valeur ajoutée.

Quelles sont les caractéristiques d’un software craftsman ?

1. Un passionné avant tout

Un software craftsman est un amoureux du code. Il utilise, crée et développe de nouveaux outils tous les jours et s’inspire notamment des travaux communautaires. Il est curieux et veut faire avancer les choses. 

2. L’adoption de la culture de l’artisanat logiciel

Lecture de livres, de blogs, utilisation de nouveaux outils, de nouveaux langages, rencontres d’autres développeurs, participation à des conférences, des meetups, etc. Le développeur software craftsman pratique un métier en évolution permanente et doit chercher à apprendre en continu.

3. La transmission de ses valeurs et des bonnes pratiques

Afin d’implémenter la culture de la qualité au sein de son équipe, le développeur passionné va s’appuyer sur différentes pratiques. Le software craftsman motive le travail collectif en évitant que chaque développeur travaille de son côté. Il peut favoriser le travail en binôme, mettre en place des dojos. L’organisation de revues de code est un autre outil dans sa besace pour assurer une propriété collective du code.

Comment avoir des software craftsmen dans son équipe ?

1. Favoriser leur éclosion dans l’entreprise

Pour commencer, les développeurs doivent être considérés comme une richesse, un levier stratégique dans l’entreprise et non comme de simples exécutants. Il est important de leur faire confiance et de les motiver. L’environnement de travail doit aussi être propice au partage des connaissances et à l’apprentissage. En effet, si un ou des software craftsmen sont déjà présents au sein de la structure, ils doivent pouvoir communiquer leur passion, donner envie à leurs collaborateurs. Pour cela, de nombreux moyens existent comme par exemple l’organisation de sessions d’échanges telles que des Book clubs, des Lightning talks, des Brown bag lunches, etc.

Pour transformer les équipes en douceur, il est également possible de faire intervenir un coach Craft qui va les amener à progresser pas à pas et en toute confiance. Il est idéalement présent au quotidien et non ponctuellement afin d’être immergé en leur sein et de les accompagner en continu. En tant qu’expert, il peut aussi aider le management à mieux comprendre l’intérêt de la montée en compétence de ses équipes informatiques. 

2. Les recruter

Il va de soi qu’une autre solution pour développer le software craftsmanship au sein de votre entreprise est de recruter des développeurs qui baignent d’ores et déjà dans cette culture, et capables d’en être de véritables ambassadeurs en interne.

Software Craftsmanship : ce qu’il faut retenir

Le mouvement  du Software Craftsmanship propose une vision du métier de développeur qui promeut une culture de la qualité, mais aussi de l’apprentissage permanent. Il fait évoluer la profession, favorise l’apprentissage de nouveaux outils et la production de logiciels offrant une vraie valeur ajoutée. Mais pour que cette culture infuse l’entreprise, devienne le standard et non plus l’exception, les dirigeants doivent en comprendre la nécessité et mettre en place des conditions favorables à son développement.

Date

26 août 2022

Tags
Rédigé par
Thomas Motti
Thomas Motti

Partager