Software Craftsmanship : Le Guide Complet

software craftsmanship article

Le software craftsmanship s’applique au développement de logiciels. Il met l’accent sur les compétences des développeurs en matière de codage. Cet « artisanat du logiciel » est une sorte de solution aux problèmes d’externalisation et de préoccupations financières. La pratique met en avant l’artisanat présent en matière de développement de logiciel.

Autrement dit, outre le fait d’avoir un logiciel fonctionnel, il doit être bien conçu et avoir un haut niveau de qualité. Cela, quitte à ce que le craftsman fasse de nombreux tests techniques.

Que vous soyez développeur ou responsable des systèmes d’information d’une entreprise, cette organisation, complétée par une stratégie DevOps opérationnelle, peut grandement vous aider. Découvrez, dans cet article, ce qu’est ce mouvement exactement, d’où nous vient cette culture et quelle formation suivre afin de se former à la pratique.

C’est quoi le Software Craftsmanship ?

Les origines

La méthode craftsmanship est un mouvement qui tend à professionnaliser le métier des développeurs (craftsman) informatique avec des méthodes de travail reconnues. C’est une approche de développement de logiciels qui met en avant les compétences des développeurs en termes de codage.

Il a vu le jour en 2008 par le biais de la cinquième édition du livre le Manifeste Agile (qui explique la méthodologie Scrum, notamment), qui regroupe les valeurs de l’agilité :

  • privilégier les individus et leurs interactions plutôt que les outils et processus ;
  • travailler avec des logiciels fonctionnels dans des locaux équipés plutôt que de la documentation ;
  • collaborer avec les clients plutôt que de se baser sur le contrat ;
  • s’adapter au changement plutôt que de suivre un plan strict.

Les concepts

Ce mouvement met en place un concept bien particulier : il ne suffit pas pour un progiciel d’être fonctionnel, le produit doit être bien conçu et avoir haut niveau de qualité. Il est donc important de garantir la fiabilité des différentes applications. Une évaluation des anciennes pratiques présentes au sein d’une entreprise a été faite et elles ont été revues.

En effet, les développeurs en informatique ne sont pas que de simples informaticiens qui fabriquent des produits en respectant des règles en matière de coût, de délai et de qualité au sein d’une organisation. Parce qu’ils ont suivi une formation appropriée, ils veulent être de véritables partenaires. L’important ici est de concevoir divers logiciels en respectant des indicateurs de qualité, tout en réalisant plusieurs tests techniques tout au long du processus. Il faut constamment apporter de la valeur au produit.

Complémentaire à l’agilité, la pratique remet donc en question d’anciennes méthodes de développement issues de l’entreprise. On met plutôt en exergue la fiabilité et la facilité de maintenance, grâce aux compétences et au travail de craftsmen performants. Ces derniers sont uniques, d’où l’emploi du terme « artisanat ». Une autre grande idée du programme est de créer une communauté de professionnels, une équipe soudée. Ces derniers ainsi réunis renforcent la reconnaissance envers la profession.

La culture autour du software craftsmanship – source : ITnation.lu

Le manifeste des “artisans du logiciel”

Cette culture tire ses grands principes du livre du manifeste des « artisans du logiciel ». Ce dernier est sorti en 2009, après le livre du manifeste Agile qui développe notamment la méthode Scrum. Les méthodes Agiles sont des modes de gestion des projets informatiques. Elles privilégient le dialogue entre tous les acteurs : les clients, les utilisateurs, les entreprises, les développeurs, etc.

La méthode propose au développeur informatique (craftsman), plutôt que de suivre un plan strict, de faire preuve de souplesse lors de la réalisation et l’organisation du projet et de l’exécution de son métier. Avec Agile, il est possible de modifier les plans en cours de route, afin d’accélérer le développement du produit et sa livraison tout en travaillant dans des locaux équipés. Le but est simple : il faut rompre avec les pratiques traditionnelles, trop rigides et exigeantes. Il faut donner toute sa place au relationnel, à la communication avec l’équipe et dans les processus de développement. En un mot, faire preuve d’agilité sur les projets menés.

N’étant pas suffisamment précis en ce qui concerne les particularités du mouvement du software de façon générale, le livre du manifeste « artisans du logiciel » est né afin de combler ces manques.

Les principes du manifeste Software Craftsmanship – source : ITnation.lu

Ce livre résume les grandes lignes de ce mouvement. Il précise, en effet, qu’en tant que développeur (craftsman) informatique, vous élevez les compétences en matière de développement de logiciels professionnels. Parallèlement, il détaille l’importance de créer des outils craft opérationnels, pratiques et bien conçus afin d’être parfaitement équipés.

Il explique que savoir s’adapter au changement est une véritable valeur ajoutée. Enfin, il développe le fait qu’il est important de réunir les individus et de créer une communauté de professionnels. Bien sûr, la collaboration entre les clients et les entreprises reste à privilégier, tout comme les partenariats productifs. Cette technique, complétée par une stratégie DevOps peut véritablement vous donner la possibilité de créer des produits particulièrement qualificatifs.

Pourquoi la qualité du code est importante

