Requirements Engineering : 5 bonnes raisons de s'y mettre

Comment un bon logiciel peut-il voir le jour sans comprendre les besoins des parties prenantes ? Tout projet de développement logiciel devrait être guidé par une ingénierie des exigences professionnelle, affirme Michael Mey, qui nous donne 5 bonnes raisons pour appuyer ses propos.

Auteur Michael Mey
Date 28.09.2022
Temps de lecture 7 Minutes

Le Requirements Engineering, qu’est-ce que c’est ? Et pourquoi vaut-il la peine de l’intégrer aux projets de développement ? Des questions courantes parmi certains clients ou prestataires de services.

En pratique, c’est plutôt courant que ces deux parties négligent la thématique du Requirements Engineering et ne le voient que comme fardeau et inducteur de coûts.

La rédaction d’un appel d’offres par le client devrait déjà faire partie d’une analyse des exigences. En effet, un appel d’offres sans description des exigences a relativement peu de valeur.

Mais avant de se pencher plus en détail sur l’utilité du Requirements Engineering, il convient de préciser ce que ça signifie vraiment.

 

Le Requirements Engineering, qu’est-ce que c’est ?

Le concept de « Requirements Engineering » (RE) vient de l’anglais : « Requirements », qui signifie exigences, et « Engineering », le développement ou la construction. En français, on utilise couramment l’appellation ingénierie des exigences. On parle aussi parfois de gestion des exigences.

L’ingénierie des exigences consiste à évaluer, spécifier, valider et gérer systématiquement les exigences. C’est donc une part essentielle du développement de systèmes, produits et logiciels.

 

Quelles sont les bonnes raisons de recourir à l’ingénierie des exigences ?

Le but de l’ingénierie des exigences est la production de logiciels et de produits orientés sur la clientèle :

  • Du point de vue de la clientèle, le but est d’obtenir la plus grande utilité possible.
  • Les fonctionnalités essentielles désirées ou attendues par les clients, utilisateurs et parties prenantes les plus importants doivent être observées.
  • Dans le même temps, les fonctionnalités non désirées ou superflues devraient être évitées.
  • Au final, une ingénierie des exigences soignée réduit les coûts de développement en évitant une évolution négative.
  • Un bon RE peut aussi contribuer à un meilleur respect des délais et des coûts.

Il faut néanmoins noter que les conditions de développement, les souhaits en matière de fonctions, les signes d’enthousiasme, les objectifs, mais aussi les normes et les lois peuvent souvent changer au cours de la période de développement.

Cela signifie que l’ingénierie des exigences est une discipline qui s’étale dans la durée, plutôt qu’une tâche isolée au sein d’une phase de projet définie.

En raison de la complexité toujours croissante de notre monde moderne se dessine une nette tendance à s’éloigner des modèles d’approche classiques et à les remplacer par des modèles agiles.

 

Quelles sont les tâches d’un(e) ingénieur(e) des exigences ?

Je vais ici m’appuyer sur la définition de l’IREB® (International Requirements Engineering Board). L’IREB® est une organisation à but non lucratif et un comité d’experts de renommée mondiale certifiant les professionnels en ingénierie des exigences. L’IREB® recense six tâches et responsabilités centrales en ingénierie des exigences :

  • Recueillir les exigences
  • Analyser les exigences
  • Spécifier les exigences
  • Documenter les exigences
  • Contrôler les exigences
  • Gérer les exigences

 

Comment mesurer la qualité des exigences ?

La qualité en ingénierie des exigences se reflète directement dans la qualité des exigences mêmes. La qualité de ces dernières peut être mesurée selon divers attributs, comme, entre autres :

  • Exhaustif (ne rien omettre d’essentiel)
  • Exacte (coordonnée avec toutes les parties prenantes)
  • Intelligible (pour toutes les parties prenantes)
  • Univoque (précis, sans interprétation ambiguë possible)
  • Cohérent (pas de contradictions)
  • Structuré (structuré de manière pertinente)
  • Isolé (saisis individuellement plutôt que regroupés)
  • Contrôlable (vérifiable à l’aide d’un test)

Ce dernier attribut, « contrôlable », renvoie à une autre discipline importante en termes de qualité. En effet, les exigences servent aussi de critère d’acceptation lors du test informatique (testing).

 

Quels sont les avantages économiques de l’ingénierie des exigences ?

D’un point de vue économique, l’ingénierie des exigences n’a qu’un impact indirect, par exemple la réduction des coûts de développement et de maintenance ou l’augmentation de la satisfaction de la clientèle.

Selon des études des instituts d’études de marché Forrester Research et Meta Group Research, 60% à 80% des échecs de projets sont imputables à une ingénierie des exigences inexistante ou de mauvaise qualité.

C’est pourquoi la spécification des exigences est une tâche critique et ardue qui doit être abordée de manière professionnelle.

L’ingénierie des exigences aide à reconnaitre de nombreuses erreurs dès la phase de conception, qui sinon nécessiteraient de grands frais pour être résolues. Les avantages de l’ingénierie des exigences ne peuvent donc pas être niés, même s’il n’est pas possible de les chiffrer précisément.

Get ahead, get IREB® certified

Grâce à nos cours pratiques, apprenez à recenser les exigences de manière systématique et standardisée avec IREB®. Nous vous préparons idéalement aux certifications internationalement reconnues :

  • IREB® Certified Professional for Requirements Engineering – Foundation Level
  • IREB® Certified Professional for Requirements Engineering – Agile Primer

Grâce à nos cours pratiques, apprenez à recenser les exigences de manière systématique et standardisée avec IREB®. Nous vous préparons idéalement aux certifications internationalement reconnues :

  • IREB® Certified Professional for Requirements Engineering – Foundation Level
  • IREB® Certified Professional for Requirements Engineering – Agile Primer

A propos de l'auteur

Michael Mey

Michael Mey est cofondateur d’Obvious Works, spécialisée en coachings, conseils et formations dans le domaine de l’agilité. Au cours de sa carrière de plus de 15 ans, il s'est familiarisé avec le développement de logiciels dans de grandes entreprises internationales de l'industrie financière, où il a occupé différents rôles : développeur, expert en science des données, analyste d’affaires, technical lead, chef de projet, product manager et chef de service. Les thèmes de l'ingénierie des exigences et de Scrum l'ont ainsi toujours accompagné depuis de nombreuses années. De plus, Michael se passionne pour le markéting numérique et la blockchain. En tant que cofondateur de twire, il a construit des projets de Web3 dans le domaine des DAO et des NFT. Twire compte principalement parmi sa clientèle des entreprises traditionnelles établies souhaitant entrer dans le monde de la cryptographie suivant une analyse de rentabilisation. Michael est diplômé en informatique (HES) et a étudié l’informatique générale à Furtwangen et Prague (majeures : réseaux et intelligence artificielle).