Le modèle de projet en spirale (Spiral Project Model)
En cette nouvelle année 2018
Polygone de Mandel |
Dans les contextes d'informatiques héritées d'années de projets, et d'empilement d'applications de tous types, le patrimoine SI des entreprises est tout, sauf "Data Centric" : les données y sont éparses, redondantes, incohérentes, mal synchronisées, et dans des états de qualités mal maîtrisés.
La transformation de l'Entreprise, pour qu'elle dispose d'un SI "Data Centric", est un programme de changement compliqué, à conduire avec méthode. C'est une approche où les grands classiques de l'Architecture d'Entreprise ne proposent pas de référence.
La promesse du Data Centric
Un monde de processus et de logiciel, articulé sur des données de qualité, permettrait :
- de capitaliser sur les connaissances (expérience client, ...), en mobilisant les atouts technologiques actuels,
- de limiter les redondances et incohérences, néfastes à l'image, freins à l'efficacité,
- d'évoluer plus rapidement, en s'articulant sur les invariants portés par les données.
L'Architecture Flexible est la réponse typique, conceptuellement solide, à cette promesse. Nous avons vu que son approche top-down rencontrait maintenant le savoir faire acquis autour des micro-services. Ceci est en passe de révolutionner le monde du développement logiciel, et celui des architectures, en association avec la généralisation des démarches agiles (voir à ce sujet la synergie agile vs flexible).
Disposer d'une telle solution flexible, idéale dans l'absolu, en rupture par rapport aux Architectures calées sur une cible immuable, est un précieux acquis. Mais comment parvenir à cet objectif, comment migrer le patrimoine et les données ? Il n'y a pas de recette miracle qui nous dote instantanément d'un système répondant aux imprévus, et d'une agilité tous azimuts. Certes on s'accorde sur la nécessité de mettre de l'ordre dans les référentiels, mais les résistances sont multiples et le projet aléatoire.
La solution du Big Bang, jadis systématique, est impraticable, car le SI existant reste la référence opérationnelle, et sa transformation est infiniment complexe.
Dès lors, comment évoluer pas à pas, prudemment, en minimisant les risques, et apportant le plus de valeur au plus tôt ?
Naviguer dans l'incertain
Pour migrer vers le Data Centric, nous devons mener de front plusieurs projets, chaque projet ayant sa propre incertitude.
On pourrait imaginer un chemin rationnel, une "road map" rassurante : On sait d'expérience que cette rationalité est illusoire, car les projets ne se dérouleront pas comme prévu. Nous avons déjà utilisé la métaphore du labyrinthe pour expliquer ces aléas, sources d'échecs.
Imprévu des projets, mais aussi incertitudes dans l'assemblage des projets : autant d'occasions de surprises et déconvenues.
Imprévu des projets, mais aussi incertitudes dans l'assemblage des projets : autant d'occasions de surprises et déconvenues.
La démarche déterministe aboutit, comme dans un labyrinthe, à de fausses issues. Pour autant faut-il abandonner toute anticipation et se précipiter tête baissée dans les projets, par exemple en comptant sur son agilité ? Ceci ne protège pas cependant des errements, blocages, et volte-faces impossibles. En effet, même si l'on est magicien du logiciel, les rigidités des comportements humains, les contraintes économiques, les faits d'image, ... rappellent les imprudents à la réalité. Un projet ne se réduit pas à la validation de spécifications et à la simple réalisation de code.
A défaut donc de disposer d'un chemin tout tracé, comment naviguer dans l'incertain ?
Une approche méthodique
Il nous faut découvrir notre chemin pas à pas, et, à chaque étape, se protéger au maximum des aléas de chaque projet, et des dépendances entre projets.
Le parcours doit être opportuniste pour s'adapter aux difficultés rencontrées. Il doit aussi être méthodique pour progresser dans la transformation globale, vers le Data Centric.
Identifier les axes d'amélioration
Le patrimoine existant n'a pas les atouts du Data Centric. Il convient de l'améliorer progressivement, par parties, selon les opportunités, à des vitesses adaptées...
Pour cette progression, dans le contexte de l'entreprise, quelques axes d'amélioration ont du sens. Ce sont par exemple, selon le contexte :
- Normalisation des objets
- Multiplication des interactions
- Développement technique, fonctionnel, organisationnel
- Gestion des latences et temporalités
- Industrialisation
Ces cinq axes sont génériques, et on les retrouve facilement d'un cas à l'autre (publication à venir sur le site de l'Architecture Flexible).
Un indicateur de maturité des projets
Sur chacun des axes des incréments sont définis. On peut se référer des incréments standards (publication à venir sur le site de l'Architecture Flexible).
Les bases d'un indicateur générique de maturité des projets sont ainsi constituées : cet indicateur est la boussole nécessaire à la "navigation" mentionnée ci-dessus.
Indicateur de maturité : cas MDM |
Le schéma ci-dessus présente le cas d'un projet MDM en approche Data Centric de l'Architecture Flexible.
Dans le contexte particulier de l'Entreprise, on identifiera les axes d'amélioration et on caractérisera les incréments souhaitables sur chaque axe. Nous pourrons dès lors objectiver le mûrissement de chaque projet en le positionnant sur ces axes et incréments.
La démarche incrémentale : expansion en spirale
Pour maîtriser l'expansion d'un projet, on engage alors une démarche incrémentale : à chaque étape, on change d'un incrément un seul des paramètres du projet.
L'expansion du projet se fera alors en spirale, depuis son "nid" initial vers sa pleine maturité où ses composants son pleinement opérationnels sur tout le périmètre.
Expansion en spirale |
L'exemple ci-contre schématise l'évolution de l'indicateur de maturité au gré des cinq étapes d'un projet.
La transformation globale de l'Entreprise par son SI
En utilisant le levier des composants de l'Architecture Flexible, c'est toute l'Entreprise, par son SI devenant progressivement Data Centric, qui est mise en mouvement : ouverture vers le Digital, réduction des latences, dématérialisation, fonctionnement matriciel, agilité dans les écosystèmes...