Le Software Craftsmanship est une approche du développement logiciel qui met l’accent sur les compétences, les pratiques et la responsabilité des développeurs. Il se propose comme une alternative à l’industrie du logiciel, qui privilégie souvent la quantité, la rapidité et le coût au détriment de la qualité, de la fiabilité et de la maintenabilité des logiciels. Le Software Craftsmanship s’inspire des principes de l’agilité, mais va plus loin en valorisant le côté artisanal du développement logiciel, c’est-à-dire le soin, la précision et la fierté apportés au code.
Dans cet article, nous allons voir les origines et les concepts du Software Craftsmanship, le manifeste qui le définit, l’importance de la qualité du code, les différences avec l’agilité et le génie logiciel, et les moyens de se former à cette approche. Bonne lecture !
Sommaire :
Le Software Craftsmanship : origines et concepts
Le Software Craftsmanship est un mouvement qui est né à la fin des années 2000, en réaction aux limites et aux dérives de l’industrie du logiciel. Pour mettre en place les pratiques de Software Craftsmanship, il faut s’inspirer de plusieurs sources, notamment :
- Le livre The Pragmatic Programmer
- L’essai What Is Software Design
- Le livre Software Craftsmanship
- Le manifeste agile
Le Software Craftsmanship se base sur ces sources pour définir sa vision, sa mission et ses valeurs, qui sont exprimées dans le manifeste des artisans du logiciel, publié en 2009. Ce manifeste affirme qu’en tant qu’artisan, nous devons :
- élever le niveau de professionnalisme de notre métier.
- produire du logiciel qui apporte de la valeur à nos clients et aux utilisateurs.
- nous engager dans une pratique continue et délibérée, afin d’améliorer nos compétences et d’apprendre de nouvelles technologies.
- faire partie d’une communauté de professionnels, qui partagent leurs connaissances, leurs expériences et leurs feedbacks.
Le Software Craftsmanship repose donc sur quatre piliers : le professionnalisme, la valeur, la pratique et la communauté. Il vise à promouvoir une culture de l’excellence, de la passion et du respect dans le développement logiciel.
VOIR AUSSI : Top 6 des compétences indispensables de devenir développeur web
Le manifeste des “artisans du logiciel”
Le manifeste des artisans du logiciel est le document qui définit le Software Craftsmanship. Il a été rédigé en 2009 par un groupe de développeurs qui se sont réunis à Libertyville, dans l’Illinois, pour discuter de l’avenir de leur métier. Il se présente sous la forme de deux parties : une déclaration de valeurs et une déclaration de principes.
Le manifeste des artisans du logiciel est donc un engagement à produire du logiciel de qualité, à apporter de la valeur aux clients et aux utilisateurs, à s’améliorer continuellement et à contribuer à l’essor de la profession.
Importance de la qualité du code
Le Software Craftsmanship accorde une importance primordiale à la qualité du code. Le code est le produit final du développement logiciel, celui qui sera utilisé, maintenu, modifié et étendu par les clients, les utilisateurs et les développeurs. Il est donc essentiel que le code soit bien conçu, c’est-à-dire qu’il soit :
- Lisible
- Testable
- Évolutif
La qualité du code est donc un facteur clé de succès pour le développement logiciel, car elle permet de :
- Réduire les coûts
- Augmenter la satisfaction
- Stimuler la créativité
La qualité du code est donc un objectif et une responsabilité pour les artisans du logiciel, qui cherchent à produire du logiciel qui marche et qui est bien conçu.
VOIR AUSSI : Freelance informatique : les meilleures plateformes pour trouver une mission
Différence entre le Software Craftsmanship et Agile
Le Software Craftsmanship et l’agilité sont deux approches du développement logiciel qui partagent des points communs, mais qui se distinguent aussi par certains aspects. Voici les principales différences entre le Software Craftsmanship et l’agilité :
- Le Software Craftsmanship est centré sur le code, tandis que l’agilité est centrée sur le client.
- Le Software Craftsmanship est plus exigeant, tandis que l’agilité est plus flexible.
- Le Software Craftsmanship est plus durable, tandis que l’agilité est plus rapide.
Différence entre le Software Craftsmanship et le Software Engineering
Le Software Craftsmanship et le Software Engineering sont deux termes qui désignent le développement logiciel, mais qui ont des connotations différentes. Le Software Craftsmanship se réfère à l’aspect artisanal du développement logiciel, tandis que le Software Engineering se réfère à l’aspect scientifique du développement logiciel. Voici les principales différences entre le Software Craftsmanship et le Software Engineering :
- Le Software Craftsmanship est basé sur l’expérience, tandis que le Software Engineering est basé sur la théorie.
- Le Software Craftsmanship est plus personnalisé, tandis que le Software Engineering est plus standardisé.
- Le Software Craftsmanship est plus adaptatif, tandis que le Software Engineering est plus prédictif.
Le Software Craftsmanship et le Software Engineering ne sont pas opposés, mais complémentaires.
Se former au Software Craftsmanship : les prérequis et les débouchés
Pour se former au Software Craftsmanship, il faut avoir une certaine expérience du développement logiciel, ainsi qu’une volonté de progresser et de se perfectionner. Il faut également être prêt à adopter les valeurs, les principes et les pratiques du Software Craftsmanship, qui impliquent un engagement personnel et professionnel. Voici quelques prérequis et débouchés pour se former au Software Craftsmanship :
- Les prérequis : pour se former au Software Craftsmanship, il faut maîtriser au moins un langage de programmation, ainsi que les bases de l’agilité, comme le Scrum ou le Kanban. Il faut aussi connaître les principes du Software Craftsmanship, comme le SOLID, le DRY ou le YAGNI, ainsi que les techniques du Software Craftsmanship, comme le TDD, le refactoring, le pair programming ou le code review. Il faut enfin avoir un esprit critique, curieux et ouvert, qui permet de remettre en question ses habitudes, de chercher de nouvelles solutions et de s’inspirer des autres.
- Les débouchés : se former au Software Craftsmanship permet de devenir un développeur plus compétent, plus confiant et plus épanoui. Il permet de produire du code de meilleure qualité, plus fiable, plus maintenable et plus évolutif. Il permet aussi de travailler dans des équipes plus performantes, plus collaboratives et plus respectueuses. Il permet enfin de se faire reconnaître comme un professionnel, qui a du talent, de la passion et de la responsabilité.
Pour conclure, se former au Software Craftsmanship n’est pas une fin en soi, mais un moyen de s’améliorer continuellement et de prendre du plaisir à coder. Il existe de nombreuses ressources pour se former au Software Craftsmanship, comme des livres, des blogs, des podcasts, des vidéos, des formations, des conférences, des ateliers, des meetups, ou des communautés. Le Software Craftsmanship est un mouvement ouvert, qui accueille tous les développeurs qui partagent sa vision, sa mission et ses valeurs.