Pages

lundi 17 mars 2014

Les bonnes pratiques en matière de gestion de l’évolution des systèmes d'information

 Un système d’information change et évolue dans le temps. Ces modifications ne font progressivement. Dans ce domaine les changements rapides et brutaux sont rares. La plupart du temps ils se font par touches successives. Ceci fait qu’il existe un réel risque de dérive. Comme on le voit, les évolutions des systèmes d'information se font dans la durée. Dans ces conditions il est nécessaire de piloter ces opérations. L’expérience montre que la perte de contrôle de ce processus peut se traduire par une dégradation assez rapide des systèmes d’information. Dans les trois précédents messages (Voir sur ce blog les messages du 1er Août 2013 : « Les bonnes pratiques en matière de conception des systèmes d'information », du 26 Octobre 2013: « Les bonnes pratiques en matière defonctionnement des systèmes d’information » et du 11 janvier 2014 : « Les bonnes pratiques en matière de pilotage des systèmes d’information ») nous avons analysé les bonnes pratiques concernant la conception, le fonctionnement et le pilotage des systèmes d'information.
Dans ce texte nous nous efforceront d’identifier celles concernant l’évolution des systèmes d'information : les changements apportés au système d'information nécessitent une réflexion de type stratégique (c’est-à-dire reposant sur une vision de son évolution à moyen terme), une démarche planifiée avec le positionnement dans le temps des différentes modifications et des changements, et finalement une méthode de contrôler des opérations effectuées. Une partie des bonnes pratiques de ce domaine sont communes avec celles concernant le pilotage des systèmes d’information. Nous les avons cités, ce sont les points 8 à 13, tout en renvoyant au précédant document.
Le pilotage des systèmes d'information repose sur une trentaine de bonnes pratiques. Il en existe peut-être d’autres mais elles sont moins importantes :

1.     Désigner un pilote des évolutions du système d’information. Un système d'information évolue, souvent de manière non-prévue, pour s’adapter à des contextes non-prévus à l’origine. Or ces changements sont toujours des opérations délicates à gérer. Mal maîtrisés ils peuvent entraîner des perturbations, des dégradations, voir des pertes de données ou pire, des pertes financières. Pour éviter ces situations dommageables il est nécessaire de piloter ces évolutions. C'est le rôle du pilote. Il doit assumer différentes responsabilités :
·       identifier les opérations à effectuer,
·       effectuer les études nécessaires pour les évaluer,
·       arriver à un accord entre toutes les parties prenantes sur la liste de ces évolutions et sur les priorités à appliquer,
·       choisir les personnes qui vont participer aux opérations (informatique, organisation, formation),
·       lancer les actions d'évolution,
·       vérifier que ces évolutions fonctionnent conformément à ce qui était prévu.
Ce pilote peut être le même que celui chargé du pilotage opérationnel du système d’information mais souvent, pour des raisons pratiques, ce sont deux personnes différentes.

2.     Avoir une vision à moyen terme du système d’information. Pour éviter les dérives il est nécessaire de définir la cible que doit atteindre à terme ce système d’information. Pour cela on va s’attacher à décrire ce qu’il sera dans plusieurs années et la manière dont il s’intègre aux autres systèmes d’information de l’entreprise. L’absence de vision se traduit par des errements et finalement par une perte significative d’efficacité.

3.     Rédiger un document d’orientation. Cette vision se traduit par un texte identifiant les objectifs et les actions globales à entreprendre ([1]). Certaines concernent le système informatique et d'autres intéressent plus les personnes et l’organisation. C’est un document de synthèse qui permet d’identifier les différentes orientations qui seront mises en œuvre à court et à moyen terme. Il ne s’agit pas de décrire le détail des opérations qui seront mises en œuvre. Ce travail sera fait plus tard. Pour l’instant il se limite à la fixation des grandes orientations.

4.     Faire valider ces orientations. Ce document doit être approuvé par l’ensemble des parties prenantes concernées par le système d’information. On va pour cela mettre en place un Comité de validation chargé de constater l’accord de tous sur ces orientations. Il peut exister au préalable et assure le pilotage du fonctionnement du système d’information. Mais, souvent, il n’est pas constitué par des personnes se trouvant à un niveau de décision suffisant. Ce Comité doit être comprendre des décideurs ([2]) notamment des membres du Comité de Direction ayant en charge la conception et la mise en œuvre de la stratégie de l’entreprise.

