El método espiral de desarrollo de Software

El método espiral de desarrollo de Software

El Método espiral no es tan conocido como otros modelos SDLC (Software Development Life Cycle) como Scrum  o Kanban porque es costoso y no funciona para proyectos pequeños.

En general es un modelo basado en riesgo, lo que significa que el éxito del proyecto depende de la fase de análisis de riesgo. Cualquiera al leer esto podría descartarlo como enfoque, pero el modelo espiral de desarrollo de Software tiene sus puntos fuertes únicos. Explicamos más al respecto a continuación. 

Qué es el modelo espiral

Es uno de los modelos de ciclo de vida de desarrollo de software más importantes, que proporciona soporte para la gestión de riesgos. Su nombre es dado debido a que en su representación esquemática parece un espiral con muchos bucles.

Cada proyecto tiene su propio número de bucles. Y por otro lado, cada ciclo de la espiral se llama Fase del proceso de desarrollo de software.

Entonces, este modelo se caracteriza por iterar repetidamente un conjunto de procesos de desarrollo elemental y eliminar el riesgo, por lo que se está reduciendo activamente. Todo el proceso de desarrollo pasa repetidamente por ciertas etapas. Cada iteración se llama espiral.

Fases 

Las cuatro fases principales son:

  1. Determinar objetivos
  2. Alternativas
  3. Restricciones
  4. Fase de planificación
  1. Determinar los objetivos

Al comienzo de cada fase, se deben identificar, elaborar y analizar los objetivos a partir de los requisitos de los clientes. Es así como los miembros del equipo intentan reunir los objetivos del producto, los requisitos (por ejemplo, las especificaciones de requisitos comerciales o BRS, las especificaciones de requisitos del sistema o SRS), las alternativas de diseño, etc. Luego, proponen las mejores soluciones posibles como alternativas para cumplir los objetivos. Para todo esto es necesario mantener la comunicación permanente entre el cliente y la gestión del proyecto.

  1. Alternativas

Durante esta fase se analizan todas las posibles soluciones y se evalúa cuál es la más satisfactoria. Seguidamente se identifican los riesgos asociados con la solución y se resuelven utilizando la mejor estrategia posible. Al finalizar esta fase, el prototipo debe estar construido para la mejor solución posible. 

Evaluar alternativas, identificar, resolver riesgos o la fase de análisis de riesgos es probablemente la etapa de desarrollo más importante. Los riesgos son posibles condiciones y eventos que impiden que el equipo de desarrollo cumpla sus objetivos. La tarea principal para el equipo de desarrollo es enumerar todos los riesgos posibles y priorizarlos según su importancia. Luego se deben determinar las posibles estrategias que pueden ayudar a superar los riesgos.

  1. Restricciones

También se le conoce como fase de ingeniería. Mientras el producto se planifica se desarrollan pruebas. En  la primera espiral, cuando los requisitos generales no son tan claros, se crea la llamada Prueba de concepto (POF por sus siglas en inglés) para obtener los comentarios del cliente. Luego en los siguientes espirales se puede desarrollar una versión funcional de un producto llamado build y enviarla al cliente para obtener una nueva y más detallada retroalimentación. Con este enfoque se puede obtener una mejor perspectiva de los requisitos. 

  1. Fase de planificación

También llamada fase de avaluación. Consiste en planificar las próximas fases y evaluar la salida del proyecto hasta la fecha antes de que el proyecto continúe a la siguiente espiral.El modelo espiral se llama metamodelo porque utiliza los modelos de Waterfall y prototipo. Pero es muy importante entender que el modelo espiral no es solo una secuencia de incrementos Waterfall, sino que es un modelo mucho más flexible. 

Puede parecer que todo en el proyecto sigue una secuencia espiral única, pero el ciclo de vida del proyecto de la vida real es más ágil y flexible que esta simple representación. Con este enfoque que es bastante reiterativo, incluso existe la posibilidad de revisar la decisión anterior. 

Ventajas y desventajas del modelo espiral

Ventajas

  • Este modelo permite el manejo de riesgo. Es una de las características que lo hacen más atractivo especialmente para administrar proyectos grandes y costosos. Además, este enfoque hace que el proyecto sea más transparente porque, por diseño, cada espiral debe ser revisada y analizada. Y finalmente, ese análisis y revisión constante hace que se puedan tratar los riesgos en cada fase.
  • Es un modelo especialmente ventajoso en proyectos grandes y complejos. 
  • El cliente puede ver el producto en funcionamiento en las primeras etapas del ciclo de vida del desarrollo de software. Esto garantiza la satisfacción del cliente. 
  • Hay flexibilidad en los requisitos porque las solicitudes de cambio se pueden incorporar con precisión mediante el uso de este modelo. 
  • El proyecto se puede separar en varias partes y se pueden evaluar los riesgos de cada una, lo que disminuye las dificultades de gestión.
  • Se pueden obtener estimaciones del proyecto en términos de cronograma, los costos se vuelven cada vez más realistas a medida que avanza el proyecto y se completan los bucles en espiral.
  • Este enfoque ofrece un fuerte control de la documentación. 

Desventajas

  • El monitoreo de riesgos requiere recursos adicionales, por eso es un modelo que se considera costoso. Cada espiral requiere experiencia específica, lo que hace que el proceso de gestión sea más complejo. En conclusión, el modelo no es recomendable para proyectos pequeños. 
  • Existe una gran cantidad de etapas intermedias, lo que se traduce en una gran cantidad de documentación.
  • La gestión del tiempo puede ser difícil. Por lo general, la fecha de finalización de un proyecto no se conoce en las primeras etapas.
  • El éxito del proyecto depende en gran medida del análisis de riesgo, por tanto, se requiere de una amplia experiencia y experimentación para no fracasar en el intento de implementar este modelo. 

Finalmente, recomendamos que el modelo de espiral sea usado en el tipo de proyectos para los que fue diseñado inicialmente. Es decir, proyectos donde el riesgo es medio o alto y los costos son altos, el cliente no está seguro de sus necesidades y los requisitos son complejos. También para todos los proyectos que esperan cambios significativos en el proceso. 

Más métodos y metodologías: