Level Up Craft : Livrez plus vite, livrez moins de bugs

Nous avons lancé notre nouvelle offre Level Up Craft en ce début d'année. Il s’agit d’une offre de coaching sur le thème du software craftsmanship. Pourquoi cette offre ? En quoi consiste-t-elle ?

Pourquoi un coaching craft ?

Dans nos métiers, on a l'habitude de voir des coaches. Dans l'immense majorité des cas, ils portent la casquette de "Coach Agile". Leur rôle est reconnu par les entreprises pour faciliter la mise en place des méthodologies agiles. En revanche, ils rencontrent souvent des obstacles dans l'optimisation du travail des équipes de développement. Or, rappelons deux choses :

  • Selon l'adage, aujourd’hui “chaque entreprise est une entreprise technologique” ;
  • Les logiciels produits et utilisés par ces entreprises, émanent de la compréhension du besoin par les développeurs et des implémentations qu’ils ont apportées.

Par conséquent, nous considérons que le développement des logiciels est un sujet essentiel à la réussite des grandes entreprises. Et, pour que ce développement soit un succès sur le long terme, nous devons y apporter le maximum de qualité et une collaboration optimale entre les experts métier et techniques.

Dans cet esprit, le software craftsmanship est ancré dans l'ADN d'Ippon Technologies. En mission, quand nous sommes immergés au sein d'une équipe de développement, nous insufflons régulièrement de nouvelles approches ou méthodes de développement : TDD, BDD, pair programming, intégration continue, etc. Un·e consultant·e Ippon expérimenté·e agit comme un mentor, et utilise son vécu pour améliorer les choses à son niveau. Cela permet parfois aux équipes de s’améliorer, que ce soit au niveau collectif ou individuel.

L'ambition de Level Up Craft est d'appliquer cette philosophie, sur un coaching d'équipe de courte durée.

La valeur ajoutée Ippon

Le coaching est proposé sur une durée de 10 jours. Nous intervenons au sein de l’équipe de développement. Même si l’essentiel du temps est passé sur l’accompagnement de l’équipe, nous distinguons trois phases :

1- Évaluer

Nous passons une journée avec l’équipe de développement en combinant interviews et observation du quotidien. Cette phase est primordiale, elle permet de comprendre les difficultés, d’analyser les problèmes et d'imaginer les réponses les plus pertinentes possibles.

2- Construire

À la suite de cette phase d’observation, nous construisons notre proposition d’accompagnement, qui sera axée sur une ou deux thématiques principales. Par exemple : le testing de l’application, la collaboration entre le métier et les développeurs, la qualité du code, etc. Nous co-construisons cette proposition avec l’équipe : celle-ci doit être volontaire et adhérer à nos conclusions sans quoi le coaching peut se solder par un échec.

3- Transmettre

Nous passons le reste du temps avec l’équipe à travailler sur les besoins réels de l’application. L’apport de nouvelles approches ou méthodes est mis en pratique sur le développement de fonctionnalités nécessaires en production. Sur de nouvelles approches, comme le TDD par exemple, nous utilisons un mélange de présentation théorique et kata afin de s’approprier la méthodologie.

Ainsi, sur un temps très court, nous insufflons de nouvelles pratiques dans l’équipe de développement. La mise en application sur du “vrai” code permet de comprendre plus facilement les bénéfices et de pérenniser les acquis.

Notre approche : le coaching, ce n'est pas de la formation

Bah oui, vous vous dites peut-être que des formations existent déjà sur les thématiques craft, et que c’est suffisant. Néanmoins, même si la formation reste un outil très utile, on constate souvent un décalage entre ce qu’on apprend en formation et la réalité des projets. De multiples raisons peuvent expliquer cela :

  • Il est parfois difficile de mettre en pratique ce qu’on a appris via des cas d’école.
  • Il faut du courage pour installer une nouvelle habitude dans une équipe.
  • On pense parfois que ça ne peut pas marcher parce que “chez nous, c’est différent”.
  • Il faut de la motivation pour essayer une nouvelle méthode de travail et accepter de prendre le temps d’apprendre.

Si on parle de pair programming par exemple : beaucoup de développeurs connaissent le concept, peu nombreux sont ceux qui l’utilisent. C’est en pratiquant, notamment avec quelqu’un étant habitué, qu’on en saisit réellement les apports.

Ensuite, le coaching, de par sa durée et sa mise en œuvre sur des cas concrets, permet d’apporter un regard neuf dans une équipe ancrée dans ses habitudes. Nous allons pouvoir bousculer un peu certaines croyances. Nous pouvons donner beaucoup de petites astuces qui vont améliorer le confort et la productivité : configuration de l’IDE, raccourcis clavier, etc. Les coaches, en étant à la fois accompagnateurs, formateurs et contributeurs, sont en position idéale pour optimiser le travail de l’équipe.

Un premier retour d'expérience

Nous avons rencontré une équipe qui développe des applications critiques pour un de nos clients. Après avoir longuement discuté avec eux, nous leur avons proposé un accompagnement sur deux axes majeurs : le BDD (behavior-driven development) et le TDD. Pourquoi ces thèmes ? Le BDD va leur permettre de mieux collaborer avec les experts métier, de poser un vocabulaire commun, de développer sur la base d’exemples concrets. Le TDD, afin d’augmenter la qualité du code produit, et de raccourcir les boucles de feedback lors des développements.
Nous sommes au milieu du programme, et si l’exercice est difficile, il est extrêmement plaisant de constater déjà que les premiers apprentissages portent leurs fruits.