rétrospective d'itération. Moment d'introspection et de prise de recul, il permet à l'équipe de sortir périodiquement du quotidien afin d'échanger autour de son mode de fonctionnement. La rétrospective a la vertu d'adresser tous les aspects du travail en équipe. Elles ont été par exemple le déclencheur d'une dizaine de revue de notre kanban sur les douze derniers mois (colonnes, limites d'encours, definitions of done...) pour tenter de résoudre des douleurs touchant aussi bien la qualité de la documentation que la prédictibilité de nos développements. Une fois les rétros ritualisées, l'équipe est capable à chaque itération d'évaluer les effets des actions initiées, capitaliser, trouver d'autres axes de progression... Bref, instaurer une véritable démarche d'amélioration continue. Tant que les rétros ne sont pas elle-mêmes embarquées par l'inertie.
Pour éviter le problème de la faillite technique, de nombreuses pratiques entrent en jeu : TDD, qui assurera entre autre un harnais de tests confortable pour les futurs développements, ou encore la revue de code systématique par un pair, qui donnera autant d'importance à la qualité d'implémentation qu'à la validité fonctionnelle. Ces pratiques évitent l'accumulation de plus de dettes mais n'en éradiquent pas nécessairement. Pour cela, nous pouvons compter sur la Boy Scout Rule de ce cher Uncle Bob Martin, discipline consistant à toujours laisser un endroit plus propre que l'état dans lequel on l'a trouvé. D'une variable renommée à un refactoring pour mieux séparer les responsabilités de deux classes, prenez garde à la portée du chantier engagé pour ne pas mettre en péril la livraison de la fonctionnalité elle-même.
Pour terminer par la documentation, sa tendance à la dispersion est un frein sérieux à sa transmission. Bien évidemment, une grande partie de la documentation est issue des phases de cadrage préliminaire qui établissent le fonctionnement global du sous-système spécifié. Mais le diable est dans les détails, et ces détails se retrouvent souvent et malheureusement dans des échanges par courriel ou téléphone, sans que l'on ait la rigueur de les répercuter finalement dans la doc. Sur cet aspect, peu de pratiques expérimentées ont trouvé grâce à nos yeux. Mais sur la question même de l'archéologie fonctionnelle, nous retiendrons le pouvoir de la messagerie instantanée. Sur un périmètre existant mal ou non documenté, demandez des précisions par Gtalk (ou autre) à l'Historien et copiez/coller les réponses dans votre outil de capitalisation. Poser une question par e-mail demande un effort rédactionnel plus important qui peut freiner l'interlocuteur, et une conversation de vive-voix s'envolera comme toute parole. Peut-être n'obtiendrez-vous pas un premier jet bien structuré, mais au moins vous aurez les informations et les mots-clés seront présents et remontés par le moteur de recherche de votre wiki.
Ces actions au fil de l'eau sont absolument essentielles à la pérennité de votre produit logiciel mais sur une longue période, ils atteindront leurs limites. Le côté obscur prendra discrètement le dessus, et nous avons constaté que l'entrée d'un nouveau protagoniste renverse rapidement la tendance. Les bienfaits de la rotation d'équipe compensent largement les risques liés à son gradient de changement élevé.
Ils ne savaient pas que c'était impossible, alors ils l'ont fait, Mark Twain.
"Ils", ce sont les nouveaux coéquipiers sur un projet. Leur regard neuf sur nos pratiques établies est d'une grande richesse et nous aidera à mitiger les risques identifiés ci-dessus.
Tous les postes sont concernés :
Mais la rotation fait peur. La rotation est synonyme de perte de connaissances. La rotation entraîne des changements plus forts que les rétrospectives. Faire rentrer un nouveau développeur a toujours bouleversé notre vélocité, voire complètement revu notre manière de chiffrer. Cela a bien évidemment un impact sur vos engagements et la visibilité que vous offrez à votre client, mais c'est une période transitoire qui peut être grandement limitée dans le temps et l'ampleur.
Pour ce faire, il faut qu'elle soit préparée et outillée. Il est impensable, même avec la meilleure documentation du monde, de penser à faire une rotation efficace d'un même poste sans chevauchement du futur sortant et du nouvel entrant. Remarquez d'ailleurs que la rotation ne se prépare pas que pour le jour J, mais également au quotidien. Assurer notamment le Collective Code Ownership est une des conditions sine qua non pour sécuriser le départ d'un coéquipier, et ceci se traduit dans notre équipe par du binômage opportuniste et de la revue croisée systématique.
La rotation est si bénéfique que nous envisageons d'en expérimenter la ritualisation sur ce projet : tous les six mois, une ou deux nouvelles têtes entrent sur le projet. Il est ainsi facile de les préparer au mieux, comme trouver en temps et en heure le bon remplaçant et assurer la collision des agendas des personnes concernées. Ce rythme nous permettra également d'industrialiser la montée en compétences, aidant du même coup l'adaptation de l'équipe à un départ fortuit (dont on n'est jamais à l'abri).
Après l'Agile à large échelle et l'Agile offshore, l'Agile au long cours apporte son lot d'expériences et d'enseignements. La rotation d'équipe en est un exemple très puissant, permettant de vaincre sur le long terme le côté obscur du gradient de changement faible du quotidien.