Les tests dans la méthode Agile

Le 25 février dernier, Hollywood couronnait une certaine excellence du cinéma lors de la cérémonie des Oscars. Derrière les paillettes et le glamour, c’est aussi le travail de fourmi des scénaristes qui est récompensé. Dans cet article, je m’appuie sur mon expérience des tests dans Agile pour oser une analogie entre l’univers du cinéma et celui du développement logiciel. J’espère que les experts Agile ne s’en indigneront pas !

Scénarios & développement logiciel

Dans le cinéma, envisager une histoire (appelons-la story) c’est envisager son déroulé, ses ramifications et variantes, les « et si » qui arrivent à point nommé – des scénarios qui s’enchainent de façon logique et cohérente pour construire une histoire et embarquer le spectateur dans une histoire.

Dans le monde du développement informatique – c’est un peu la même chose. Développer un projet logiciel, c’est répondre au plus près et à tout moment aux besoins du client, être flexible et pouvoir réorienter notre story au fur et à mesure si besoin. L’essentiel, c’est d’aboutir à la réalisation d’un système offrant les fonctions qui correspondent aux attentes des utilisateurs et qui apportent satisfaction à la fois dans les usages et dans l’expérience utilisateur.

Une bonne story fonctionne en informatique et au cinéma

La méthodologie Agile et ses variantes (Scrum par exemple) sont aujourd’hui très largement utilisées dans les organisations pour mener et faire aboutir un projet logiciel et IoT. Si développer un projet logiciel avec flexibilité et adaptabilité pour répondre au plus près des besoins du client constitue la base du métier, la méthodologie Agile a pour avantage de pouvoir adapter le projet et le (re)diriger dans la direction voulue de façon quasi permanente. Tout au long du projet, il est possible de revoir les besoins, rectifier, hiérarchiser (pour retirer ou bien intégrer un besoin plus prioritaire) ou faire marche arrière. En un mot : agile.

Pour ce faire, le développement s’articule autour des « user stories » qui décrivent des fonctionnalités souhaitées pour l’utilisateur : « en tant qu’utilisateur, je veux pouvoir faire ceci ou cela … ». Tout comme pour le héros du film, scénaristes et développeurs travaillent autour du comportement du logiciel qui répondra au mieux aux besoins de l’utilisateur.

Dans le cas du cinéma : Bruce Willis aura effectivement sauvé le monde avant le générique de fin. Dans le cas du logiciel : l’utilisateur aura effectué avec succès les actions prévues par l’outil informatique

Le testeur et les Oscars

Là où le scénariste – pris dans son enthousiasme – peut faire déraper sa story, ce risque est beaucoup plus limité dans le cadre du développement logiciel, puisque le testeur intervient dans le déroulement de la méthodologie Agile.

Cheville ouvrière à part entière dans la méthodologie, il conçoit et rédige les tests adaptés aux user stories sélectionnées et embarquées dans les cycles de développement et les exécute. Tout au long des phases de développement (renommées sprint), la créativité du testeur est mise à contribution pour élaborer les tests cases des plus probables aux plus improbables.

Le test joue un rôle crucial dès lors qu’il permet de valider la version, remonter les bugs, fournir des métriques sur la qualité et permet d’orienter le contenu du sprint suivant. Une fonctionnalité ne correspondant pas au besoin ou bien considérée comme trop instable sera retirée ou revue, tout comme cette scène coupée au montage – en fin de compte, elle n’apportait rien à l’histoire !

Ainsi, les tests de validation font partie intégrante de la méthode Agile, pour permettre un développement au plus juste et au plus près des besoins de l’utilisateur mais aussi pour garantir la qualité et la robustesse de la version. Ne pas effectuer de tests reviendrait à construire le logiciel sans vérifier que tout est solidement assemblé avant de poser les « pièces » suivantes. A la fin, et comme au cinéma, la story s’écroule dans une scène bancale, voire illogique. Votre film emportera un Razzie Award, et votre logiciel n’aura pas gagné pas la satisfaction des utilisateurs (ou votre app sera mal notée sur les plateformes de téléchargement)

Dans les deux cas, c’est un échec. Que vous saurez nécessairement éviter si vous êtes développeur – en utilisant les tests à bon escient. Pour les cinéastes, on vous laisse trouver la solution à Hollywood !