Gestion des exigences : une des clés du succès des projets informatiques

Une fois le budget fixé, l’objectif décrit et le délai défini, les entreprises se dépêchent souvent de passer directement à la mise en œuvre au lieu de prendre un peu de temps pour rassembler de façon systématique les exigences de toutes les parties prenantes pour le produit souhaité et en gérer les spécifications. Problème : les exigences définies initialement sont uniquement intégrées au produit final dans 56 pour cent des projets informatiques. Il en découle une perte de temps et de budget qui peut être évitée avec une gestion des exigences structurée.

Qu’est-ce que la gestion des exigences ?

La gestion des exigences, également appelée Requirements Engineering ou Requirements Management, est une composante fondamentale de la gestion de projet dans les entreprises. L’objectif est de veiller à satisfaire les exigences des clients, mais aussi des parties prenantes internes et externes pour le produit à élaborer.

Cette discipline inclut la définition des exigences (l’analyse, la documentation et la validation des exigences) ainsi que la gestion des exigences (gestion des risques, des modifications et de la mise en œuvre). Il ne s’agit donc pas d’une tâche unique que l’on réaliserait au début d’un projet, mais bien d’une suite de processus récurrents qui s’étendent sur toute la durée du projet. Le chef de projet responsable, appelé ingénieur de gestion des exigences ou en anglais Requirements Engineer, surveille la mise en œuvre et l’intégration des exigences et des modifications ainsi que le cours du projet qui en découle.

Pertinence de la gestion des exigences

La gestion des exigences informatiques est relativement bien établie dans le secteur des technologies. Au niveau des projets informatiques, si l’on ne définit pas clairement d’entrée de jeu ce que le logiciel à développer doit être en mesure de réaliser et quels processus il doit supporter, on peut s’attendre à des problèmes dans la suite du processus. Toute planification du temps et des ressources effectuée sur cette base ne saurait être réaliste et il y a alors fort à parier que le projet s’éternisera et que le budget sera dépassé du fait des diverses modifications souhaitées par le client. En effet, une mauvaise gestion des modifications souhaitées entraîne davantage de dépenses.

La gestion des exigences est toutefois utile et essentielle, quel que soit le secteur. Dans les projets d’envergure portant en particulier sur des produits complexes, elle permet de maintenir l’efficacité à un niveau élevé tout au long du projet et d’éviter les erreurs et les désaccords entre les partenaires du projet. Les problèmes provenant d’un changement dans les souhaits du client peuvent être gérés de façon anticipée par un ingénieur de gestion des exigences qui définira des mesures afin d’en atténuer les effets négatifs.

Même si au départ, le client doit consacrer des efforts plus importants pour spécifier plus en détail les exigences, une gestion des exigences structurée favorise la satisfaction client.

L’importance de la définition et de la gestion des exigences dans la réussite du projet a pourtant tendance à être sous-estimée par les entreprises – même dans les projets technologiques où la gestion des exigences informatiques est largement répandue. C’est en tout cas ce que laisse supposer l’étude CHAOS du cabinet de conseil Standish Group qui indique que 52 pour cent des projets informatiques dépassent de loin les délais et le budget . Seulement 55 pour cent des personnes interrogées considéreraient la gestion des exigences comme importante ou très importante. Pour les autres participants, la gestion des exigences participerait uniquement faiblement ou moyennement à la réussite du projet. Une grave erreur comme le montre le nombre de projets livrés en temps et en heure.

Aperçu des avantages :

  • une plus grande efficacité du projet
  • moins de modifications au cours du projet
  • moins d’erreurs et de désaccords
  • une identification précoce des problèmes et des modifications nécessaires
  • des coûts de projet plus faibles, les coûts dus aux erreurs pouvant être évités
  • un projet achevé dans les temps et en respectant le budget
  • une plus grande satisfaction client

Méthodes et outils de gestion des exigences

Parmi les principales tâches de la gestion des exigences, on trouve la collecte, la documentation et l’analyse des exigences ainsi que la gestion des modifications au cours du projet.

Collecte des exigences

