it-swarm.dev

Existe-t-il des alternatives majeures à Waterfall et Agile?

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 tous ceux qui ont fait part de leur expérience avec des alternatives.

35
Morgan Herlocker

Wikipedia les répertorie comme méthodologies/processus de développement :

  • Agile - basé sur un développement itératif et incrémentiel, où les exigences et les solutions évoluent grâce à la collaboration entre des équipes auto-organisées et interfonctionnelles .

  • Cleanroom - le processus de Cleanroom se concentre sur la prévention des défauts, plutôt que sur l'élimination des défauts.

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

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

  • RUP - Le Rational Unified Process (RUP) est un développement logiciel itératif adaptable cadre de processus, destiné à être adapté en sélectionnant les éléments du processus qui sont appropriés.

  • Spiral - combinant des éléments de conception et de prototypage en cours, dans un effort pour combiner les avantages de haut en bas et concepts ascendants. Ce modèle de développement combine les caractéristiques du modèle de prototypage et du modèle en cascade.
    spiral model diagram

  • Waterfall - séquentiel à travers les phases de Conception, Initiation, Analyse, Conception, Construction, Test et Maintenance.
    waterfall diagram

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

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

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

49
Peter Boughton

Cowboy Coding

Développement pur, non structuré, non géré, de forme libre. Il peut être utile pour les petits projets de loisirs qui n'ont pas de date limite ni même d'objectif clair, mais ne fonctionneront probablement pas dans un cadre d'entreprise.

20
Bruce Alderman

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 en cours, dans le but de combiner les avantages des concepts descendants et ascendants. Également connu sous le nom de 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 alt text

4
Ryan Hayes

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 sur quelques bières et pizzas. Snicker quand quelque chose semble phallique.

Confirmer

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

Code

Explicite.

1
Josh K

Cet argument Waterfall existe depuis un certain temps et a été utilisé très tôt par les leaders d'opinion agiles. Ils ont eux aussi rencontré la "réalité" de la cascade comme une "alerte rouge".

Lorsque vous commencez à travailler sur un projet de développement logiciel, vous découvrirez 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é.Depuis que la méthodologie Agile est si largement utilisée, il est important que vous compreniez les avantages et les inconvénients de l'agilité afin que vous puissiez déterminer s'il convient le mieux aux livrables de votre projet.

Le développement logiciel agile est un cadre conceptuel pour entreprendre des projets de génie logiciel.La plupart des méthodes agiles tentent de minimiser les risques en développant des logiciels dans des délais courts, appelés itérations, qui durent généralement une à quatre semaines. Chaque itération est comme un projet logiciel miniature qui lui est propre et comprend toutes les tâches nécessaires pour libérer le mini-incrément de nouvelles fonctionnalités: planification, analyse des exigences, conception, codage, test et documentation.

C'est un bon processus pour l'entreprise car il implique 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 satisfaits car ils trouvent qu'ils participent eux-mêmes au 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 mènera pas!
  • Création de cadres sans besoins clairs.
  • Surutilisation des fonctionnalités linguistiques (de manière inappropriée).
  • Pas de mentalité de test d'abord.

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

Kanban en tant qu'implémentation agile alternative

Développement logiciel Kanban

Développement logiciel Lean sur le cloud

1
Tony