2008-10-31 106 views
18

Creo que Agile no es más que otra implementación de Spiral Model. Soy un gran defensor de Spiral (el modelo espiral es un proceso de desarrollo de software que combina elementos de diseño y creación de prototipos en etapas, en un esfuerzo por combinar las ventajas de los conceptos descendentes y ascendentes) desde sus comienzos y lo he visto ese montón de proyectos implementan Spiral sin saber que están operando en un mundo Espiral. Desde el día en que Agile comenzó a ganar popularidad, el concepto de espiral comenzó a pasarse por alto un poco. Estoy seguro de que para proyectos complejos, la espiral sigue siendo la mejor alternativa, pero me gustaría obtener una mejor comprensión de las similitudes y diferencias entre las técnicas Agile y Spiral. ¿Alguien puede explicar sus diferencias/similitudes?Agile Vs Spiral Modelo para SDLC

+3

voy a votar a cerrar esta pregunta fuera del tema porque es sobre la metodología, no la programación. – EJoshuaS

Respuesta

35

Agile es espiral. Totalmente. En parte, el nombre fue cambiado con fines de comercialización.

El problema es que la espiral tiende a implicar un "gran diseño por adelantado", donde planifica muchas espirales, cada una en orden de importancia. La espiral, sin embargo, no es ágil: es solo una ejecución incremental por orden de riesgo.

Una gran distinción que Agile agrega es la de "no sobreescribir las cosas que aún no puedes saber". Agile es espiral, pero se crean planes detallados para solo uno incremento a la vez.

Agile agrega muchas otras cosas, también. La espiral es un enfoque muy técnico. Ágil, sin embargo, reconoce que la tecnología está construida por personas. El Agile Manifesto tiene cuatro principios que van más allá del simple enfoque de gestión de riesgos de Boehm.

+0

Creo que te estoy siguiendo. Gracias por compartir el conocimiento – Chanakya

+1

No creo que Agile == spiral. Ágil es un subconjunto del modelo espiral que utiliza espirales muy cerradas: una espiral (un sprint en Scrum, a veces llamado iteración) sería de 2 semanas. En un modelo de espiral genérico, puede tener espirales que duran meses o incluso años (la longitud no fue especificada por Barry Bohem) mientras que las metodologías ágiles recomiendan espirales cortas. –

+0

@Thomas Owens: No recibo su comentario. Si Agile es una espiral con espirales cortas, entonces es espiral, ¿verdad? –

0

First Agile es en realidad una serie de procesos diferentes que siguen una filosofía similar. Una de las filosofías que lo hace diferente es que cada iteración produce un producto que funciona. Podría describirse como iterativo e incremental. Se pone mucho énfasis en el producto de trabajo y en las pruebas. En muchos modelos ágiles las pruebas vienen antes de la codificación.

En el modelo en espiral, el número de iteraciones es fijo, mientras que cada fase de un modelo ágil puede constar de cualquier cantidad de iteraciones.

Tiene razón en que hay similitudes, pero la filosofía subyacente marca la diferencia. Este page explica con más detalle y compara ágil a otros métodos.

Puede decir que los procesos ágiles son casos de uso impulsados ​​... poniendo mucho énfasis en las personas, el usuario final.

12

La diferencia básica, como yo lo veo, es que la mayoría de los modelos de desarrollo en espiral aún insisten en un diseño grande y por adelantado. El énfasis está en saber todo lo que pueda sobre cómo se usará el sistema; descubriendo todos los casos de uso. Una vez que los conoce, diseña el sistema y descomponerlo en fases que siguen un ciclo iterativo de diseño de detalle, implementación, prueba y refactorización. En Agile, hay una planificación inicial, tal vez recopilación de grandes conocimientos de granos (títulos de historias), para poder describir versiones razonables, pero cada lanzamiento se planifica de forma independiente y demoramos el descubrimiento de los detalles hasta que estemos listos para comenzar. implementación de esa versión. Esperamos un cambio y no intentemos saber todo primero.

Otra cosa que difiere es que la mayoría de las filosofías ágiles implican métodos de "prueba primero". Esto es diferente de la espiral, donde las pruebas a menudo son una actividad en sí misma y las pruebas no se desarrollan antes del código. En la mayoría de los casos, se planifican con antelación, pero se desarrollan en paralelo o después de la codificación. Muchos métodos ágiles insisten en desarrollar pruebas primero como la especificación para el código.

Son similares en cuanto a que son iterativos. Difieren en la implementación y la comprensión de lo que es una iteración.

1

No soy un experto para el Modelo en espiral, pero de la definición de wikipedia, me parece que hay algunas diferencias significativas.

Por ejemplo, en un proyecto Agile, al final de una iteración no sobresale un prototipo, sino un sistema completamente funcional, totalmente probado y potencialmente desplegable (1) que contiene las características de mayor prioridad en la lista de características.

Los requisitos que se recopilan al inicio del proyecto solo son apenas suficientes para comenzar (para dar el siguiente paso) y se deben completar poco antes de que realmente se implementen. Los cambios son a los requisitos son bienvenidos.

Además, hay mucho más en Agile que el desarrollo iterativo: un enfoque en la conversación cara a cara en lugar de la comunicación escrita, un enfoque en reunir a personas de negocios y técnicos en su trabajo diario. Un enfoque para maximizar el valor de forma colaborativa en lugar de definir y luego cumplir un contrato.

En caso de que no lo haya visto aún, eche un vistazo a Agile Manifesto, que básicamente es la definición de Desarrollo de software ágil.

(1) Eso no quiere decir que tenga que hacer business sense para implementar el sistema, "solo" que es técnicamente posible. Debe ser una decisión comercial pura si desplegar el sistema al final de una iteración.

+0

Gracias por compartir el conocimiento. Creo que para los proyectos más grandes es difícil producir algo 100% desplegable al final de la iteración, teniendo en cuenta la confiabilidad de ciertas entidades en aplicaciones complejas. – Chanakya

+0

No es cierto ... Yo diría que tal vez no haya pasado el tiempo suficiente para buscar bloques más pequeños que sean realmente utilizables y entreguen valor comercial. No es necesario construir un mamut monolítico para poner en marcha el circuito de retroalimentación. – Gishu

+0

Bienvenido a SO Ilja;) Pasé un tiempo en los ágiles foros de Ron. – Gishu

1

Diría que espiral y ágil son similares. Sin embargo, últimamente ágil a menudo se ha convertido en un sistema de propaganda para excusar la codificación de vaquero. Es decir.

  • requisitos mínimos extremadamente
  • análisis técnico mínimo
  • documentación mínima
  • Sin comentarios de código
  • Bonus-- Especial mal uso de dominio determinadas por el diseño a un exceso de complicar el modelo de objetos

Esta nunca fue la idea con espiral. Yo diría que tampoco es realmente el objetivo de Agile, aunque te sorprenderías cuántas veces lo he visto recientemente. Cada vez más desarrolladores/PM experimentados están empezando a ver la sabiduría de un enfoque más equilibrado entre cascada y "ágil"; quizás esto simplemente nos devuelve a la espiral.

Aunque hay algunas ideas útiles en el espacio mental ágil, a menudo parece como si se manifestara de personas que estaban en organizaciones que tenían metodologías de diseño de software particularmente sobrecargadas/inútiles, y era una reacción/sobre- reacción a eso.

+0

Las viñetas que enumeró no son inherentes a Agile, sino que son indicativas de productos de trabajo deficientes y (probablemente) liderazgo deficiente. – ntwrkguru

1

Creo que Agile es un tipo de Iterative SDLC mientras que el espiral es un tipo de SDLC incremental. Scrum es uno de los tipos de Agile. Otros son DSDM/FDD/XP, etc. Todos los SDLC después de cascada siguieron el mismo conjunto de acciones (Análisis de requisitos, Diseño, Codificación y Pruebas) en algunas combinaciones diferentes. Por lo tanto, el conjunto de acciones básicas en secuencia O Iterativo O incremental son las mismas.

En lo que se refiere a Agile y Spiral, ambos tienen una ventaja en común 1.Cambiando el manejo comunicados 2.Short plazo gestión 3.Risk es fácil debido al requisito de duración más corta de SDLC equipo 4.Cross ayuda del producto y proyecto en marcha suave

Cuestiones relacionadas