Architectures piranésiennes

20181103_023828780474268.jpgLe cycle en V est un marronnier de la formation aux projets et aux technologies de l’information. Il existe d’autres modèles mais celui-ci s’est imposé. Il semble difficile de dire quelque chose de neuf sur le sujet, mais en même temps, il est difficile d’y échapper si l’on veut faire comprendre comment travaillent des concepteurs-développeurs.

Les quatre étages d’un système numérique

Un système d’information numérique est toujours une construction à quatre étages.
Au rez-de-chaussée se trouvent les machines. C’est la partie la plus spectaculaire du système d’information. Elle est essentiellement composée de transistors qui ouvrent ou ferment l’arrivée du courant électrique, et de câbles dans lequel celui-ci passe. A ce stade l’information se réduit à des bits, des signaux oui/non, 1/0. L’assemblage des transistors et des câbles est devenu d’une extrême complexité. Nous sommes loin du temps de l’ordinateur machine universelle, avec une CPU, une mémoire, des périphériques d’entrée-sortie. Il y a des cartes graphiques, des tablettes, des smartphones, des périphériques dotés de capteurs, d’intelligence. Ces périphériques peuvent être imprimantes, écrans, modem, et maintenant, voitures, machines-outils, outils de surveillance, scanners médicaux… Seuls des spécialistes hautement qualifiés sont capables de se retrouver dans ce labyrinthe.
L’étage au-dessus est celui du code. Il est le plus spécifique au monde du numérique. Il est lui-même fait de multiples morceaux. Des codes qui transforment du texte presque normal en langage machine, le code qui surveille le fonctionnement de la machine, le code qui contient l’algorithme de ce que l’on veut faire avec la machine, le code qui permet de dialoguer avec d’autres machines (par exemple le logiciel pilote qui permet de lancer l’imprimante). Chacun de ces codes a son langage, ses spécificités. Là aussi il faudra des spécialistes pointus pour comprendre ce monde à part.
L’étage suivant est celui des opérateurs, qui vont utiliser ce système. Il est tellement familier qu’on l’oublie parfois. Il y a toujours eu des comptables, agents de banque, des caissières au supermarché, etc. Il faut bien comprendre la répartition des rôles entre les différents opérateurs, quel est le processus opérationnel dans lequel ils s’insèrent. Pour chacun, il faut analyser quelles sont les taches qu’ils exécutent, quelles sont celles que la machine exécutera à leur place, et celles où leur présence restera indispensable. Généralement ils saisissent des données d’entrées et ils utilisent les données sorties par le système. Il faut comprendre d’où viennent les données d’entrées, comment ils les connaissent, quelles erreurs ils peuvent faire dans la saisie pour aider à les corriger. Il faut aussi s’assurer qu’ils seront capables d’utiliser le nouveau système, de le comprendre et de l’accepter. C’est l’ensemble de cette analyse qui permettra de définir l’algorithme qui devra être transcrit dans le code. Là aussi vous avez besoin de gens compétents, capables de décrypter l’organisation sociale, les relations entre les hommes.
Le dernier étage est celui des métiers. Il est celui du milieu dans lequel interviennent les opérateurs. Ceux-ci sont pris dans des contraintes géographiques, des règles métiers, un encadrement légal auxquels ils ne peuvent déroger. Toutes ces règles impacteront l’algorithme mais aussi la manière dont il sera réalisé. Il faudra aussi s’entourer de professionnels, juristes, comptables, scientifiques différents selon le processus que vous souhaitez créer ou modifier.

97 cycle en V

Par où commencer l’immeuble ?

Il y a donc quatre étages qui ont deux caractéristiques : ils interagissent constamment entre eux ; chaque étage est maitrisé par des professionnels pointus. Personne n’est réellement compétent sur l’ensemble de l’immeuble. Bien sur les concepteurs-développeurs ont une connaissance globale de l’architecture de la bâtisse. Bien sûr des formations assurent un minimum de transversalité des compétences. Mais chacun sait qu’il ne maîtrise qu’imparfaitement l’ensemble, qu’il doit s’appuyer sur les autres pour fabriquer un système cohérent et opérationnel.
La question qui suit est de savoir par où commencer. Il faut certes d’abord recruter les spécialistes nécessaires des quatre étages, en fonction du métier impacté, du processus touché, du code et des machines à fabriquer ou à approvisionner. Ils constitueront Mais ensuite ? C’est là qu’intervient le cycle en V. Les règles canoniques de la conduite de projet disent qu’il faut partir du dernier étage pour descendre lentement.
Le Maitre d’ouvrage du métier définit le cahier des charges du projet, les règles qu’il devra respecter, les objectifs, le produit qui doit sortir de l’algorithme. Le concepteur écrira ensuite une spécification fonctionnelle qui décrit le processus mis en œuvre et l’algorithme qui l’accompagne. Le développeur rédige le code qui transcrit l’algorithme. L’architecte technique approvisionne les machines et les connecte entre elles.
Ensuite le travail consiste à remonter la pente en testant ce qui a été fait. Le développeur teste ce qu’il a rédigé pour s’assurer qu’il n’a pas fait d’erreur de syntaxe ou d’orthographe, que la machine ne peut interpréter. Le concepteur vérifie que ses spécifications ont été respectées avec l’aide d’utilisateurs témoins (key-users). Le maitre d’ouvrage effectue la recette par rapport à son cahier des charges.
Ainsi le cycle en V donne un guide, une règle de conduite qui permet de se retrouver dans le monde piranésien du système d’information. Il prend de multiples formes, depuis le micro-projet qui permettra une progression limitée mais qui s’enchainera avec d’autres micro-projets, jusqu’au projet géant, impliquant des centaines de personnes, qui provoquera un chamboule-tout, la disruption si à la mode.

Charybde ou Scylla

Dans tous les cas, il y a deux écueils à éviter.
Le premier est de croire que l’ordre de réalisation du projet est un ordre hiérarchique. Ce n’est pas parce qu’un maître d’ouvrage vous a donné un cahier des charges détaillé qu’il a une vue complète des impacts sociaux, des possibilités des machines et du code. A tous les niveaux du système, se rencontrent des amateurs du Yakafocon et du caporalisme obtus. Il faut résister, adopter la position du doute méthodologique permanent, et l’écoute des spécialistes. La collaboration est le maître mot. Sinon le système que vous créerez sera inefficace ou inadapté.
Le second écueil est la procrastination. Chacun des étages connait sa vie propre. Il sort toujours des versions nouvelles de machines et de logiciel, les compétences des opérateurs ne cessent d’évoluer, les lois et le contexte économique aussi. La tentation est grande de tout reprendre pour se mettre au gout du jour. Le projet entre alors dans le cycle dit « en escargot », où le cahier des charges est constamment repris, où l’on repart dans un cycle systématiquement de développements et de tests ? Il y a des amateurs de ce remake du « Jour sans fin », mais généralement ils ne sont pas aimés des financiers.

Cet article a été publié dans developpement, informatique, système d'information. Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s