Ingénierie et Agilité

Alors que l’ingénierie permet de concevoir les bons produits dans le respect des coûts et des délais, l’agilité quant à elle favorise la conception rapide des produits, de manière itérative et incrémentale, en livrant en premier ce qui offre le plus de valeur aux utilisateurs.

L’ingénierie adresse un ensemble d’activités relatives à l’étude, l’analyse, la conception, le développement, l’intégration, la vérification et la validation de systèmes et de logiciels. C’est une approche rigoureuse et interdisciplinaire qui permet la livraison de produits de qualité. L’agilité c’est à la fois un état d’esprit (« mindset« ) et une nouvelle façon de concevoir des produits. Les deux ne sont pas incompatibles mais au contraire,  l’ingénierie et l’agilité doivent s’influencer mutuellement pour obtenir les meilleurs résultats.

L’ingénierie système (IS)

  • est une approche interdisciplinaire rassemblant tous les efforts techniques pour faire évoluer et vérifier un ensemble intégré de systèmes, de gens, de produits et de solutions de processus de manière équilibrée au fil du cycle de vie pour satisfaire aux besoins client (AFIS),
  • est à la fois une pratique et un processus :
    • pratique : l’IS offre une démarche robuste et structurée du développement de systèmes complexes, qui peut être appliquée au niveau du système et de ses constituants (sous-systèmes et composants),
    • processus ; l’IS privilégie une vue d’ensemble : les fonctions et le comportement global d’un système, les interfaces avec les utilisateurs et les autres systèmes, l’interaction des sous-systèmes et des composants.

L’ingénierie des exigences (IE)

  • est une composante importante de l’ingénierie système,
  • est un ensemble d’activités, de méthodes, de techniques et d’outils qui consiste principalement à établir et à maintenir un référentiel d’exigences propre à un produit,
  • est applicable quelque soit le mode développement d’un produit (en cascade, en V, itératif, incrémental, spirale, agile),
  • est présente sur tout le cycle de vie d’un produit (depuis sa définition jusqu’à son obsolescence),
  • est applicable à tout type de produit (système complexe, application SI, logiciel technique/embarqué/temps réel),
  • est une discipline basée sur des principes (séparation du domaine du problème et du domaine de la solution, …).

L’agilité

  • est la capacité pour une organisation à créer de la valeur et à ravir son client, tout en favorisant et en s’adaptant -à temps- aux changements de son environnement (Grosjean, 2011),
  • est un (nouveau !) mode de développement d’un produit,
  • est basée sur des valeurs et des principes (voir l’Agile Manifesto pour le développement de logiciel),
  • mise en œuvre au travers de pratiques (Scrum, Kanban, …) et de cadres (SAFe, …),
  • est facile à comprendre, mais difficile à mettre en œuvre !
  • est avant tout un état d’esprit !