5.     Définir un cycle et une périodicité d’évolution du système d’information. Il est rare qu’un système d’information soit, d’un seul coup, bouleversé de fond en comble. La plupart du temps il évolue par touches successives. On risque alors de devoir faire face à un grand nombre de modifications allant en tous sens et qui finissent par perturber son fonctionnement. Pour éviter cela il est de bonne pratique de regrouper l’ensemble des modifications en versions successives livrées à des dates fixées longtemps à l’avance. Ce sera, par exemple, une version mineure tous les six mois et une version majeure tous les dix-huit mois ou tous les deux ans.

6.     Stabiliser le périmètre du système d’information. Un système d’information dont le périmètre n'est pas stabilisé risque de connaître dans l'exécution de ces opérations des dérives significatives. En effet, selon l’interlocuteur on ajoute ou on soustrait des fonctions ou des données. Ceci fait que très vite le périmètre devient flou et se traduit par des dérives fonctionnelles, temporelles et budgétaires. Il est pour cela important de fixer très tôt le périmètre du système d'information et notamment de sa partie informatique.

7.     Validation des extensions ou des réductions du périmètre du système d’information. Ce sont apparemment des choix de secondaire mais en vérité ils sont très importants car ils ont des conséquences sur le contenu des évolutions et sur le futur fonctionnement du système d’information. Pour éviter toute remise en cause ultérieure cette validation doit être faite par le même groupe de personnes que celles ayant participées à la définition du système d’information. C’est le rôle généralement dévolu à un comité de pilotage du système d’information mais cela peut aussi être assuré par un comité ad-hoc.

A ces bonnes pratiques s’ajoutent six autres points clés qui sont communes au pilotage des systèmes d’information et à leur évolution. Ce sont des règles générales de la gestion de projet :

8.     Consulter périodiquement les utilisateurs et les décideurs pour recenser les demandes d’évolution qu’ils souhaitent mettre en œuvre : Voir la bonne pratique n°11 du message sur les bonnes pratiques en matière de pilotage des systèmes d’information.

9.     Sélectionner les demandes d’évolution en fonction de critères simples : Voir la bonne pratique n°12 du message sur les bonnes pratiques en matière de pilotage des systèmes d’information.

10.  Planifier les changements : Voir la bonne pratique n°13 du message sur les bonnes pratiques en matière de pilotage des systèmes d’information.

11.  Suivre le planning et mesurer l’avancement : Voir la bonne pratique n°15 du message sur les bonnes pratiques en matière de pilotage des systèmes d’information.

12.   Prévoir et suivre la charge de travail : Voir la bonne pratique n°16 du message sur les bonnes pratiques en matière de pilotage des systèmes d’information.

13.   Fixer et suivre le budget des opérations : Voir la bonne pratique n°17 du message sur les bonnes pratiques en matière de pilotage des systèmes d’information.

Ces règles ont pour but de renforcer la gestion des projets d’évolution des sysèmes d’information.

14.  Gérer les évolutions importantes en mode projet. Toutes les évolutions majeures du système d'information et notamment du système informatique doivent être gérées en mode projet, c'est-à-dire encadré par une date de début et une date de fin. C'est notamment le cas des modifications fonctionnelles et les développements de nouvelles fonctions. Dans ces différents cas l'idée d'une évolution en "tâche d'huile" est à éviter. L’ajout de fonctions par touches successives ne peut que dégrader l’ensemble du système d’information.

