0 - É L E M E N T S F O N D A M E N T A U X
1- I N I T I A L I S A T I O N
2 - P L A N I F I C A T I O N
3 - E X É C U T I O N
4 - M A Î T R I S E
5 - C L Ô T U R E

2.4 Définir le cycle de vie du développement

Cycle de vie

Cette section explique et définit les principaux types de cycles de vie de développement utilisés pour créer une solution issue d’un projet : cycles de vie ou approches prédictives – Approches itératives – Approches incrémentales – Approches agiles.

Le cycle de vie d’un projet fait référence à l’ensemble des phases ou itérations dans lesquelles un projet est organisé. En fonction de la structure et du type de produit à développer, différents types de cycle de vie de projet peuvent être définis :

  • Les cycles de vie prédictifs définissent les exigences du produit et le contenu à livrer dans le cadre de la planification du projet. Les changements sont des exceptions au plan.
  • Les cycles de vie itératifs et incrémentaux améliorent ou étendent progressivement le produit permettant une définition progressive des exigences.
    • Une approche itérative améliore progressivement le contenu en recueillant des commentaires avant de passer à l’itération suivante.
    • Une approche incrémentale ajoute des fonctionnalités une par une, en terminant chacune à chaque itération.
  • Les cycles de vie Agile sont à la fois itératifs et incrémentaux.

Illustrons cela avec un exemple

Solution Prédictive

Supposons qu’un projet soit lancé pour combler ce nid-de-poule. Si nous connaissons les dimensions exactes du nid-de-poule et que les exigences peuvent être établies, alors le travail à effectuer est prévisible. Cela commence par [les dimensions – les exigences – la conception – la préparation du moule – la mise en place du béton – la finition du bloc – le remplissage du nid de poule]. C’est ce qu’on appelle l’approche en cascade ou approche prédictive. Cela ne fonctionne que si toutes les exigences sont connues et clairement comprises au début. Si nous ne connaissons pas les dimensions du nid-de-poule, cela devient un problème complexe.

Solution itérative

Dans le même exemple, supposons que vous ne connaissez pas les dimensions du nid-de-poule, donc vous décidez de ciseler la forme pour combler le vide, vous continuez à affiner la forme en la découpant, et en la coupant encore et encore jusqu’à ce qu’elle s’adapte, dans le nid de poule. Vous affinez par itérations jusqu’à ce que le bloc sculpté s’intègre parfaitement dans le nid de poule. Par conséquent, même si vous ne connaissez pas les dimensions ou les exigences, vous pouvez combler le vide avec plusieurs itérations. C’est ce qu’on appelle l’approche itérative.

Solution incrémentale

Maintenant, résolvons ce problème complexe d’une autre manière encore. Vous pouvez créer un bloc de béton et le livrer au client. Le client place ce bloc de béton dans le nid de poule et vous donne son avis sur les parties restantes du nid de poule non remplies. Vous créez plus de blocs incrémentaux en fonction des commentaires et continuez à remplir le nid de poule. C’est ce qu’on appelle l’approche incrémentale.  Dans ce cas, le client n’attend pas la fin du projet pour obtenir de la valeur. Au lieu de cela, le client peut commencer à utiliser les incréments et continuer à fournir des commentaires jusqu’à la fin du projet. Par conséquent, même si vous ne connaissiez pas les dimensions de départ, vous pouvez combler le vide en utilisant une approche incrémentale.

Solution agile

C’est une autre façon intelligente de gérer le problème complexe lorsque les exigences sont inconnues au début. Dans ce scénario, vous n’avez absolument aucune idée de la taille du nid-de-poule. Dans ce cas, vous décidez de livrer des briques plus petites. Grâce aux commentaires continus des clients, vous pouvez fournir de petites briques de taille et de forme appropriées. Certaines des briques doivent être ciselées pour mieux s’intégrer dans le nid de poule et le client vous indique si cette retouche d’une brique déjà livrée doit être effectuée maintenant ou plus tard, car parfois le client considère qu’il est plus important de mettre en place de nouvelles briques, au lieu d’en perfectionner une qui ne cadrait pas bien après la première livraison. Le client décide. Par conséquent, cette approche est à la fois incrémentale et itérative. Il s’agit d’une approche intelligente lorsque vous avez trop d’inconnues et / ou d’exigences peu claires. C’est ce qu’on appelle l’approche Agile qui est itérative et incrémentale.

Résumé intermédiaire

Nous avons vu l’approche prédictive, l’approche itérative, l’approche incrémentale et l’approche Agile. Nous espérons que cette méthode graphique vous aidera à vous souvenir des différents types de cycle de vie que vous pouvez utiliser pour développer votre solution.

