Aller au contenu

Craftsmanship

Passer de l’ingénierie à l’artisanat logiciel·le

06 Avr 2021

par

Eric FERROT

nouveau scrum guide

Tout d’abord un petit questionnaire pour vous aider à vous rendre compte si vous êtes concerné par la qualité logicielle. 

 

Une ou plusieurs de ces problématiques vous parlent-elles ? 

  • La maintenance de votre produit informatique vous coûte trop cher 
  • Vos équipes IT interviennent régulièrement pour corriger des bugs en production 
  • Votre produit souffre de plus en plus régulièrement de problèmes de lenteur 
  • La mise en production d'une nouvelle version est une activité chronophage et périlleuse 
  • L'ajout d'une nouvelle fonctionnalité représente un effort de plus en plus conséquent 
  • Vos utilisateurs ne sont pas satisfaits et se plaignent de la qualité de vos applications 
  • Vos développeurs ne se sentent pas impliqués dans le produit qu'ils réalisent 
  • Il ne faudrait pas que Jean tombe malade car il n'y a que lui qui connait ce module de l'application 
  • Votre produit utilise des technologies vieillissantes et vous avez du mal à le mettre à jour 
  • Les tests de vos applications sont majoritairement faits de façon manuelle et vous prennent beaucoup de temps 
  • Il manque une envie de collectivement devenir meilleur techniquement au sein de vos équipes 

 

Si vous avez répondu oui à au moins une de ces questions alors il pourrait être utile de travailler sur votre excellence logicielle. Comment ? En mettant en place une approche de type Software Craftsmanship ! 

Le Software Craftsmanship, qu’est-ce que c’est ? 

Le mouvement Software Craftsmanship, ou « Artisanat Logiciel » en français, est né d’un constat : Même si les approches agiles s’imposent de plus en plus et permettent de livrer plus rapidement des produits répondant mieux aux attentes des clients, une pièce du puzzle semblent encore manquer : la qualité logicielle 

En effet, lors de la mise en place de frameworks agiles tel que Scruml’accent est très souvent mis sur le process, sur la nouvelle façon de travailler. Pour cela de nouveaux rôles apparaissent (Scrum MasterProduct Owner), de nouvelles règles, de nouveaux meetings Tout s’organise pour livrer le plus rapidement possible un produit correspondant le mieux possible aux attentes. Et de ce point de vue, l’objectif est souvent atteint. 

Cependant, en oubliant de considérer dès le départ la qualité technique du produit qui est développé, nombreuses sont les organisations qui en payent ensuite le prix fort en termes de maintenance corrective et évolutive. 

Pour éviter de se retrouver dans cette situation, l’approche Software Craftsmanship propose de responsabiliser et impliquer les développeurs dans une démarche d’excellence technique. De cette façon, le dispositif est enfin complété : 

  • Faire les bonnes choses : responsabilité du Product Owner 
  • Faire les choses rapidement : responsabilité du Scrum Master 
  • Faire les choses bien : responsabilité des membres de l’équipe de développement, les Software Craftsmen 
MicrosoftTeams-image

Concrètement, comment faire ? 

Eh bien, il suffit de transformer vos développeurs en software craftmen ! :)  

 

Comme matérialisé sur cet iceberg, les craftsmen sont des personnes passionnées par ce qu'elles font, ce qu'elles créent, et qui accordent une très haute importance à leur mission première : développer des logiciels biens conçus / "well-crafted". 

MicrosoftTeams-image (1)

Cela passe notamment par : 

  • L’utilisation de pratiques, pour la plupart, issues de la méthode eXtreme Programming (XP), telles que Test Driven Development, Pair Programming, Refactoring, Intégration Continue, etc. qui permettent de créer des logiciels de haute qualité et participent à nourrir la fierté des équipes qui les développent. 
  • De l'apprentissage continu, afin de se tenir à jour et toujours remettre en question ses acquis, 
  • Une culture d’entraide avec par exemple du mentoring, afin de partager ses connaissances et compétences avec ses pairs et faire naitre d'autres craftsmen, 
  • Du professionnalisme, en travaillant tant d'un point de vue produit que d'un point de vue technique, 

 

Pour résumé, un craftsman est un "super développeur" qui code pour construire un produit fonctionnel, maintenable et évolutif. Ce sont ces craftsmen qui vont réellement permettre de délivrer des logiciels de haute qualité. 

 

Pour favoriser leur éclosion, il est primordial de faire confiance à ses développeurs et de les motiver. Il faut cultiver un environnement dans lequel les personnes vont pouvoir partager et ainsi initier une culture de l'apprentissage et du partage continuLe Software Craftsmanship passe par un changement de culture d’entreprise. Nous pouvons vous aider dans ce changement à travers notre programme d’accompagnement Software Craftsmanship et ainsi permettre à vos développeurs de donner leurs pleins potentiels. 

Nous avons aussi conçu une formation "Agile Dev Practices", qui mélange théorie et pratiques, qui vise à instiller l'état d'esprit et les pratiques décrites dans cet article chez nos clients. Cette formation donc est le point de départ idéal pour initier la transformation de vos super développeurs ! 

Pour aller plus loin sur le sujet

MicrosoftTeams-image (2)

Nous conseillons à tous les développeurs de lire "The Software craftsman" de Sandro Mancuso, LE best-seller sur le sujet. 

L'agilité et le craft sont au cœur de notre société depuis sa création. Nous avons donc à travers le temps créé de nombreux outils (serious games, ressources) nous permettant de supporter notre accompagnement : 

formationTYpage

Vous avez un projet de développement logiciel ? Vous avez besoin d'aide pour améliorer votre agilité ?