15.  Préparer le travail à effectuer. Pour éviter les dérives, il est recommandé de commencer par identifier toutes les actions nécessaires qui doivent être effectuées afin de permettre l’évolution progressive du système d'information. Elles peuvent concerner les domaines suivants :
·       Simplifier les tâches à effectuer,
·       Supprimer les tâches inutiles. Jadis, lorsqu’elles ont été créées elles étaient surement très intéressantes mais aujourd’hui elles ont perdues une grande partie de leur actualité,
·       Créer de nouvelles tâches nécessaires afin d’améliorer le fonctionnement des systèmes d’information,
·       Mettre certaines tâches en parallèle de façon à améliorer la rapidité des opérations,
·       Modifier l'enchaînement des tâches afin de fluidifier les opérations,
·       Améliorer l'interface entre l'application et les utilisateurs de façon à simplifier les opérations de saisie, de modification et de consultation,
·       Modifier le contenu des traitements, notamment pour les optimiser.

16.  Evaluer la charge de travail nécessaire et fixer le budget. La définition du budget est un point délicat car il est toujours difficile d’identifier toutes les opérations qu’il est nécessaire d’effectuer, de chiffrer la charge de travail correspondante et de déterminer le budget pour les réaliser. Dans le cas des projets cette évaluation n’est pas une opération simple et elle est particulièrement difficile à effectuer dans le cas des évolutions des systèmes d’information. Il n’existe aucune méthode reconnue permettant d’effectuer le chiffrage des opérations ponctuelles. Seul l’expertise et le savoir-faire de professionnels permettent d’effectuer des estimations raisonnables.

17.  Fixer des priorités. Une fois que les opérations à effectuer ont été identifiées et chiffrées il est nécessaire de déterminer dans quel ordre elles seront effectuées. Différentes contraintes sont à prendre en compte : l’urgence, les enjeux, la logique des opérations,… Les parties prenantes concernées peuvent avoir sur ces différents critères des points de vue très différents. Pour fixer les priorités il est souvent nécessaire de négocier et de savoir faire des compromis.

18.  Fixer des échéances. Sur la base des priorités, de la disponibilité des intervenants et des charges de travail évaluées il est possible de fixer des échéances de mise en œuvre des changements. Sur cette base on peut établir un planning fixant les dates de début et de fin de chaque opération et de chaque tâche. Une première version de ce document est établie puis ensuite des adaptations sont faites pour tenir compte des évolutions des priorités.

19.  Améliorer le système informatique. Compte tenu de la spécificité des actions concernant le système informatique (notamment le fait qu’une partie de ces travaux ne peuvent qu’être effectuées par les professionnels) il est nécessaire de les identifier et de les évaluer correctement. Ce sont, pour l'essentiel, des opérations de réalisation ou de modification de code :
·       Des améliorations ponctuelles pour améliorer, adapter un écran de saisie ou de consultation, des adaptations des états édités,…
·       L'optimisation des transactions et des traitements. L’objectif de ces interventions est d’améliorer les temps de réponse ou la charge machine des traitements des programmes « batch »,
·       La refonte partielle ou totale de l'ensemble du système informatique de façon à améliorer sa fiabilité et réduire la charge ultérieure de maintenance.
Pour éviter des dérives il est nécessaire de définir ce qui relève des opérations de maintenance usuelles et ce qui doit être effectué dans le cadre d’un projet.

20.  Faire tester les changements effectués par des personnes utilisant habituellement le système d’information. Une fois que les équipes chargées de la réalisation ont testé les programmes modifiées il est nécessaire qu’ils soient à leur tour vérifiés par des personnes qui vont ensuite les utiliser quotidiennement. Elles doivent être choisies dans différentes équipes de façon à couvrir les différentes manières de mettre en œuvre le système d’information. Il est important de s’assurer que ces personnes disposent du temps nécessaire pour effectuer des tests sérieux.

21.  Disposer d’une plateforme de tests. Pour effectuer les tests il est nécessaire de disposer d’un serveur dédié aux tests ne servant qu’à cet usage avec des bases de données de tests, distinctes de celles servant à effectuer les opérations courantes. Il doit être possible d’effacer les bases de données ayant servies aux tests et de recharger facilement de nouvelles bases. Ce système doit être convenablement sécurisé de façon à ce que les opérateurs ne puissent pas malencontreusement mélanger des tests avec les opérations courantes. Il est utile que les serveurs de tests puissent être accessibles de tous les postes de travail, moyennant quelques précautions de sécurité simples à mettre en œuvre (mot de passe spécifique, codes couleurs, message en clair,…) de façon à ce que les utilisateurs ayant du temps disponible puissent en profiter pour effectuer des tests.

