Le Software Craftsmanship représente la meilleure démarche de développement pour répondre aux enjeux de qualité
La transformation digitale et agile des entreprises peut provoquer des difficultés techniques et méthodologiques au sein des équipes IT et métiers. Mais ces équipes n’ont pas toujours l’impression qu’elles rencontrent des problèmes de méthodologie à traiter dans leur quotidien. Elles doivent pourtant faire le deuil de l’existant et comprendre qu’il est possible de travailler autrement.
Une démarche Software Craftsmanship, aussi nommée artisanat du logiciel, permet de mieux maîtriser les contraintes techniques et de qualité de cette transformation. Extension du manifeste Agile, elle a pour but de professionnaliser le métier du développement au travers du concept d’artisanat, en mettant en avant un savoir-faire particulier et un haut niveau de qualité. Le mouvement Software Craftsmanship connait aujourd’hui un fort engouement, dans le monde de l’IT. Il répond en effet aux dérives de l’industrie du logiciel, dont la tendance est à l’externalisation et aux préoccupations financières plutôt qu’à la responsabilisation des développeurs.
Une démarche Crafts qui doit favoriser l’amélioration continue
Mais le Software Craftsmanship n’est pas un logiciel à mettre en place. Nous pensons que c’est une démarche qui requiert un savoir-être et l’acceptation de valeurs, une certaine façon de travailler pour que la méthode fonctionne. Car « il ne suffit pas qu’un logiciel soit fonctionnel, il faut également qu’il soit bien conçu ». Notre idée est de garantir la fiabilité et la maintenabilité des applications : d’où l’importance de disposer de professionnels aptes à concevoir des logiciels dans le respect d’indicateurs de qualité logicielle.
Nous pensons que la méthode Software Craftsmanship ne s’arrête pas à vous délivrer les bons principes et pratiques pour coder, nous poussons la démarche jusqu’à l’amélioration continue afin de faire évoluer votre culture du développement logiciel. C’est ainsi que vous pouvez remettre en question votre façon de travailler au quotidien et de grandir. Il faut amener vos équipes et vos développeurs à se poser les bonnes questions et évoluer de façon autonome.
À nos yeux, un savoir-être particulier et le partage de certaines valeurs sont de véritables prérequis à la réussite de la mise en place de cette démarche exigeante. Les 4 valeurs annoncées par le manifeste craftsmanship sont les suivantes :
Pas seulement des logiciels opérationnels, mais aussi des logiciels bien conçus.
Valeurs
Pas seulement l’adaptation aux changements, mais aussi l’ajout constant de valeur.
Communauté
Pas seulement les individus et leurs interactions, mais aussi une communauté professionnelle.
Productivité
Pas seulement la collaboration avec les clients, mais aussi des partenariats productifs.
Nos conseils pour bien débuter votre démarche Software Craftsmanship
Pour bien débuter une démarche craftsmanship nous vous conseillons de commencer par évangéliser et aligner votre direction sur l’importance du sujet afin de lever les points de blocage. Les ateliers pédagogiques et les retours d’expérience sont là pour ça. La présence d’un bon sponsor est donc essentielle. Vos équipes auront ainsi l’impression que l’initiative est soutenue, ce qui facilite forcément l’adhésion. La présentation de la démarche Crafts et la formation permettent d’acculturer les équipes, de leur proposer des retours d’expérience et d’obtenir leur soutien dans la suite de la démarche.
Le Software Craftsmanship n’est donc pas uniquement une transformation organisationnelle : les pratiques mises en place pour le développement devront également répondre aux promesses de l’agilité.
Mais pour créer de la valeur, il est nécessaire de se départir du schéma classique de développement où le développeur – voire le « codeur » – est cantonné dans un rôle de simple exécutant. Les artisans développeurs partagent une culture et un « esprit Craft ». C’est à cette condition que la mise en œuvre du software craftsmanship pourra être pleinement efficiente, et apporter un ROI rapide et facilement mesurable.
Il ne suffit pas qu’un logiciel soit fonctionnel, il faut qu’il soit bien conçu.
Nos offres pour réussir votre transition
vers le Software Craftsmanship
Pour initier concrètement cette approche Software Craftsmanship, nous mettons en place un coaching adressé aux équipes techniques, dans le prolongement de l’agilité. Nous pouvons également mettre en place un accompagnement au changement pour faire adhérer à cette démarche qualité.
L’accompagnement opérationnel est également un volet essentiel pour réussir à implanter cette démarche dans votre entreprise. Notre Coach Craft acculture et accompagne la transformation de votre delivery autour de la démarche Crafts, le Lead Craft impulse et anime la démarche Crafts au sein des équipes et le Dev Craft amène des bonnes pratiques de qualité pour développer dans le respect des exigences de cette démarche.
Pour accompagner au quotidien l’évolution des pratiques des équipes de développement, nous proposons également plusieurs ateliers que nous adaptons en fonction des contextes et des User Stories à travailler par l’équipe. En plus des thèmes clés comme le pair programming et mob programming, le TDD, le Clean Code, nous animons aussi des sessions sur l’Event Storming, L’Example Mapping, le Crappy Dev, Le Contract Testing et l’Arrange-Act-Assert.
1. Initier, acculturer et former
- Vérification des prérequis Agile
- Évangélisation de la direction IT
- Définition des modalités d’accompagnement adaptées
- Formation TDD (Test Driven Development)
- Formation Clean Code
2. Coacher et transformer votre Delivery
Nous coachons vos équipes et mettons en place un développement accompagné :
- Maintenir la productivité : garantir aux équipes une vélocité constante sur leurs sprints tout en absorbant les concepts Crafts
- Industrialiser, capitaliser et unifier sur tous les projets, les pratiques de coaching délivrées par les équipes
Nos atouts :
- Des kits pour organiser des ateliers Agile / DevOps
- Un guide du coaching Craft
- Des katas de code
3. Accompagner et animer votre service informatique
Notre équipe de Leads Crafts et notre communauté Inside, accompagnent en continue vos équipes jusqu’à ce qu’elles soient autonomes :
- Mesurer l’évolution de la maturité de l’équipe
- Animer des ateliers d’appropriation (TDD, Clean Code, Pair Programming…)
- Réduire le temps de coaching pour laisser l’équipe autonome
- Maintenir des points de passage réguliers afin de s’assurer que les fondamentaux sont encrés
Nous pouvons également mettre à disposition nos Insiders développeurs Craft au sein de votre entreprise.
Vous souhaitez échanger avec nos experts autour de la démarche software craftsmanship, c’est par ici !
Publications développement digital
Notre sélection d'articles sur le thème.
Qu’est-ce que l’artisanat logiciel ou Software Craftsmanship ?
Le Software Craftsmanship est un mouvement qui incarne une quête d’excellence dans le développement logiciel, privilégiant la qualité, la fiabilité des applications et une approche collaborative. Ce mouvement cultive l’art du code « propre » et maintenable, en mettant l’accent sur le partage des connaissances et l’entraide.
Ce mouvement est apparu à la suite de la publication en 2021 de l’ouvrage de Pete McBreen, « Software Craftsmanship ». Il s’est ensuite accéléré en 2008, en résonance avec les valeurs de l’Agilité, et en particulier la 5ème édition du livre Le Manifeste Agile.
Quelle est la différence entre le software engineering et le Software Craftsmanship ?
Chez Inside, nous percevons le software engineering comme une approche ayant pour objectif de créer des logiciels robustes et performants, en s’appuyant sur des processus établis et des composants standards pour structurer le développement. Le Software Craftsmanship, quant à lui, privilégie la qualité du code en valorisant une culture d’amélioration et de transmission du savoir ainsi que les compétences du développeur et l’interaction continue.
Quels sont les autres concepts au cœur de ces enjeux de qualité du code ?
Voici quelques thèmes et convictions que nous partageons chez Inside pour approfondir ce sujet :
- Le professionnalisme : #eXtreme Programming (XP)
- Délivrer régulièrement de la valeur : #Agilité
- Programmation en binôme : #Pair programming
- Amélioration continue # Refactoring & clean code
- Intégrer, tester, packager : #Intégration continue
- Collaborer & automatiser : #DevOps
- Test avant code : #Test driven development
- Cartographie des processus : #Event storming
- Qualité des User Stories : #Example Mapping
- Démarche de tests complexes : #Contract Testing
- Structuration des tests unitaires : #Arrange-Act-Assert