Ressources
- https://www.youtube.com/watch?v=NP9AIUT9nos - Moment marquant 11:53
- The Myth of the âWaterfallâ SDLC
- Dr. Royce and Waterfall
- Explication des 5 Ă©tapes du document de Royce
Dans cette section nous allons revenir sur le fonctionnement de la mĂ©thode Waterfall au travers de lâaffirmation suivante.
Affirmation
Waterfall est itératif
Pourquoi cela est surprenant ?
PremiÚrement définissons ce que signifie Itératif
Avec le dĂ©veloppement itĂ©ratif, nous rĂ©servons du temps pour amĂ©liorer ce que nous avons. â On refait. (voir Cycle de vie - itĂ©ratif)
Cela devrait pour surprendre car traditionnellement on prĂ©sente le modĂšle en cascade comme une mĂ©thodologie de travail avec un enchaĂźnement de tĂąche successive, ce qui conduit Ă un effet tunnel; Chaque phase ne commence quâune fois les rĂ©sultats de la phase prĂ©cĂ©dente validĂ©s.
Et on ne se rend compte uniquement lors de la livraison que le travail rĂ©alisĂ© nâest pas forcĂ©ment en adĂ©quation avec les spĂ©cifications du client.
Juste en dessous de cette figure 2, nous pouvons lire
Note importante
I believe in this concept, but the implementation described above is risky and invites failure. The problem is illustrated in Figure 4.
Mais revenons au document de référence
Ressources
LâĂ©tude du modĂšle en Cascade sâarrĂȘte souvent Ă la conclusion du paragraphe prĂ©cĂ©dent. NĂ©anmoins si nous lisons le document dâorigine nous nous rendons vite compte que le modĂšle en Cascade nâest pas celui souvent dĂ©crit.
Dans son article fondateur, W.W. Royce critique le modĂšle en cascade. Il remarque que chaque phase doit pouvoir nĂ©cessairement renvoyer Ă la phase prĂ©cĂ©dente en cas de dĂ©fauts constatĂ©s en aval. En effet, les exigences et besoins peuvent se montrer incomplets ou de qualitĂ© insuffisante (ambiguĂŻtĂ©, incohĂ©rence, etc.). De plus, le client peut ne pas ĂȘtre pleinement conscient de ses exigences avant dâavoir vu le logiciel fonctionner.
Mais nâimpacter que la phase du dessus nâest pas forcĂ©ment le plus efficace. Il illustre ces propos avec lâexemple suivant :
La phase de test qui a lieu Ă la fin du cycle de dĂ©veloppement est le premier Ă©vĂ©nement pour lequel par exemple la synchronisation, le stockage, les transferts dâentrĂ©e/sortie, etc. sont expĂ©rimentĂ©s et non analysĂ©s. Pourtant, si ces phĂ©nomĂšnes ne parviennent pas Ă satisfaire les diverses contraintes externes, une refonte majeure est invariablement nĂ©cessaire. Un correctif uniquement du code (phase prĂ©cĂ©dente) nâest pas suffisante, les changements de conception requis risquent dâĂȘtre si perturbants que les exigences logicielles sur lesquelles la conception est basĂ©e et qui justifient tout seront violĂ©es.
Nous avons donc des impacts forts entre le test â le code â lâanalyse. Les itĂ©rations ne sont donc pas cantonnĂ©es uniquement Ă la phase prĂ©cĂ©dente.
Mais cette boucle de feedback peut conduire Ă une refonte complĂšte de lâensemble du systĂšme et Ă un dĂ©passement total des dĂ©lais et du budget. Pour Ă©viter une nouvelle conception, Royce introduit une Ă©tape supplĂ©mentaire, la conception prĂ©liminaire du programme, avant lâanalyse. Le concepteur du programme travaille alors avec les analystes pour dĂ©tecter toute consĂ©quence des choix de conception du programme.
Durant cette phase, on va se concentrer sur la crĂ©ation dâune petite partie du systĂšme.
- Si nous souhaitons faire une refonte vers une architecture microservices nous allons essayĂ© dâen faire un avant de tout basculer.
- Si nous souhaitons mettre en place des API REST, nous allons faire de mĂȘme essayer sur une petite partie du systĂšme de rĂ©aliser les Ă©tapes
Conclusion
Finalement, on peut rĂ©sumer lâensemble de modĂšle en Cascade avec le schĂ©ma suivant
Waterfall est itératif :
Et nous pouvons donc bien dire que Waterfall est itĂ©ratif car nous revenons sur les phases prĂ©cĂ©dentes pour amĂ©liorer notre logiciel (avant quâil soit trop tard et trop coĂ»teux).