¿Hay alguna alternativa importante a Waterfall and Agile? [cerrado]


35

Tengo curiosidad por saber si alguien conoce alguna metodología que sea significativamente diferente (no una recombinación) y agradecería especialmente a cualquiera que haya presentado alguna experiencia con alternativas.

Respuestas:


47

Wikipedia enumera estos como metodologías / procesos de desarrollo :

  • Ágil : basado en el desarrollo iterativo e incremental, donde los requisitos y las soluciones evolucionan a través de la colaboración entre equipos autoorganizados y multifuncionales.

  • Sala limpia : el enfoque del proceso de sala limpia es la prevención de defectos, en lugar de la eliminación de defectos.

  • Iterativo : un proceso de desarrollo de software cíclico desarrollado en respuesta a las debilidades del modelo en cascada. Comienza con una planificación inicial y termina con el despliegue con las interacciones cíclicas en el medio.
    diagrama iterativo

  • RAD : utiliza una planificación mínima a favor de la creación rápida de prototipos. La "planificación" del software desarrollado utilizando RAD se intercala con la escritura del software en sí.

  • RUP : Rational Unified Process (RUP) es un marco de proceso de desarrollo de software iterativo adaptable, diseñado para ser seleccionado mediante la selección de los elementos del proceso que sean apropiados.

  • Espiral : combina elementos de diseño y creación de prototipos en etapas, en un esfuerzo por combinar las ventajas de los conceptos de arriba hacia abajo y de abajo hacia arriba. Este modelo de desarrollo combina las características del modelo de creación de prototipos y el modelo en cascada.
    diagrama de modelo en espiral

  • Cascada : secuencial a través de las fases de Concepción, Iniciación, Análisis, Diseño, Construcción, Pruebas y Mantenimiento.
    diagrama de cascada

  • Lean : una traducción de los principios y prácticas de Lean Manufacturing y Lean IT al dominio de desarrollo de software; todo lo que no agrega valor al cliente se considera desperdicio.

  • Modelo V : en lugar de moverse hacia abajo de forma lineal, los pasos del proceso se doblan hacia arriba después de la fase de codificación, para formar la típica forma de V. El modelo V demuestra las relaciones entre cada fase del ciclo de vida del desarrollo y su fase asociada de prueba.
    diagrama del modelo v

  • TDD : se basa en la repetición de un ciclo de desarrollo muy corto: primero, el desarrollador escribe un caso de prueba automatizado fallido que define una mejora deseada o una nueva función, luego produce código para pasar esa prueba y finalmente refactoriza el nuevo código a estándares aceptables.


Gracias por una respuesta tan clara y sucinta. Soy tan de la vieja escuela que nunca escuché muchos de los términos que se publican en P.SE.
Michael Riley - También conocido como Gunny

77
Gran lista, excepto TDD. Eso no es un ciclo de vida sino una práctica de desarrollo.
Michael

18

Codificación vaquero

Desarrollo puro, no estructurado, no gestionado y de forma libre. Puede ser útil para pequeños proyectos de pasatiempos que carecen de una fecha límite o incluso un objetivo claro, pero que probablemente no funcionen en un entorno corporativo.


2
¡Hurra! bang-bang!
mlvljr

3
"probablemente no funcionará en un entorno corporativo". Te dice! ;)
Bobby Tables

+1 Aaa, genial! A veces lo hago, pero no sabía cómo llamar a este "proceso" :)
Zzz

yeeee-haw padnah!
ybakos

En entornos corporativos formales maduros cierto. Sin embargo, en las pequeñas empresas puede haber un poco de mentalidad de "solo hacer".
JB King

4

El modelo espiral

El modelo en espiral es un proceso de desarrollo de software que combina elementos de diseño y creación de prototipos por etapas, en un esfuerzo por combinar las ventajas de los conceptos de arriba hacia abajo y de abajo hacia arriba. También conocido como el modelo de ciclo de vida en espiral (o desarrollo en espiral), es un método de desarrollo de sistemas (SDM) utilizado en tecnología de la información (TI). Este modelo de desarrollo combina las características del modelo de creación de prototipos y el modelo en cascada. El modelo en espiral está destinado a proyectos grandes, caros y complicados.

- Wikipedia texto alternativo


1

Plan

Siéntese con el cliente (o usuario final) y diseñe una serie de casos de uso.

Diseño

Diseñe el sistema en papel / pizarra con unas cervezas y pizzas. Ríete cuando algo parece fálico.

Confirmar

Confirme el diseño con el cliente (o usuario final) y congele los requisitos.

Código

Autoexplicativo.


Los "requisitos de congelación" son los más fáciles de decir que hacer.
Justin Schier

1

Este argumento de Waterfall ha existido por un tiempo y fue utilizado por los líderes de pensamiento ágiles desde el principio. También se encontraron con la "realidad" de la cascada como una "alerta roja".

Cuando comience a trabajar en un proyecto de desarrollo de software, descubrirá rápidamente que la metodología de desarrollo utilizada tendrá un papel importante en la velocidad y la calidad del código desarrollado. Dado que la metodología ágil es tan ampliamente utilizada, es importante que comprenda las ventajas y las desventajas de ágil para que pueda determinar si es la mejor opción para los entregables de su proyecto.

El desarrollo ágil de software es un marco conceptual para emprender proyectos de ingeniería de software. La mayoría de los métodos ágiles intentan minimizar el riesgo mediante el desarrollo de software en plazos cortos, llamados iteraciones, que generalmente duran de una a cuatro semanas. Cada iteración es como un proyecto de software en miniatura propio e incluye todas las tareas necesarias para liberar el mini incremento de la nueva funcionalidad: planificación, análisis de requisitos, diseño, codificación, pruebas y documentación.

Es un buen proceso para la empresa porque incluye al cliente en el proceso de desarrollo y lo hace responsable de la entrega del producto. Por otro lado, los clientes están contentos porque se encuentran a sí mismos participando en el desarrollo del producto.

Deméritos para Agile:

  • Agile está demasiado centrado en el programador, por lo que no está claro cómo equilibrar el trabajo en una organización.
  • Si no sabe a dónde va, ¡Agile no lo llevará allí!
  • Creación de marcos sin necesidades claras.
  • Uso excesivo de las características del lenguaje (inapropiadamente).
  • Sin prueba de mentalidad primero.

Bueno, para una metodología interesante que podría funcionar como una alternativa para AGILE puede verse mejor en estos 3 enlaces:

Kanban como implementación ágil alternativa

Desarrollo de software Kanban

Desarrollo de software ligero en la nube


3
Si no sabes a dónde vas, ¡la cascada no te llevará allí!
Eric Wilson
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.