Press "Enter" to skip to content

Qui rédige les spécifications exécutables ?

Photo by Frida Bredesen on Unsplash

Qui rédige les spécifications exécutables ?

Il est désormais communément admis que la définition des spécifications exécutables doit impliquer les différents corps de métiers, ce qu’on aime appeler les 3 Amigos : le produit, la tech, et le test.

Cette approche dépasse d’ailleurs de loin les spécifications exécutables. Ce bon sens s’applique plus globalement à toutes les sessions de définition d’un besoin, par exemple lors d’un Backlog Refinement (ou Backlog Grooming). Tous ces aspects (produit, tech et test) doivent être pris en compte pour s’assurer de bien avoir faire le tour de la question. Plus loin encore, c’est cette idée-même qu’il faut des compétences complémentaires pour faire émerger l’intelligence collective, raison même de l’existence d’un groupe.

Mais qui rédige les spécifications exécutables ?

Partons de cette hypothèse des 3 Amigos. Quel Amigo est le plus à même pour rédiger les spécifications exécutables ?

Passons en revue les différentes possibilités.

Produit + Tech + Test

Pourquoi ne pas rédiger ces spécifications exécutables tous ensemble ? Pourquoi pas en séance lors de la réunion de définition des spécifications exécutables, où tout le monde est déjà là ?

Cela peut fonctionner, néanmoins le risque est de perdre du temps.

À moins de pratiquer le swarming, un mode de fonctionnement où toute l’équipe travaille en collaboration permanente (lien à la fin de l’article), la plupart des équipes trouveront plus productif de faire cette rédaction hors séance et de l’accompagner d’une phase de revue croisée.

Produit uniquement

Demander à l’Amigo Produit de rédiger les spécifications exécutables semble naturel. Après tout, c’est peut-être lui qui a amené le besoin à implanter.

Cette approche est à la fois la plus logique en théorie et la moins tenable en pratique.

Des spécifications exécutables bien écrites doivent avant tout utiliser le vocabulaire et les formulations du métier : si l’Amigo Produit n’arrive pas à comprendre les spécifications exécutables, c’est qu’on a complètement raté l’exercice. Il semble logique de complètement confier à l’Amigo Produit la rédaction des dites spécifications exécutables.

Néanmoins, cette rédaction des spécifications exécutables comprend beaucoup de subtilités non-triviales qui touchent les 2 autres Amigos : contraintes techniques de mise en place et bonnes pratiques de test.

À ceci il faut ajouter que même si les spécifications exécutables doivent être extrêmement lisibles pour l’Amigo Produit, leur rédaction reste un travail parfois technique, que cela soit dans la maîtrise de l’outil de rédaction, ou dans le partage des spécifications exécutables via un logiciel de gestion de version comme GIT. (Si le principe de gestion de version vous est inconnu, je vous invite à lire un article de vulgarisation sur le sujet — lien à la fin de l’article)

Si certains Amigos Produit seront donc à même de rédiger les spécifications exécutable, la majorité d’entre eux en seront incapables ou ne trouveront tout simplement pas le temps ni l’intérêt d’en maîtriser toutes les subtilités plus techniques.

Tech uniquement

Beaucoup d’équipes font reposer le travail de rédaction des spécifications exécutables sur l’Amigo Tech. C’est souvent une décision par défaut, prise dans une équipe sans testeur. En effet, sans Amigo Test pour participer à la rédaction des spécifications exécutables et puisque nous avons établi que l’Amigo Produit était rarement à même d’y arriver, il ne reste que l’Amigo Tech pour s’en charger.

Le plus gros risque de cette approche est d’en oublier d’impliquer complètement l’Amigo Produit et de se retrouver à rédiger les spécifications exécutable à la fois pour et par les développeurs.

Cela remet complètement en question l’approche même des spécifications exécutables : si les seuls utilisateurs de ces spécifications sont les développeurs, il est inutile d’utiliser un outil qui permet d’utiliser un langage pseudo-naturel pour les exprimer. Les développeurs comprenant le code, autant utiliser un framework à la fois plus léger et plus flexible, plus proche de leurs outils de développement.

Test uniquement

Si par contre un testeur est disponible dans l’équipe pour assumer le rôle d’Amigo Test, on peut envisager de lui faire rédiger les spécifications exécutables.

Des trois Amigos, c’est en effet le mieux armé pour s’en charger : d’un profil technico-fonctionnel, il saura allier aussi bien une bonne formulation en termes métier, la prise en compte des contraintes techniques, et l’application des bonnes pratiques de test.

Néanmoins, une telle maîtrise nécessite un Amigo Test déjà bien expérimenté et avec une très bonne connaissance des subtilités techniques du produit.

Il semble donc assez naturel de s’orienter plutôt vers une dynamique de type pair-programming alliant Amigos Test et Tech.

Tech + Test

La meilleure option semble donc être un travail en binôme entre les Amigos Tech et Test.

D’un côté, l’Amigo Test, en tant que profil technico-fonctionnel, est le facilitateur par excellence de la démarche.

De l’autre, l’Amigo Tech a énormément a apporter aussi bien sur les contraintes techniques à respecter, que sur la mise en place de la stratégie de test.

Construire le bon niveau de couverture de test

Implicitement, ces spécifications exécutables forment le plan de test qui concrétise la stratégie de test. Pour fournir le bon niveau de couverture, la rédaction de ces spécifications exécutables nécessite une bonne compréhension de l’architecture technique à couvrir.

Dit autrement, à moins d’avoir une connaissance technique du produit qui rivalise avec celle d’un développeur, il est très difficile pour l’Amigo Test de définir seul le bon ensemble de tests. Ensemble de tests qui maximisera la couverture tout en minimisant l’effort de maintenance et le temps d’exécution.

Il semble donc naturel de vouloir écrire en tandem ces tests, ces spécifications exécutables, pour viser une solution optimale et concrétiser la stratégie de test Agile.

Robustesse de l’équipe en cas d’absences

Il existe un autre point en faveur de ce mode de fonctionnement : la robustesse de l’équipe notamment en cas d’absences. On la construit généralement en ayant une forme de redondance des compétences au sein de l’équipe.

La rédaction des spécifications exécutables peut représenter un travail à la fois conséquent et bloquant : dans une équipe respectant strictement une approche Test-First, il est impossible de démarrer le développement sans avoir de spécification exécutable au préalable. Or dans une équipe de développement logiciel moderne, il est courant de n’avoir qu’un seul testeur, alors qu’il y a par contre plusieurs développeurs. Si la rédaction des spécifications exécutables repose sur l’unique testeur, il y a un véritable risque de bloquer toute l’équipe en cas d’absence imprévue.

Il semble donc naturel d’impliquer les développeurs dans la rédaction des spécifications exécutables, pour que le fait de n’avoir qu’un testeur ne devienne pas un risque pour l’équipe. Le binômage est la meilleure solution pour y parvenir, en partageant connaissances et expérience.

Pour aller plus loin

Les étapes de rédaction des spécifications exécutables

Qu’est-ce que le ‘swarming’

Mode de fonctionnement où toute l’équipe travaille en même temps sur la même chose.

Qu’est-ce que la gestion de version ?

Que pensez-vous de cet article?

J’apprécierais vraiment si vous pouviez me laisser un commentaire pour me dire ce que vous appréciez ou ce qui pourrait être amélioré dans cet article.

Et si vous avez aimé cet article, merci d’applaudir 👏 et de le partager !

À bientôt 😊

Top