22.  Mettre à jour la documentation du système informatique. Lorsque les programmes sont modifiés il est important de mettre à jour la documentation de l’application informatique de façon à pouvoir effectuer dans de bonnes conditions les opérations de maintenance ultérieures.  

23.  Améliorer l’organisation en place. Parallèlement à l’évolution du code des applications informatiques il est nécessaire de chercher à rendre l’organisation plus efficace. On va pour cela s’attacher à travailler les processus de façon à :
·       modifier les tâches existantes,
·       supprimer les tâches devenues inutiles,
·       créer de nouvelles tâches nécessaires.

24.  Mettre à jour la note de procédure. Une fois le processus redéfinit il est nécessaire de stabiliser l’organisation en place. C’est le rôle de la procédure. C’est un document écrit qui précise de manière détaillée la succession des opérations qui doivent être effectuées à chaque étape du processus. Il est recommandé de revoir le texte de la procédure à chaque vague de modifications du système d’information.

25.  Donner des instructions écrites aux personnes utilisant le système d’information. Pour utiliser efficacement les systèmes d’information il est nécessaire que soit rédigé des instructions précises destinées aux opérateurs de façon à éviter les tâtonnements, les erreurs, les temps perdus par les différents intervenants.

26.  Former les personnes intervenant dans le cadre du système d’information. Les changements de méthodes de travail doivent s'accompagner d'un certain nombre d'actions de formation de l'ensemble des personnes concernées. Il est nécessaire d’abord s’assurer qu’elles ont les connaissances de base indispensables et si elles ne les ont pas, de leur donner la formation qui leur manque. Il est ensuite important de leur fournir une formation adaptée à une utilisation efficace du système d’information. De plus, toutes les personnes arrivant dans l’entreprise ou venant d’une autre activité doivent être formées à son utilisation et à sa maîtrise. A chaque série de changements importants et notamment lors de la mise en place des versions majeures il est nécessaire d’organiser une « piqure de rappel » pour s’assurer que l’ensemble des intervenants disposent des connaissances nécessaires. 

27.  Evaluer ultérieurement le système d’information. Une fois que les changements prévus ont été mis en œuvre il est nécessaire d'évaluer leur impact de façon à s'assurer que les objectifs fixés ont été atteints. Ce travail doit être fait dans les trois à six mois qui suivent le démarrage de la nouvelle version. Il doit faire apparaître les améliorations constatées mais aussi les faiblesses qui persistent, voir qui s’aggravent. Cette évaluation doit être faite par une personne indépendante du système d’information.

28.  Fixer la date de la prochaine révision. Une fois la nouvelle version du système d’information déterminée il est recommandé de définir le contenu de la prochaine révision et la date prévisionnelle de sa mise à disposition.

Comme on le voit les systèmes d’information évoluent par étape et ainsi s’adaptent à l’évolution du contexte et des besoins. C’est un processus délicat et compliqué qu’il faut piloter avec dextérité. Elle repose sur l’existence d’un responsable du système d’information et le partage d’une vision commune avec l’ensemble des parties-prenantes concourants à son fonctionnement. Ce responsable et sa vision partagée sont les deux piliers de la gestion et de l’évolution des systèmes d’information. L’absence de responsable se traduit par des changements brusques en tous sens et qui ne correspondent pas forcément à un souci d’efficacité et de productivité. L’absence de vision ne peut mener qu’à des tensions et à des conflits. Ces deux piliers sont nécessaires mais ne sont pas suffisants. Ils doivent aussi être accompagnés par un ensemble de mesures souhaitables correspondant aux divers bonnes pratiques recensées dans ce message.



[1] - Une présentation PowerPoint n’est pas suffisante. Elle est utile pour communiquer mais il est de plus nécessaire d’avoir un texte clair et structuré pour lever toutes les ambiguïtés.
[2] - Si les participants de ce Comité n’ont pas le niveau suffisant il y a un risque de remise en cause ultérieurement des orientations arrêtées.