Existe-t-il des alternatives majeures à Waterfall et Agile? [fermé]

35

Je suis curieux de savoir si quelqu'un connaît des méthodologies qui sont significativement différentes (pas une recombinaison) et j'apprécierais particulièrement ceux qui ont apporté une expérience avec des alternatives.

Morgan Herlocker
la source

Réponses:

47

Wikipedia les répertorie en tant que méthodologies / processus de développement :

  • Agile - basé sur un développement itératif et incrémental, où les exigences et les solutions évoluent grâce à la collaboration d'équipes multidisciplinaires auto-organisatrices.

  • Salle blanche - Le processus de la salle blanche met l'accent sur la prévention des défauts, plutôt que sur l'élimination des défauts.

  • Itératif - un processus de développement logiciel cyclique développé en réponse aux faiblesses du modèle en cascade. Cela commence par une planification initiale et se termine par un déploiement avec les interactions cycliques entre les deux.
    schéma itératif

  • RAD - utilise une planification minimale en faveur du prototypage rapide. La "planification" d'un logiciel développé à l'aide de RAD est liée à l'écriture du logiciel lui-même.

  • RUP - RUP (Rational Unified Process) est un cadre de processus de développement logiciel itératif adaptable, conçu pour être personnalisé en sélectionnant les éléments du processus appropriés.

  • Spiral - combinant des éléments de conception et de prototypage par étapes, dans le but de combiner les avantages des concepts descendants et ascendants. Ce modèle de développement combine les caractéristiques du modèle de prototypage et du modèle en cascade.
    diagramme de modèle en spirale

  • Chute d'eau - séquentielle à travers les phases de conception, d'initiation, d'analyse, de conception, de construction, de test et de maintenance.
    diagramme en cascade

  • Lean - une traduction des principes et des pratiques de fabrication lean et Lean IT dans le domaine du développement de logiciels; tout ce qui n’ajoute pas de valeur au client est considéré comme du gaspillage.

  • Modèle en V - Au lieu de descendre de manière linéaire, les étapes du processus sont recourbées vers le haut après la phase de codage, pour former la forme en V typique. Le modèle en V montre les relations entre chaque phase du cycle de développement et la phase de test associée.
    diagramme v-model

  • TDD - repose sur la répétition d'un cycle de développement très court: le développeur écrit d'abord un scénario de test automatisé défaillant qui définit une amélioration souhaitée ou une nouvelle fonction, produit ensuite du code permettant de réussir ce test et, finalement, reformule le nouveau code selon des normes acceptables.

Peter Boughton
la source
Merci pour cette réponse claire et succincte. Je suis tellement vieille école, je n'ai jamais entendu beaucoup de termes se faire jaser sur P.SE.
Michael Riley - AKA Gunny
7
Grande liste, sauf pour TDD. Ce n'est pas un cycle de vie mais une pratique de développement.
Michael
18

Codage cowboy

Développement pur, libre, non structuré, non géré. Cela peut être utile pour les petits projets de loisir ne disposant pas de délai ni d'objectif précis, mais ne fonctionnant probablement pas dans une entreprise.

Bruce Alderman
la source
2
Yay! Bang Bang!
mlvljr
3
"ne fonctionnera probablement pas dans un contexte d'entreprise". Vous dit! ;)
Bobby Tables
+1 Aaa, cool! Je le fais parfois, mais je ne savais pas comment nommer ce "processus" :)
Zzz
yeeee-haw padnah!
Ybakos
Dans les entreprises formelles et matures, il est vrai. Cependant, dans les petites entreprises, il peut y avoir un peu de mentalité de «juste se faire faire».
JB King
4

Le modèle en spirale

Le modèle en spirale est un processus de développement logiciel combinant des éléments de conception et de prototypage par étapes, dans le but de combiner les avantages des concepts descendants et ascendants. Également appelé modèle de cycle de vie en spirale (ou développement en spirale), il s'agit d'une méthode de développement de systèmes (SDM) utilisée dans les technologies de l'information (TI). Ce modèle de développement combine les caractéristiques du modèle de prototypage et du modèle en cascade. Le modèle en spirale est destiné aux grands projets coûteux et compliqués.

- Wikipedia texte alternatif

Ryan Hayes
la source
1

Plan

Asseyez-vous avec le client (ou l'utilisateur final) et concevez une série de cas d'utilisation.

Conception

Disposez le système sur du papier / tableau blanc au-dessus de quelques bières et pizzas. Snicker quand quelque chose a l'air phallique.

Confirmer

Confirmez la conception avec le client (ou l'utilisateur final) et gelez les exigences.

Code

Auto-explicatif.

Josh K
la source
"Exiger le gel" est le plus important jamais fait.
Justin Schier
1

Cet argument de la cascade a été utilisé pendant un certain temps et utilisé par les leaders d'opinion agiles dès le début. Eux aussi ont rencontré la "réalité" de la cascade comme une "alerte rouge".

Lorsque vous commencez à travailler sur un projet de développement logiciel, vous constaterez rapidement que la méthodologie de développement utilisée aura un rôle majeur à jouer dans la rapidité et la qualité du code développé. et les inconvénients de l’agilité, vous permettant ainsi de déterminer s’il s’agit de la solution la mieux adaptée aux résultats attendus de votre projet.

Le développement logiciel agile est un cadre conceptuel pour la réalisation de projets de génie logiciel. La plupart des méthodes agiles tentent de minimiser les risques en développant des logiciels dans des boîtes de temps courtes, appelées itérations, qui durent généralement de une à quatre semaines. Chaque itération est semblable à un projet logiciel miniature et comprend toutes les tâches nécessaires à la publication de la mini-incrémentation de nouvelles fonctionnalités: planification, analyse des exigences, conception, codage, tests et documentation.

C'est un bon processus pour l'entreprise car il inclut le client dans le processus de développement et le rend responsable de la livraison du produit. De l’autre côté, les clients sont contents car ils se retrouvent eux-mêmes impliqués dans le développement du produit.

Démérites pour Agile:

  • Agile est trop centré sur le programmeur, ce qui ne permet pas de savoir comment équilibrer le travail dans une organisation.
  • Si vous ne savez pas où vous allez, Agile ne vous y conduira pas!
  • Création de cadres sans besoins clairs.
  • Abus de fonctionnalités linguistiques (de manière inappropriée).
  • Pas de mentalité test-first.

Bien pour une méthodologie intéressante qui pourrait fonctionner comme une alternative pour AGILE peut être mieux vu sous ces 3 liens:

Kanban comme implémentation alternative agile

Développement de logiciels Kanban

Développement de logiciels allégés sur le cloud

Tony
la source
3
Si vous ne savez pas où vous allez, la cascade ne vous y conduira pas!
Eric Wilson