Les exigences des différentes parties prenantes doivent tout d’abord être collectées. L’ingénieur de gestion des exigences dispose de différentes méthodes pour faire ressortir les besoins et les souhaits des parties prenantes et du client afin de créer une documentation des exigences :

  • des interviews : l’ingénieur de gestion des exigences peut s’entretenir avec les parties prenantes en personne ou par téléphone.
  • des questionnaires : il peut également interroger les parties prenantes par écrit afin de recueillir les exigences sous une forme structurée. Il est ainsi possible de recueillir les exigences d’un grand nombre de parties prenantes.
  • des ateliers : à l’aide de techniques créatives, les parties prenantes peuvent être guidées à travers des ateliers afin de découvrir des aspects à prendre en compte dans le projet auxquels ils n’auraient pas pensé lors d’un simple brainstorming.
  • des observations sur le terrain : l’ingénieur de gestion des exigences observe les processus de travail des parties prenantes et les documente à l’écrit, au format audio ou sous forme de vidéo.
  • l’apprentissage : l’ingénieur de gestion des exigences apprend l’activité de la partie prenante. Grâce aux explications apportées sur le travail de cette dernière, il prend alors conscience d’exigences importantes pour le projet.
  • des recherches sur un système : pour les infrastructures informatiques peu ou pas documentées, l’ingénieur de gestion des exigences peut commencer par l’examen et la documentation du système. Dans ce cadre, son analyse personnelle peut être complétée par des questionnaires remplis par les utilisateurs des systèmes.
  • une réutilisation : si un système technique doit être renouvelé, il est probable qu’il faille conserver les workflows auxquels les utilisateurs se sont habitués. Au lieu de reformuler toutes les exigences, il convient de s’appuyer sur les documentations existantes.

Documentation des exigences

Le cahier des charges sert de base contractuelle entre les partenaires du projet. Il s’agit du premier produit créé dans le cadre de la gestion des exigences. Il rassemble l’ensemble des exigences du donneur d’ordre concernant la prestation et la livraison de l’exécutant. Il définit ce qui doit être réalisé. Il est ensuite possible de définir la mise en œuvre dans un cahier des charges fonctionnel.

Dans de nombreux cas, il peut être pertinent de ne pas consigner uniquement les exigences par écrit, mais aussi sous forme graphique, en particulier lorsqu’il est nécessaire de décrire des systèmes, des processus et des cas d’utilisation. Pour ce faire, on utilise généralement des diagrammes UML.

Analyse des exigences

Après le recensement et la collecte des exigences, l’ingénieur de gestion des exigences doit les analyser. Les exigences contradictoires doivent être identifiées et clarifiées avec les parties prenantes. Par ailleurs, l’ingénieur doit recenser et évaluer les risques (évaluation selon l’ampleur potentielle des dommages et le degré de probabilité). Un classement des exigences par ordre de priorité doit également être effectué.

Il s’agit ensuite de présenter la documentation des exigences aux parties prenantes pour vérification. La mise en œuvre du projet ne pourra commencer que lorsque l’ensemble des parties prenantes se seront accordé sur un cahier des charges.

Gestion des modifications

La (quasi) totalité des projets inclut des modifications en cours de projet. Afin de réduire à un minimum les discussions sur les efforts supplémentaires nécessaires et, en cas d’insatisfaction du client, de pouvoir revenir à une version antérieure du projet, l’utilisation de versions s’est révélée utile. Issue du développement logiciel, cette méthode est également utilisée dans la gestion de projet. Elle consiste à documenter les versions du projet et à désigner les versions actuelles comme nouvelle base de travail. Il est ainsi possible de comparer facilement les exigences anciennes et actuelles.

Gestion des exigences dans les projets classiques et agiles

De nombreuses entreprises partent du principe qu’une gestion des exigences n’est pas nécessaire dans les projets agiles puisque les objectifs changent au fil du projet. C’est une erreur.

La majorité des tâches de la gestion des exigences sont reprises par le Product Owner dans les projets agiles. Il surveille et pilote le déroulement du projet ainsi que la mise en œuvre des exigences. Par ailleurs, il établit la priorité des exigences et assure la coordination des modifications. Ces tâches sont typiquement celles d’un ingénieur de gestion des exigences.

Lorsque le Product Owner n’est pas en mesure de gérer seul l’ensemble des tâches de la gestion des exigences, il est possible de nommer d’autres collaborateurs qui veilleront à la reprise des nouvelles exigences et tiendront à jour la documentation, par exemple des modifications.

Bien que la gestion des exigences soit moins conséquente dans les projets agiles, elle est tout aussi essentielle que dans les projets gérés de façon classique selon le modèle en cascade.