Exemple de système en ligne

Maintenant, utilisons ces informations et appliquons-les à l’exemple de notre solution en ligne « pour augmenter la transparence des transactions ».

Cycle de vie prédictif (également appelé « cascade »)

Lorsque toutes les exigences sont connues et clairement comprises au début du projet, nous pouvons suivre une approche prédictive. Nous exécutons les phases du projet dans l’ordre et livrons une solution en ligne complète à la fin.

Cycle de vie itératif

Lorsque les exigences ne sont pas connues au départ, nous pouvons adopter l’approche itérative. Cela commence par la création d’une solution en ligne complète pour tous les produits, une conception de base et des ébauches de fonctionnalités souhaitées. Nous continuons à affiner, à ciseler la solution en ligne dans les itérations suivantes jusqu’à ce que le produit final soit prêt.

Il pourrait y avoir des avantages à travailler, simultanément sur la conception de tous les processus impliqués et considérés dans leur ensemble, et à repenser les comptes clients et les fonctionnalités de facturation du système comptable tout en travaillant sur le système de gestion logistique pour s’assurer du début à la fin que tout est intégré et s’emboîte.

L’approche itérative consiste à rassembler progressivement les exigences et à affiner l’ensemble du produit de manière itérative jusqu’à ce que toutes les exigences du client soient satisfaites. Vous travaillez sur le tout, progressivement et en même temps.

Cycle de vie incrémental

Maintenant, utilisons l’approche incrémentale pour traiter ce même exemple. Nous fournirons un système en ligne fonctionnel avec des capacités de travail limitées, importantes mais complètes. Par exemple, nous implémenterons une visibilité complète de tous les statuts d’un produit ou d’une ligne de produits avec des caractéristiques similaires et le client pourrait commencer à l’utiliser plus tôt, sans attendre que tous les produits migrent vers la nouvelle méthode de suivi des transactions. Cela s’appellerait le premier incrément. Ensuite, nous ajoutons les nouvelles fonctionnalités à d’autres produits ou gammes de produits. Chaque incrément pourrait également avoir certaines fonctionnalités pour les produits sélectionnés et l’incrément suivant plus de fonctionnalités pour les mêmes mais pas tous les produits. Par exemple, dans un incrément, un statut pourrait être « en route vers vous » tandis que le prochain incrément afficherait des détails supplémentaires sur le statut « en route vers vous » dans « expédié de notre stock » sur le « centre de distribution principal du transitaire » sur le « centre de distribution régional » de votre région, sur la « voie de votre domicile » et un statut final « livré ».

L’équipe continuerait ainsi d’ajouter des fonctionnalités ou des produits au contenu,  sous forme d’incréments jusqu’à ce que le produit final soit livré. De cette manière, le produit final est livré par incréments multiples.

Approche agile

Si vous utilisiez les deux, une approche itérative et incrémentale, vous utiliseriez un cycle de vie Agile.

Ici, nous fournirons un système en ligne fonctionnel avec des capacités de travail limitées, importantes mais complètes que le client peut commencer à utiliser, comme expliqué ci-dessus dans l’approche incrémentale. C’est ce qu’on appelle le premier incrément. Ensuite, nous continuons à ajouter de nouvelles fonctionnalités ou des produits supplémentaires sous forme d’incréments. Il continue jusqu’à ce que le produit final soit livré. Dans ce cas, nous fournissons de nouvelles fonctionnalités ou couvrons des produits supplémentaires par incréments. C’est l’aspect incrémental de l’agilité.

Le client décide à chaque itération de continuer avec de nouvelles fonctionnalités ou de nouveaux produits (incrémental) ou d’affiner certaines ou plusieurs des fonctionnalités déjà fournies pour les produits couverts (itératif).

Le client répond à de nouvelles exigences grâce à de multiples livraisons itératives et incrémentielles.

Les itérations et les incréments se poursuivent jusqu’à ce que le produit final soit prêt.

Le produit final ne sera jamais prêt à l’exemple de Windows 10 qui reçoit une nouvelle version deux fois par an.

De cette façon, l’équipe projet peut s’adapter aux exigences initiales inconnues ou changeantes.

Cependant, tous les produits ne sont pas livrables par incréments et tous les produits ne sont pas durables s’il y a de nombreux changements, en particulier dans les dernières phases du cycle de vie du développement. En règle générale, les éléments physiques sont moins éligibles aux approches progressives. En plus il y a des articles de fabrication et de production à grande échelle, où procéder par incrément est moindre

Résumons en regardant à nouveau les graphiques décrivant l’approche prédictive, l’approche itérative, l’approche incrémentale et l’approche Agile.