Partie 1 – Bienvenue dans l’Art du Logicie

By: Malek Rezgui
Posted: February 18, 2025

Imaginez un développeur face à son clavier : plutôt qu’un simple exécutant, il se comporte en véritable artisan, attentif à la qualité et au détail de chaque ligne de code. C’est l’essence du software craftsmanship : allier l’exigence d’une ingénierie rigoureuse à la recherche d’excellence dans la pratique du développement. Cette approche va au-delà de la simple exécution de tâches ; elle encourage chacun à s’investir dans la qualité et la pérennité des logiciels qu’il livre, tout en favorisant l’apprentissage continu et le partage de connaissances.

1. L’Essence du Craftsmanship

Le software craftsmanship s’inscrit dans la lignée de l’Agile, mais met un accent particulier sur la qualité technique et le professionnalisme des développeurs. En 2009, le Manifeste du Software Craftsmanship est né en complément au Manifeste Agile, proposant quatre axes majeurs :

  1. Des logiciels opérationnels et bien conçus – Ne pas se limiter à « ça marche », mais viser un code robuste, modulaire, maintenable.
  2. Un ajout constant de valeur – Livrer de nouvelles fonctionnalités ou améliorations de façon régulière.
  3. Une communauté de développeurs valorisée – Encourager le partage d’expériences, le mentorat et l’entraide.
  4. Des partenariats durables – Favoriser la confiance et la collaboration entre développeurs, entreprises et clients.

Cette philosophie vise à renforcer la responsabilité de l’artisan logiciel, qui s’engage à fournir un produit capable de résister à l’épreuve du temps et de s’adapter aux évolutions. Loin d’être élitiste, l’idéologie prône l’apprentissage collectif et l’amélioration continue.

2. L’Artisan et la Science

Richard Feynman, physicien renommé, déclarait :

“Le premier principe, c’est de ne pas vous induire en erreur – et vous êtes la personne la plus facile à tromper.”

En ingénierie logicielle, cela invite à cultiver une rigueur scientifique : tester des hypothèses, vérifier sa logique par des preuves concrètes et documenter ses trouvailles. Cette méthode repose sur quatre étapes :

  1. Caractérisation : Identifier clairement le problème ou le besoin, en recueillant des données (retours utilisateurs, journaux d’événements, etc.).
  2. Hypothèse : Proposer une solution ou une interprétation plausible.
  3. Déduction : Prévoir ce qui devrait se produire si l’hypothèse est exacte.
  4. Expérience : Mettre en place une expérimentation ou un prototype pour valider (ou invalider) l’hypothèse, puis ajuster.

Cette démarche maintient un esprit d’amélioration continue : on ne se repose pas sur les acquis, mais on les remet régulièrement en question pour renforcer la qualité et la durabilité du code.

3. Mesurer l’Excellence

Le software craftsmanship ne se résume pas à des considérations esthétiques. Il vise concrètement à améliorer la fiabilité et la maintenabilité du logiciel. L’ouvrage Accelerate met en lumière deux grands axes de mesure :

L’idée est d’allier vitesse et conception soignée, afin de minimiser les bugs et de maintenir un rythme de livraison soutenu.

4. Itération et Incrément

Le développement logiciel se fait souvent en territoire inconnu. Pour limiter les risques, le software craftsmanship recommande :

Cette approche offre un feedback rapide : on débusque rapidement les erreurs, on s’ajuste en cours de route et on évite d’investir massivement dans une mauvaise direction.

5. Feedback et Pipeline Automatisé

Pour boucler la boucle, l’Intégration Continue (CI) et la Continuous Delivery (CD) s’imposent comme des outils techniques indispensables :

Avec un pipeline bien configuré, tout problème est détecté tôt, et la confiance dans la base de code augmente.

6. Conclusion

Le software craftsmanship s’articule autour d’un mariage entre la quête de qualité, l’humilité scientifique et l’efficacité des processus. Il prône un code pérenne, évolutif et exempt de dettes techniques inutiles. Les développeurs se perçoivent comme des artisans, soucieux de perfectionner leur œuvre tout en collaborant dans un climat de respect mutuel et de partage.

Dans la prochaine partie, nous verrons comment mettre en place des tests automatisés et une architecture propice à cette démarche de qualité, afin de transformer ces principes en pratiques concrètes au quotidien.