Outre les outils crafts, parmi les bonnes pratiques à mettre en place dans cette culture, il y a l’importance du clean coding pour que le développeur (craftsman) informatique puisse construire son produit. C’est une manière d’améliorer de façon qualitative le codage. Le but est de créer un code lisible, dont la mise en production relève un nombre faible de bugs.

Pour faire du clean programming, il est possible de réaliser des tests techniques ou de faire l’évaluation du programme. Il est recommandé d’utiliser la TDD (Test Driven Development) et BDD (Behavior Driven Development) dès que possible.

Ces modes de programming Agiles sont depuis longtemps reconnues comme étant fiables pour édifier de bons produits. La TDD, notamment, est une technique qui permet de réduire considérablement la régression future. Le Test Driven Development (TDD) permet aux professionnels de mieux écrire les différents codes des applications.

La qualité du code est importante : toute l’équipe peut alors optimiser sa productivité en diminuant largement le risque d’erreur. Parallèlement, il faut penser à gérer l’efficacité des applications produites en les rendant adaptables au changement.

Il ne faut pas omettre de corriger les failles éventuelles de code qui pourraient, à terme, bloquer une adaptation fluide. Finalement, c’est aussi une question de culture et d’état d’esprit de l’équipe : on prend davantage de plaisir à travailler avec un code bien conçu que l’inverse.

Software craftsmanship vs Agile : Quelles différences ?

Ce software est à la base même du manifeste Agile. Ce dernier a été écrit en 2001 dans le but de déterminer ce qu’est, ou non, une méthode Agile. Elle repose sur 4 valeurs fondamentales qui découlent de 12 principes sous-jacents qu’il est possible d’appliquer en entreprise.

Le craftsmanship part de ces 4 grandes valeurs afin d’en compléter certains aspects. Le but étant de renforcer l’excellence technique déjà très présente avec Agile. Ces valeurs sont :

  • mettre en avant les professionnels et leurs interactions plutôt que les outils et les processus ;
  • utiliser des outils craft opérationnels plutôt que de la documentation et travailler dans des bureaux équipés ;
  • collaborer avec les clients plutôt que de se concentrer sur le contrat ;
  • s’adapter au changement plutôt que de suivre un plan strict et réaliser des tests techniques afin de livrer un produit totalement conforme.

Les deux projets reposent sur des valeurs légèrement différentes. Dans les grandes idées, il faut faire preuve d’agilité et injecter de la plus-value dans tous les projets menés. Cela permet de livrer de bons produits aux entreprises, grâce à des frameworks comme Scrum, tout en réduisant considérablement les échanges.

Cela est également possible grâce à cette nouvelle organisation et ce management qui inclut un Scrum Master et un product Owner au sein des projets. Accompagné d’une stratégie DevOps, la qualité de la production est encore plus forte. En un mot, en plus de l’agilité, il faut faire preuve d’un grand professionnalisme.

software craftsmanship illustration

Software craftsmanship vs Software Engineering : Quelles différences ?

Engineering et craftsmanship sont deux principes différents. À titre de comparaison, on peut faire ressortir ces deux grands principes :

  • le premier met en avant le bon codage avec des spécificités. Il utilise des composants standards connus et s’appuie sur des processus qui guident le travail des développeurs ;
  • le second lui, favorise la qualité du code en se basant sur les compétences et pratiques du développeur qui conçoit le logiciel. Ce dernier use de composants spécifiques personnalisés afin de réaliser la tâche qui lui incombe. Parallèlement, il développe et affine son travail en suivant les retours de son client.

Comment se former au Software Craftsmanship ?

Le plus simple pour mieux apprivoiser le Software Craftsmanship est de suivre une formation avant de pouvoir l’appliquer en entreprise. Elle s’adresse notamment aux développeurs Java avec un bon niveau.

Les prérequis

Ils doivent avoir, au préalable, une bonne connaissance du langage et des API fondamentales. Lors de cette formation, les apprenants ont l’occasion de découvrir les différentes méthodes et approches qui permettent de concevoir et construire à base de codage des maintenables.

Ces méthodes reposent notamment sur les principes SOLID, de Clean Code, du développement TDD et d’Extreme Programming. Vous serez confronté aux problèmes de gestion de bases anciennes de code et ferez de nombreux tests techniques sur les produits que vous serez amené à fabriquer.

Les débouchés

Sachez qu’il est possible d’occuper le métier de coach dans ce domaine, et de gérer le management d’une équipe au sein d’entreprises. Selon votre sensibilité, et en fonction de votre évaluation et de la formation suivie, vous pouvez choisir de devenir coach craft.

Le coach est présent quotidiennement dans ses locaux équipées et auprès des équipes dont il gère le management. Avec son statut d’expert, il est à la fois le mentor et la personne chargée du dialogue. Entre management et évaluation des équipes, le coach offre une véritable montée en compétence aux développeurs.

Conclusion sur le Software Craftsmanship

Finalement, l’artisanat du logiciel est une culture digitale. Il offre une vision nouvelle du métier de développeur, et des méthodes novatrices qui mettent en avant ses compétences et son savoir-faire. De telles valeurs autour de cette profession est primordiale pour les entreprises. Associé à une bonne stratégie DevOps, il est possible de réaliser des logiciels qualitatifs, économiques, opérationnels et bien construits grâce à des outils craft performants !

Crédit photo : Agile Partner

5 Shares:
Ne Manquez Pas