Cycle en V vs Agile sur un Projet: combinez! Voici la fusion du V model, de l’Agile et du Design Thinking. Définition, explication, exemple. Partie 2 !
Avant d'aller plus loin, je vous recommande la lecture de la partie 1.
Dans cet article sur mon processus personnel d'Ingénierie Systèmes, nous allons traiter des étapes 4 à 6 sur le chemin bleu. D'autres articles suivront pour les étapes suivantes et celles en parallèles repérées par des lettres.
Il est à noter qu'on considère pour ce Cycle en V un système à "3 étages", comme présenté dans ma vision cubique d'un Système :
Selon la complexité du Système qu'on cherche à concevoir, ou même l'organisation de l'Entreprise dans laquelle on travaille, on peut avoir à créer des niveaux supplémentaires.
Nous avons un Besoin clair et complet de la volonté du Client pour son Produit (la Spécification Technique de Besoin). Nous avons également le Plan de Validation qui va en face.
Nous attaquons donc l'étape 4. Elle a plusieurs noms dans la littérature et selon les Entreprises : Conception Générale, Spécification, Spécification Générale, Conception Préliminaire etc. Je préfère le terme Spécification Générale, c'est ce terme que j'utiliserai par la suite.
Le but du jeu est ici de transformer les exigences du Besoin en exigences Systèmes. On parle de déclinaison des exigences. On doit prendre les exigences du Besoin 1 par 1 et se demander "qu'est-ce que cela signifie pour mon Système?".
Reprenons notre trottinette :
Lors d'une déclinaison, très souvent l'exigence mère donne plusieurs exigences filles. C'est normal, on détaille l'exigence mère en allant plus loin, davantage vers la technique. Notez également que dans une exigence Système le Système devient le sujet de la phrase. Ce qui n'était pas le cas dans l'expression de Besoin, où une partie prenante était le sujet.
Remarque : Il est très tentant de dire ici d'emblée que la trottinette doit avoir des roues (pour l'interface à la route). Cela dit le Besoin ne le précise pas... Le client pourrait sûrement se satisfaire d'un autre moyen ? Une bonne pratique est de laisser ouvert ce genre de choix le plus loin possible dans la conception, pour ne pas se fermer de portes et saisir toute bonne idée innovante qui pourrait apparaître.
En bref, on transforme toutes les exigences et on les complète pour rentrer dans le monde technique et scientifique de notre projet.
On passe d'une liste de X exigences de Besoin à une liste de 3X exigences Systèmes (rapport 3 estimé au pifomètre, mais cela donne une bonne idée). Cette nouvelle Spécification doit s'accompagner de ce qui permettra de vérifier que tout est OK sur l'autre versant du cycle en V : son Plan d'Intégration et Vérification. Il va définir comment intégrer le Système complet à son environnement, tester que l'assemblage des sous-systèmes 2 à 2 est OK in fine, et que le tout est bien fonctionnel au niveau de performance et dans les conditions attendues.
Cette nouvelle spécification doit aussi s'accompagner d'une définition d'Architecture Générale : une représentation du Système et de son comportement/utilisation dans son environnement. Cela permet de s'assurer qu'on peut bien s'imaginer un système qui répond à toutes les exigences Système qui portent sur lui (et qu'il n'y a pas d'incohérences dans leur définition, ou de choses impossibles à faire fonctionner). Si à ce stade on n'est pas capable de s'imaginer une trottinette qui fonctionne comme attendu en réponse aux demandes du client, ce n'est pas la peine d'aller plus loin et il y a des décisions à prendre vis-à-vis du Besoin ou de la Spécification Générale.
A ce moment-là, le Système dans son ensemble est caractérisé de manière assez fine (mais toujours en mode boîte noire). Il est judicieux de passer à l'étape 5. Cette étape est un dérisquage. On veut s'assurer que ce Système qu'on est capable de s'imaginer est bien viable. Cela peut se faire via divers moyens, dont les 2 principaux sont :
Le client peut même être convié, cela permettra de s'assurer qu'on a bien traduit son Besoin et qu'on peut poursuivre sereinement la descente du V.
Exemples :
Arrive l'étape 6. Elle aussi a plusieurs noms : Conception détaillée, Conception, Spécification Détaillée, ... Je choisis Conception.
Il va s'agir ici de décliner à nouveau nos exigences, cette fois-ci du Système vers les Sous-Systèmes. En se posant pour chaque exigence Système la question "Comment?" :
Ceci est à faire pour toutes les exigences : celles plutôt orientées matériel, celles plutôt logiciel etc.
NOTA : Pour passer d'une exigence Sous-Système à Système (chemin inverse) la question à se poser est "Pourquoi?"
Ce n'est pas juste un exercice de style. Chaque déclinaison induit des choix sur le Système et c'est comme cela qu'il se construit pas à pas. Il est nécessaire de conserver une justification de chaque Exigence car c'est souvent là qu'est le savoir-faire de l'Ingénieur qui a réalisé la déclinaison (et par extension de l'Entreprise). Ici on aurait pu choisir de doter l'utilisateur de bottes spécifiques, maintenues en lévitation magnétique par un élément intégré au mât de la trottinette... Ou bien d'opter pour un dispositif où l'utilisateur est suspendu à un harnais plutôt que les pieds posés sur le châssis... C'est pour le moment de la science-fiction mais cela reste une déclinaison possible, et un choix Système associé.
Idem que précédemment, en face de ce nouveau lot d'exigences, qui grossit à vu d’œil, une Architecture Détaillée doit être mise sur pied. Et une Allocation doit être clarifiée : telle exigence sera portée par tel sous-système etc. On vient "projeter" les exigences sur les éléments (matériel, logiciel, ...) de l'architecture qui vont les réaliser.
Le Plan d'Intégration et de Vérification Détaillée correspondant doit également être écrit pour mettre des tests en regard de chaque exigence. Grâce à lui on viendra, lors de la remontée du V, tester chaque sous-système 1 par 1 pour s'assurer que tout est OK, et tester leur intégration entre eux. Les tests peuvent être simples ("Vérifier visuellement que la trottinette dispose bien d'un châssis") ou plus complexes ("Vérifier que la course max des vérins est bien respectée en les sollicitant 1500 fois avec appui de X Newtons en tel point").
Pourquoi faire autant de déclinaisons et mettre des tests en face de chaque exigence ? Ne suffit-il pas de savoir ce que doit faire le Système au global, ainsi que les quelques tests de recette Client lors de la livraison? Ensuite opère la magie de l'expertise de nos équipes métier?
L'étape 5 s'inscrit elle aussi dans une démarche de Design Thinking : le but est également de se mettre à la place de l'utilisateur pour voir ce qu'il penserait du Système, et/ou de mettre le Système dans son environnement et voir comment il performe.
Il ne faut pas hésiter à modifier les spécifications ou l'architecture qu'on s'était fixées a priori si ce n'est pas satisfaisant. Toutes ces étapes sont séquencées, mais elles sont bien itératives (et récursives). En ce sens, on vient d'ajouter de l'Agile dans la descente du Cycle en V !
Aurélien NARDINI
Un Système Sans Problème est une ressource de connaissances et de savoir-faire pratiques, avec exemples concrets.
Que vous soyez Chef de Programme, Chef de Projet, Architecte Système, Ingénieur, Manager dans l'Industrie, Etudiant ou Curieux de l'Ingénierie, vous êtes au bon endroit.
Au travers d'articles publiés régulièrement, découvrez ou révisez les Processus, Méthodes, Outils et Astuces utiles pour concevoir et piloter dans les domaines du Software, Firmware, de l’Électronique, et de la Mécanique.
Parce-qu'un produit fiable et industrialisable ne s'improvise pas !