Software Craftsman : une culture du développement

Métiers de la R&D

Publié le 21/01/2021

On pourrait traduire « Software Craftsmanship » par « l’artisanat du logiciel ». Il s’agit d’un mouvement datant de plus d’une vingtaine d’années, cherchant à produire le code le plus qualitatif possible.

Atteindre une qualité supérieure pour son produit n’est pas un nouvel enjeu, mais cela est certainement devenu plus stratégique dans un monde où le logiciel est omniprésent. À l’ère digitale, il faut être toujours plus rapide pour répondre aux besoins du client et garder une longueur d’avance sur ses concurrents. La barre est de plus en plus haute.

Précisément, le Software Craftsman est ce développeur qui cherche à « élever la barre », qui est d’ailleurs le sous-titre du manifeste en ligne qu’il est symboliquement amené à signer (raising the bar).

Qui sont les partisans du Software Craftmanship ? Quelle culture du développement représente-t-il ?

1 – Quelles sont les valeurs du Software Craftsmanship ?

Le Craftmanship repose sur un certain état d’esprit, sur une culture voire une vision de ce qui constitue « l’art d’écrire du code informatique ». Il se définit par le désir de bien faire son métier et d’y apporter un soin tout particulier.

L’objectif est donc d’avoir un logiciel qui répond le mieux possible aux attentes de l’utilisateur en premier lieu, puis à celles du client.

Il s’agit d’un point essentiel du manifeste : le client est certes celui qui paie le produit, mais n’est pas nécessairement celui qui l’utilisera. Le travail doit donc être fait de manière optimale, précise et qualitative afin que l’utilisateur final soit le plus satisfait possible.

Entendons-nous bien sur la signification du terme « qualité d’un produit » : il s’agit d’un logiciel bien conçu, performant, sans bug, facile à maintenir et apportant une réelle valeur ajoutée mais qui se situe sur une ligne de crête entre :

  • D’une part, une recherche de perfection absolue qui amène à la construction de véritables « cathédrales » logicielles
  • D’autre part, un applicatif livré rapidement, répondant certes au cahier des charges mais pouvant s’effondrer à chaque instant

Le Software Craftsman cherchera à construire un système qui répond à tous les besoins tout en s’appuyant sur une base solide et équilibrée.

Cette manière de travailler est largement justifiée économiquement : une application bourrée de failles évoluera de manière toujours plus coûteuse, et le client, ayant perdu sa confiance dans l’équipe de développement, pourrait ne plus vouloir payer.

En outre, ne négligeons pas le coût humain d’un code mal réalisé : travailler dans un tel environnement peut être décourageant pour les développeurs, et les meilleurs d’entre eux pourraient partir pour une autre entreprise.

Le Software Craftsman pense que la plupart des gens se sentent satisfaits d’un travail bien fait, y compris les développeurs qui aiment être fiers de leurs réalisations.

2 – Adopter et transmettre la culture du Craftsmanship

La transmission de la culture du Software Craftsman se fait par des formations sur les bonnes pratiques, notamment :

  • Le TDD ou Test Driven Development
  • Le BDD ou Behavior Driven Development
  • Les standards Clean Code
  • La conception évolutive
  • Le coaching et l’échange avec des pairs (communauté de pratique, coding dojos, etc.)

Pourtant, que chacun adopte individuellement cette culture ne suffit pas.

Peu importe combien de TDD ils conduisent ou à combien de rencontres ils participent, de nombreux développeurs se sentent seuls dans leur entreprise.

Ils peuvent ne pas partager les valeurs de certains collègues ou être ignorés par leur direction lorsqu’ils mentionnent leurs propres valeurs.

3 – La culture du Craftsmanship chez Cegid

Chez Cegid, les équipes de développement sont formées sur le prisme de la qualité.

Par exemple, un grand nombre de développeurs a assisté en 2019 à des formations sur la qualité des développements au travers de la mise en application quotidienne des bonnes pratiques (TDD, BDD, Peer/Mob programming, protection d’un code legacy, Coding Dojo).

Cegid favorise également la partage d’informations entre pairs à travers différents canaux comme la communauté de pratiques Cegid, des articles Yammer ou encore la transmission d’informations pour encourager la participation des équipes à des séances du CARA (Club Agile Rhône-Alpes).

Pour les développeurs de Cegid, la diffusion de la culture Craftmanship est dynamisée par des rencontres avec des personnes désireuses de partager leurs compétences techniques et non-techniques, et qui souhaitent apprendre de plus en plus dans notre métier en constante évolution.