Améliorer la qualité des développements logiciels grâce au software Craftsmanship

Par Adrien Muller et Yoan Thirion, Agile Coaches et Software Craftsmen chez Agile Partner.

Le coût d’écriture d’un logiciel ne représente finalement qu’un faible pourcentage de son coût total. En effet, un logiciel a un cycle de vie, et une fois que celui-ci a été développé, vient :

  • La maintenance corrective
  • La maintenance évolutive
  • Du monitoring / operating en production.

Ainsi, le coût de développement d’un logiciel ne représenterait que 25 à 35% de son coût total.

Pour diminuer le coût d’un logiciel, il est indispensable de se focaliser sur la réduction de sa maintenance. Pour cela, Agile Partner préconise d’investir sur l’injection continue de qualité dans les logiciels qu’elle développe. 

Injecter de la qualité grâce au « Software craftsmanship » ?

Ces dernières années, nous assistons à l’avènement de l’Agilité au sein des entreprises, ce qui permet de délivrer les bons produits aux clients en réduisant de manière considérable les boucles de feedback.

Mais qu’en est il de la qualité des livrables ?

Le Manifeste Agile ne mentionne rien à ce sujet. Avec des frameworks comme Scrum, nous nous sommes longtemps focalisés sur comment délivrer le plus de valeur possible à nos clients. Nous avons créé de nouveaux rôles dans les entreprises (Scrum Master ou encore Product Owner), nous avons amélioré notre processus de manière incrémentale…

Mais qu’en est-il de l’ingénieurie logicielle et de la qualité qu’elle est censée garantir ?

Quelque chose s’est perdu en chemin à force de focus sur les méthodes, les frameworks et les processus.

Nous avons fini par oublier qu’au final les personnes qui réalisent et délivrent les logiciels devaient être mises au centre de l’équation, tout comme la qualité doit être leur responsabilité principale.

C’est pour cette raison qu’en 2008, sous l’impulsion de Robert C. Martin, a été créé le « Manifeste pour le Software Craftsmanship ».

 

Comme expliqué dans l’article « La gamification au cœur de votre entreprise », le Software Craftsmanship, que l’on pourrait traduire en français par « artisanat logiciel », se résume en un mot : professionnalisme.

 

Si on peut considérer le développement de logiciels comme un artisanat, quelles sont les caractéristiques de ces artisans / craftsmen ?

 

 

Comme matérialisé sur l’iceberg ci-dessus, 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 ».

Cela passe notamment par :

  • La mise en place de pratiques d’ingénieurie
  • De l’apprentissage continu, afin de se tenir à jour et toujours remettre en question ses acquis
  • 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.

 

Ce professionnalisme se traduit 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.

 

 

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é.

Comment avoir des software craftsmen dans mon entreprise ? 


Il y a 2 possibilités : les faire émerger ou les recruter.

Mais alors comment favoriser leur éclosion ?

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 continu.

Si vous avez déjà ce genre de super développeurs chez vous, faites-en sorte qu’ils partagent et qu’ils communiquent leur passion et leur envie aux autres, cultivez leur héroïsme !

 

 

Le Craftsmanship passe par la culture d’entreprise.

Ce partage peut se traduire par la mise en place de sessions d’échanges telles que :

  • Book clubs
  • Brown bag lunches
  • Lightning talks
  • Des communautés de pratiques

 

Qu’en est-il du Craftsmanship sur Luxembourg ?

Chez Agile Partner, nous croyons profondément au Craftsmanship. Associé à l’Agilité, c’est ce qui nous permet de livrer de la qualité à nos clients.

Depuis toujours, nous délivrons des sessions de formation autour de l’Agilité, de Scrum ou de Kanban etc.  Il manquait toutefois une session dédiée à ceux qui produisent et qui sont au coeur de notre industrie. C’est pour cela que nous avons conçu une formation, 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. Chez Agile Partner, la volonté est de rendre fier chaque développeur du travail qu’il accomplit et qu’il soit considéré comme un vrai professionnel plutôt qu’un simple exécutant.

Nous avons conçu la formation « A Software Craftsman Journey » en tentant de répondre à une seule et simple question « Qu’est-ce que nous aurions aimé que l’on nous ait partagé lorsqu’on a commencé à développer en entreprise ? ».

C’est ce qui a séduit Pictet Technologies (PTL), avec qui nous collaborons depuis 2017 et avec qui nous partageons les mêmes valeurs, tant au niveau de l’Agilité que du Software Craftsmanship.

« Nous avons passé du temps avec les super-développeurs qui composent cette entreprise lors de cinq sessions de formation et les échanges qui en ont découlé ont été très enrichissants, tant pour eux que pour nous. Ce qui est intéressant avec PTL c’est que le niveau des développeurs est réellement très élevé. On s’est interrogés sur le « pourquoi » de ces sessions » Adrien et Yoan, Agile Coaches et Software Craftsmen chez Agile Partner.

La question a donc été posée à Vincent Eggen (Managing Director) et Ricardo Coutinho (Senior Manager) pour qui le but premier de ce programme de formation était d’aligner tout le monde sur la signification du terme développeur dans un monde agile ; et de rendre l’entreprise encore plus apprenante.

Cette réponse illustre l’état d’esprit qu’Agile Partner souhaite rencontrer lors de discussions autour de l’Agilité et du Craftsmanship: une remise en question perpétuelle de ce que l’on sait et une envie insatiable de découvrir ce que l’on ne connaît pas encore.

 

Pour aller plus loin sur le sujet

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

 

 

Pour tout complément d’information, Agile Partner reste à votre disposition : contact@agilepartner.net – (+ 352) 26 37 00 30.

*Infographies réalisées par Agile Partner