Tests unitaires, clean code TDD pour Test Driven Development, BDD pour Behavior-Driven Development, DDD pour Domain-Driven Design… Voici des termes de plus en plus courants dans le monde du développement.
Tests unitaires, clean code , TDD pour Test Driven Development, BDD pour Behavior-Driven Development, DDD pour Domain-Driven Design… Voici des termes de plus en plus courants dans le monde du développement. Mais les développeurs capables de mettre en pratique ces approches sont encore peu nombreux. Julien Vitte, coach Software Craftsmanship, nous explique comment le coaching craft permet de monter en compétences ses équipes de développeurs pour qu’ils deviennent de parfaits « dev-crafts ».
Tests unitaires, clean code , TDD pour Test Driven Development, BDD pour Behavior-Driven Development, DDD pour Domain-Driven Design… Voici des termes de plus en plus courants dans le monde du développement. Mais les développeurs capables de mettre en pratique ces approches sont encore peu nombreux. Julien Vitte, coach Software Craftsmanship, nous explique comment le coaching craft permet de monter en compétences ses équipes de développeurs pour qu’ils deviennent de parfaits « dev-crafts ».
Pourquoi avoir recours au craft coaching ?
Dans le cadre d’une transformation agile, il faut s’assurer que la démarche est complète et qu’elle se prolonge jusque dans le code. Car il ne s’agit pas uniquement d’une transformation organisationnelle : les pratiques mises en place pour le développement doivent également répondre aux promesses de l’agilité. Le craft coaching permet d’arriver à cela, il se place selon moi un cran au-dessus du coaching technique agile. Quand la technique s’arrête à délivrer les bonnes pratiques pour coder, la méthode craft pousse la démarche jusqu’à l’amélioration continue. Elle permet de remettre en question sa façon de travailler au quotidien, de « faire grandir les gens ». Il faut amener les équipes à se poser les bonnes questions et évoluer de façon autonome. L’entraide et le transfert de compétences, qui se trouvent au centre de cette démarche, deviennent alors des automatismes. Le craft coaching dispose donc d’un volet « culturel » que ne possède pas le coaching technique. Ce n’est pourtant pas le plus évident à appréhender pour le client, qui regarde essentiellement le volet opérationnel et pratique. Il faut faire évoluer les façons de penser, surtout dans les grandes structures, où le poids de l’existant est très important.Pour en savoir plus sur notre parcours de formation dédié au Software Craftsmanship !
Est-ce facile de mettre en place un programme de craft coaching ?
C’est la volonté de faire monter en compétences ses collègues ou ses équipes qui est moteur pour le craft coaching. Pourtant il n’y a jamais de besoin bien défini de la part du client pour cette partie. Le travail d’acculturation est donc très important. Car pour que le craft coaching fonctionne, il faut une véritable « envie d’y aller » de la part du client et que les équipes adhèrent au concept. Cette partie est souvent la plus laborieuse. En effet, les équipes n’ont pas l’impression qu’elles ont des problèmes de méthodologie à traiter dans leur quotidien. Elles doivent faire le deuil de l’existant et comprendre qu’il est possible de faire autrement, ce qui peut prendre du temps. La présence d’un bon sponsor côté client est donc essentielle. Il va assurer un discours uniforme sur la démarche à suivre et ne pas hésiter à répéter les choses. Les équipes auront ainsi l’impression que l’initiative est soutenue, ce qui facilite forcément l’adhésion. Il faut ensuite trouver l’élément déclencheur qui va permettre à la confiance de s’instaurer.Justement comment lever les freins à la mise en place du craft coaching ?
La méthode du pair programming par exemple est très efficace pour débuter une démarche craftsmanship. Mais il faut bien démontrer au client qu’il ne s’agit pas de payer deux personnes pour faire le même travail. Il s’agit de favoriser la co-construction, le transfert de connaissances, et de généraliser plus rapidement les approches et la connaissance du métier. De manière plus générale, les équipes qui se retrouvent embarquées dans différentes transformations ont souvent la sensation qu’elles vont encore avoir de nouvelles choses à faire. Pour leur montrer qu’il ne s’agit pas de contraintes supplémentaires, il faut tout de suite passer par la pratique. Résoudre un problème sur lequel une équipe est bloquée depuis longtemps est une « méthode par l’exemple » qui fonctionne plutôt bien. Il faut juste trouver la bonne proposition au bon moment.Concrètement, comment mettre en œuvre cette méthode par l’exemple ?
Trouver des facilitations est une bonne démarche pour prouver l’utilité des pratiques. Par exemple lorsque l’objectif du craft coaching est de mettre en place du TDD, il faut avancer par étapes progressives. Dans un premier temps il faut améliorer l’existant avant même de parler de TDD. Cela passe par le réalignement des équipes pour que tout le monde soit d’accord sur ce qu’est un bon test, mettre en place les bonnes pratiques de tests, définir les niveaux de test à apporter et la complémentarité entre les niveaux, entre autres. Ce qui va forcément faire gagner du temps aux équipes en matière de maintenance. Dans un second temps nous proposons de mieux maitriser l’environnement de développement pour gagner du temps sur le développement même du code. Et tout ce temps ainsi gagné va être utilisé pour faire de l’amélioration continue. Ce n’est ni plus ni moins que du troc : je te fais gagner du temps sur ton quotidien, mais en contrepartie tu me donnes de ton temps. C’est beaucoup plus efficace que de commencer en imposant à l’équipe de bloquer du temps toutes les semaines pour le craft coaching.Il est également intéressant d’alterner entre des ateliers d’apprentissage, de présentation ou de découverte, et des ateliers de map-programming. Car ces derniers se feront directement sur le code de production des équipes. Ce qui permet de rapidement passer de la théorie à la pratique, même si ce passage n’est pas toujours facile. Mais c’est essentiel : coder avec les équipes est une partie fondamentale, car certaines problématiques spécifiques au client ne se retrouvent pas dans les katas de code.
L’entraide et le transfert de compétences, qui se trouvent au centre de cette démarche, deviennent alors des automatismes.
Vous souhaitez développer la méthodologie craftsmanship dans votre organisation ?
à lire aussi…