Ce guide propose un parcours progressif pour passer du métier de développeur à celui de software craftsman. L'idée du Software Craftsmanship, formalisée par le Manifesto for Software Craftsmanship (2009), n'est pas un nouveau processus à appliquer mais une posture : tendre vers la maîtrise, livrer du logiciel qu'on est fier de signer, et transmettre.
Le parcours est découpé en quatre étapes, chacune se concentrant sur une dimension précise. Elles peuvent être suivies en ordre, ou piochées selon le contexte. Comptez plusieurs mois par étape pour lire, pratiquer et intégrer.
- 1. Fondamentaux du développement
- 2. Qualité du code et tests
- 3. Conception et architecture
- 4. Livraison et exploitation (DevOps)
- Communautés et événements
- Habitudes du quotidien
- Pour aller plus loin
Objectif : disposer d'un socle solide en pratiques pragmatiques, lisibilité du code et professionnalisme.
-
The Pragmatic Programmer: From Journeyman to Master — Andrew Hunt, David Thomas La référence sur les bonnes pratiques transverses : DRY, orthogonalité, programmation défensive, automatisation. La 20e édition anniversaire (2019) modernise les exemples.
-
Clean Code: A Handbook of Agile Software Craftsmanship — Robert C. Martin Heuristiques concrètes pour écrire du code lisible : nommage, fonctions courtes, commentaires utiles, gestion des erreurs.
-
The Clean Coder: A Code of Conduct for Professional Programmers — Robert C. Martin La face professionnelle du métier : engagements, estimations, refus quand c'est nécessaire, gestion du temps et de la pression.
- Exercism — exercices avec retour de mentors humains, plus de 60 langages.
- Codewars — katas ranking-based, utile pour explorer un nouveau langage rapidement.
- Tenir un journal d'apprentissage — quelques lignes par semaine sur ce que vous avez appris ; le cumul fait la différence.
- nommer, structurer et formater un fichier de manière à ne pas faire perdre de temps au prochain lecteur ;
- repérer les code smells fréquents et les corriger ;
- distinguer ce qui relève de la technique pure de ce qui relève du professionnalisme.
Objectif : développer guidé par les tests, refactorer en confiance, intervenir sur du code legacy sans le casser.
-
Growing Object-Oriented Software, Guided by Tests — Steve Freeman, Nat Pryce La référence sur le TDD outside-in et la conception orientée objet pilotée par les tests.
-
Refactoring: Improving the Design of Existing Code (2nd ed.) — Martin Fowler Catalogue de refactorings nommés, avec mécanique pas à pas. Édition 2018 en JavaScript.
-
Working Effectively with Legacy Code — Michael Feathers Comment introduire des tests sur du code qui n'en a jamais eu, technique des seams, refactorings sûrs.
- Coding Dojo — résoudre un problème à plusieurs en TDD strict.
- Katas classiques : Bowling Game, Roman Numerals, Gilded Rose, Tennis Refactoring.
- Mob/Pair programming régulier sur du code de production.
- Mesurer la couverture de tests d'un projet réel et identifier les zones aveugles.
- écrire un test avant le code de production, quel que soit le contexte ;
- refactorer une fonction de 200 lignes sans la casser ;
- ajouter une fonctionnalité à un module non testé sans le réécrire de zéro.
Objectif : structurer un système au-delà de la classe ou du module, comprendre les compromis architecturaux et les frontières de domaine.
-
Domain-Driven Design: Tackling Complexity in the Heart of Software — Eric Evans (« livre rouge ») Le fondateur du DDD : langage ubiquitaire, bounded contexts, modélisation tactique et stratégique.
-
Implementing Domain-Driven Design — Vaughn Vernon (« livre jaune ») Le pendant pratique d'Evans, avec du code et des recettes.
-
Clean Architecture: A Craftsman's Guide to Software Structure and Design — Robert C. Martin Synthèse des principes de découplage : SOLID, frontières, indépendance vis-à-vis du framework et de la base de données.
-
Designing Data-Intensive Applications — Martin Kleppmann Tout ce qu'il faut savoir sur le stockage, la cohérence, la réplication, le streaming et la résilience.
-
Building Evolutionary Architectures: Support Constant Change — Neal Ford, Rebecca Parsons, Patrick Kua Architecture conçue pour évoluer, fitness functions, tests d'architecture.
- System Design Primer — exercices de conception de systèmes à grande échelle.
- Lire l'architecture de projets open-source dans son langage de prédilection.
- Documenter les décisions structurantes via des ADR (Architecture Decision Records).
- Animer un Event Storming sur un domaine que vous connaissez.
- découper un système en bounded contexts qui correspondent au métier ;
- choisir entre monolithe modulaire et microservices avec des arguments concrets ;
- justifier vos décisions architecturales par écrit, en explicitant les compromis.
Objectif : porter la qualité jusqu'en production, livrer souvent, observer ce qui tourne.
-
The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win — Gene Kim, Kevin Behr, George Spafford Roman pédagogique qui fait comprendre les Three Ways du DevOps par l'histoire d'une équipe en crise.
-
Accelerate: The Science of Lean Software and DevOps — Nicole Forsgren, Jez Humble, Gene Kim Synthèse des recherches DORA : les quatre métriques (lead time, deployment frequency, MTTR, change failure rate) et leurs corrélations avec la performance d'entreprise.
-
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation — Jez Humble, David Farley Mécanique du deployment pipeline, infrastructure as code, gestion des bases de données.
-
Site Reliability Engineering — Google (gratuit en ligne) Disponibilité comme produit, SLI/SLO/SLA, error budgets, postmortems sans blâme.
- Construire son propre pipeline sur un side-project : commit → tests → build → déploiement automatique.
- Kubernetes Documentation — l'orchestrateur de fait pour les conteneurs.
- The Twelve-Factor App — méthodologie pour des applications portables et déployables en continu.
- Exécuter un game day : couper volontairement un service pour observer la résilience du reste.
- mettre en place un pipeline de livraison continue depuis zéro ;
- diagnostiquer un incident en production à partir de logs, métriques et traces ;
- discuter SLO, error budget et coût de l'indisponibilité avec un product manager.
Apprendre seul a ses limites. La communauté du craftsmanship est active en France et dans le monde francophone.
- Software Craftsmanship Communauté Francophone — annuaire des meet-ups francophones.
- Meet-ups : Software Crafters Paris, Lyon, Bordeaux, Nantes, Toulouse, Bruxelles, Genève, Montréal.
- Conférences :
- SoCraTes — unconference internationale, plusieurs déclinaisons (FR, BE, CH).
- NewCrafts — Paris, début juin chaque année.
- Devoxx France — généraliste, fort axe craft.
- Coding dojos d'entreprise — beaucoup d'entreprises en organisent, parfois ouvertes aux externes.
Les livres et les conférences donnent le matériel ; ce sont les habitudes qui créent la maîtrise.
- Lire du code une heure par semaine, pas le sien — un projet open-source dans son langage.
- Prendre une demi-heure après chaque tâche pour relire son propre code à froid.
- Faire de la veille ciblée : un seul flux, lu régulièrement, vaut mieux que dix abandonnés.
- Tenir un journal des décisions techniques avec leur contexte et leur résultat à six mois.
- Enseigner ce que vous venez d'apprendre — un brown bag, un article, un kata animé. La transmission consolide la compréhension.
- Manifesto for Software Craftsmanship
- Principes SOLID — Robert C. Martin
- Refactoring Guru — Design patterns et refactoring
- The Twelve-Factor App — applications modernes
- DORA — State of DevOps reports
- Chaîne YouTube de Continuous Delivery (Dave Farley)
Pour proposer une ressource, corriger une erreur ou partager un retour d'expérience, ouvrez une Pull Request ou une Issue. Toutes les contributions sont les bienvenues.
Distribué sous licence MIT.
Tansoftware - Tanguy Chénier · LinkedIn · Tan-Software · Compte personnel (derniers outils) · tansoftware.com