Passer au contenu principal

Modèle en spirale

 

El desarrollo o modelo en espiral es un enfoque de desarrollo de software que puede ser considerado como una respuesta a los inconvenientes del desarrollo en cascada. El modelo en espiral describe el ciclo de vida de un software a través espirales, que se repiten hasta que se puede entregar el producto concluido. El desarrollo en espiral además se conoce como desarrollo o modelo incremental. El producto se trabaja continuamente y las mejoras muchas veces disponen lugar en pasos muy pequeños.

Una característica clave del desarrollo en espiral es la minimización de los riesgos en el desarrollo de software, lo que podría resultar en un incremento de los costes totales, más esfuerzo y un lanzamiento retardado. Estos riesgos son contrarrestados por el enfoque incremental, haciendo primero prototipos, que posteriormente pasan al menos una vez, por las fases de desarrollo de software. El desarrollo en espiral es genérico y puede combinarse con otros métodos de desarrollo clásicos y ágiles, por lo que además se denomina modelo o desarrollo de segundo orden.

Informations générales

le desarrollo en espiral fue propuesto por Barry W. Boehm en su ensayo «A Spiral Model of Software Development and Enhancement.» En ese momento, el modelo de desarrollo en cascada prevalecía, por lo que los inconvenientes asociados fueron discutidos a menudo. A diferencia de otros modelos como «code and fix» o el «modelo cascada», el desarrollo en espiral está basado en el riesgo. La identificación y resolución de riesgos juega un papel importante en las distintos espirales del proyecto una vez definidos los objetivos y condiciones. El enfoque se centra en los posibles factores que pueden causar incertidumbres para el software o para todo el proyecto. Según el supuesto, si los riesgos pueden ser controlados de una manera rentable, no existen nada que impida la finalización exitosa del proyecto. Los enfoques para minimizar estos riesgos son, por ejemplo, prototipos, simulaciones, pruebas de referencia o entrevistas con los usuarios. Para ciertos tipos de riesgos, todo el proceso puede inclusive ser revisado y estructurado de manera distinto. La intervención de la gerencia o management es viable en cada etapa del proyecto y pueden adaptarse otros enfoques de desarrollo.

Comment ça marche

El modelo de desarrollo en espiral se caracteriza por los siguientes ciclos (además cuadrantes):[1]

  • Objetivo y determinación alternativa: Los objetivos se determinan conjuntamente con el cliente. A la vez, se discuten posibles alternativas y se especifican las condiciones marco (por ejemplo, sistemas operativos, entornos y lenguajes de programación).
  • Análisis y evaluación de riesgos: Se identifican y evalúan los riesgos potenciales. Además se evalúan las opciones existentes. Los riesgos son registrados, evaluados y posteriormente reducidos usando prototipos, simulaciones y softwares de análisis. En este ciclo, hay varios prototipos como plantillas de diseño o componentes funcionales
  • Desarrollo y prueba: Los prototipos se amplían y se añaden funcionalidades. El código real es escrito, probado y migrado a un entorno de prueba varias veces hasta que el software pueda ser implementado en un entorno productivo.
  • Planificación del siguiente ciclo: El siguiente ciclo se planifica al final de cada fase. Si se producen errores, se buscan soluciones, y si una alternativa es una mejor solución, se prefiere en el siguiente ciclo.

La fuerza impulsora más importante del desarrollo en espiral es el análisis y la evaluación de riesgos. Cualquier riesgo que amenace el proyecto debe ser identificado desde el principio. El progreso del proyecto depende decisivamente de cómo se puedan borrar los riesgos. El proyecto se considera exitoso sólo cuando no existen riesgos. El objetivo del ciclo es producir un producto en continua mejora. El software o la app se perfecciona constantemente. El modelo en espiral es incremental, pero no necesariamente repetitivo. Las repeticiones ocurren sólo cuando los riesgos, errores o conflictos amenazan el proyecto. Entonces el producto tiene que pasar por un ciclo de nuevo, llamado una iteración o repetición.

Avantages / Inconvénients

  • El modelo de desarrollo en espiral se usa muchas veces para proyectos más grandes que están sujetos a riesgos. Ya que estos riesgos disponen un impacto monetario directo, el control de los presupuestos de los clientes y de las empresas promotoras es fundamental. El modelo en espiral se usa sobre todo en los nuevos entornos técnicos, puesto que éstos suponen un riesgo.[2]
  • Los conflictos entre los requerimientos de un software y su diseño se evitan eficazmente a través el enfoque cíclico, puesto que los requerimientos pueden comprobarse constantemente y, si hace falta, modificarse.[3]
  • Se puede conseguir feedback de los usuarios, desarrolladores y clientes en las primeras fases del proyecto. No obstante, esta estructura además requiere una administración que tenga en cuenta los ciclos del producto y pueda responder rápidamente a los riesgos. El control de tales proyectos es, por ende, relativamente complejo y además requiere una buena documentación para que se registren todos los cambios.
  • Aún cuando el software se prueba bajo varios aspectos a lo largo del ciclo de desarrollo y prueba (unidad, prueba de aceptación e incorporación), muchas veces sucede que los prototipos se transfieren al sistema de producción. De esta manera, existe el riesgo de que se introduzcan otros errores e incoherencias conceptuales en el producto final posterior.
  • En los lugares donde se toman decisiones sobre los ciclos siguientes, existe el riesgo de que se formen bucles y el proyecto tarde más tiempo si se toman decisiones equivocadas. Por esta razón, las opciones y su evaluación son importantes.

Pertinence pour la programmation

A diferencia de un modelo secuencial (por ejemplo, el modelo en cascada) dispuesto en fases sucesivas, el modelo en espiral esboza el ciclo de vida de un software a través espirales que existen que recorrer. De esta manera, este enfoque se parece más a la creación de prototipos que los enfoques clásicos. El modelo en espiral se supone que evita las desventajas de otros modelos y enfatiza las ventajas. Al centrarse en la minimización del riesgo, este modelo tiene un componente financiero que puede ser relevante para los responsables de la toma de decisiones. Por medio de de discusiones con los clientes, análisis y estudios de viabilidad, se pueden poner en práctica proyectos a gran escala y monitorizar su impacto económico. Hasta qué punto los métodos ágiles como scrum, programación extrema o DevOps son mejores alternativas dependen de muchos factores distintos como el alcance del proyecto, el presupuesto o el nivel requerido de soporte y mantenimiento. Cuanto más flexibilidad se requiera, más métodos ágiles se considerarán.

 

R Marketing Numérique