web-dev-qa-db-fra.com

La méthodologie de développement du logiciel Waterfall est-elle toujours viable?

Dans mon expérience, il semble que le Modèle de cascade s'est révélé trop inflexible et non répondant aux besoins des exigences pour être considéré comme une méthode viable dans le monde moderne du développement de logiciels. La croissance et la trace éprouvée de méthodes d'itératif plus agiles, semble indiquer qu'il n'y a aucune raison pour que quiconque soit suivi d'un processus de blocs rigides qui suppose peu à aucune modification de la création de projet à la livraison des produits.

La méthodologie de développement de la cascade est-elle toujours viable pour la fourniture de systèmes logiciels, en ce qui concerne le temps, le coût et la qualité?

14
CFL_Jeff

Le modèle de cascade que vous faites référence n'a jamais été destiné à être un modèle de processus utilisé sur un projet réel. Au lieu de cela, c'est une paillette. Il identifie les phases et activités clés qui existent dans des projets logiciels et le flux le plus élémentaire entre eux. Cette simplification excessive de la manière de développer un logiciel est imparfaite et a même été présenté de cette façon.

De l'article Wikipedia:

La première description officielle du modèle de cascade est souvent citée comme article de 1970 de Winston W. Royce, bien que Royce n'utilisait pas le terme "cascade" dans cet article. Royce a présenté ce modèle comme exemple d'un modèle erroné et non fonctionnel.

Le document discuté est titré Gestion du développement de grands systèmes logiciels . Royce présente ce modèle sur la deuxième page. Cependant, le texte immédiatement inférieur à la représentation pictorale continue à lire:

Je crois en ce concept, mais la mise en œuvre décrite ci-dessus est risquée et invite l'échec.

Il suit ceci avec une discussion sur les problèmes d'essais à la suite de la "achèvement" de la phase de développement et de la manière dont les défaillances peuvent conduire à des refontes majeurs et à des changements de code et comment ceux-ci peuvent conduire à des dépassements importants du coût et de l'horaire. Dans tout le papier, il affine le modèle original à celui qui est vraiment viable sur un projet. En fin de compte, il finit par un modèle qui introduit le prototypage, l'interaction client et le raffinement des artefacts - des idées qui finiraient par être essentielles au mouvement agile qui a commencé à la fin des années 90 et au début des années 2000.

Pour répondre à votre question: La cascade que vous demandez n'est pas, et jamais, une méthode viable pour fournir des projets logiciels avec une qualité raisonnable de qualité à temps et à votre budget. Cependant, il existe d'autres méthodologies axées sur le plan qui sont contraires à l'opposé d'Agile qui peuvent et travaillent sur des projets.

20
Thomas Owens

Les gens n'utilisent pas le livre de texte modèle de cascade et probablement jamais.

C'est une construction théorique idéalisée dont le but est de vous faire penser aux étapes du développement des systèmes. C'est le point principal que vous voulez que les changements plus importants se produisent le plus tôt possible, car vous n'aurez jamais de temps ni d'argent pour faire un gros changement une fois qu'il y a beaucoup de code construit.

Malgré le fait que c'est plus un moyen de penser qu'un processus, c'est toujours la façon dont beaucoup - probablement la plupart des organisations vont à propos de la construction de logiciels (ou de maisons ou sous-marins, ou autre ...).

Dans le monde réel, vous n'avez pas de coupures totalement strictes entre les phases et vous revenez parfois à des phases antérieures pour de petits sous-projets. Ce que la méthodologie vous dit n'est pas que "ces choses ne sont pas autorisées". Ce qu'il vous dit, c'est "ces choses vous coûtent de l'argent et/ou du temps" - tortez donc d'éviter cela à l'avenir.

Tout va bien pour les snobs agiles (TM) de regarder leurs nez des développeurs "à l'ancienne" et de leur méthodologie de cascade pittoresque et inutilisable, mais le fait de la question est qu'Agile n'est pas de panacée non plus. Certains projets ne peuvent pas être construits à l'aide d'agiles et de nombreuses équipes qui pensent qu'Agile sont réellement bâclées et non organisées.

La méthodologie n'est pas le point. Le point est de Pensez à ce que vous faites et Pourquoi vous le faites de cette façon - et pour avoir le plus de valeur au client dans le client temps le plus court raisonnable.

9
Joel Brown

Le processus de cascade mythique qui est le plus souvent comparé contre Agile n'existait jamais et ne peut donc pas être considéré comme mort. De véritables processus de cascade sont toujours vivants et bien, et d'exceller à la livraison à temps sur le logiciel budgétaire qui répond aux attentes des utilisateurs.

8
Ryathal

Peut-être une meilleure façon de demander ce que vous obtenez est: "Quand est moins itératif et plus formel mieux?"

Il y a des situations où c'est le cas:

  • Lorsque les exigences ne changent pas.

  • Lors de la satisfaction de nouvelles exigences est moins importante que de frapper 100% des celles d'origine.

  • Lorsque toutes les composantes technologiques sont matures et bien comprises.

En un sens, vous pouvez prendre le contraire de ce qui pourrait vous conduire à être agile.

Très peu de techniques sont applicables partout. Très peu n'ont pas d'usage.

5
MathAttack

Oui, c'est très vivant, mais c'est aujourd'hui le plus courant " V modèle " qui est utilisé.

Dans les deux cas, le problème que Agile est que la solution ne finit presque jamais, le client peut continuer à demander des modifications et que le développement continuera de les résoudre de manière itérale. Pour un projet basé sur le temps et les matériaux coûtant, cela fonctionne très bien. Pour un projet qui a un coût fixe, ce n'est pas le cas.

Pour ces projets à coût fixe, le client attend presque toujours des jalons prédéfinis pour démontrer des progrès. Toutefois, ils sont plus de la variété écrite formelle plutôt que du code de travail. Pour les clients comme celui-ci, les spécifications écrites deviennent le projet, l'une des endroits où le développement logiciel est une contrepartie secondaire (au fur et à mesure qu'ils supposent, si vous avez un projet bien défini, le logiciel doit être facile à développer). Ces entreprises sont également celles qui utilisent de lourdes ressources de développement bon marché et externalisées.

Donc, si vous avez un pot fixe d'argent ou de temps, n'attendez pas que les exigences de modification ou ne sont pas autorisées à modifier des exigences et devraient fournir un ensemble de documents écrits, puis les modèles de cascade sont les seuls à ceux qui avoir du sens.

Agile peut être introduite au milieu de ces projets pour faire le développement, mais vous avez toujours une phase de ramification où les spécifications sont créées à partir des exigences et une phase de descente de la rampe où le logiciel est installé et testé in situ. Agile ne répond pas bien à ces cas.

3
gbjbaanb

À qui? La plupart des gestionnaires que j'ai traités avec toujours utilisent le processus de développement du logiciel de Waterfall pour la planification et les niveaux de niveau semblent l'aimer pour une planification facile.

Pratiquement, très peu de développeurs que je connais croyaient que cela fonctionne ou est même valable.

1
jwernerny