![]()
Sección 1: Cascada contra Ágil
1.1 Diseño del Modelo en Cascada
El Modelo en Cascada fue el primer modelo de proceso que se introdujo. También se conoce como modelo de ciclo de vida lineal-secuencial. Es muy simple de entender y de usar. En un modelo en cascada, cada fase debe completarse antes de que pueda comenzar la siguiente y no hay superposición en las fases.
En más detalles, el enfoque en cascada fue el primer modelo SDLC (ciclo de vida del desarrollo del sistema o System Development Life Cycle en inglés) que se utilizó ampliamente en Ingeniería de software para garantizar el éxito de un proyecto. En el enfoque "cascada", todo el proceso de software de desarrollo se divide en fases separadas. En el modelo en cascada, normalmente, el resultado de una fase actúa como entrada para la siguiente fase de forma secuencial.
A continuación, se muestra una representación esquemática de las diferentes fases del modelo en cascada.
Figura 1: Modelo de ciclo de vida de desarrollo de software en cascada
Fuente: (Gingco, 2016)
Las fases secuenciales del modelo en cascada son:
Recopilación y análisis de requisitos: Todos los posibles requisitos del sistema a desarrollar se capturan en esta fase y se registran en un documento de especificación de requisitos.
Diseño del Sistema: En esta fase se estudian las especificidades de los requisitos encontrados en la primera fase y se prepara el diseño del sistema. El Diseño del Sistema ayuda a especificar los requisitos del sistema y del hardware y ayuda a definir la arquitectura general del sistema.
Implementación: Con los datos del diseño del sistema como entradas, el sistema se desarrolla primero en pequeños programas llamados unidades, que se integran en la siguiente fase. Cada unidad se desarrolla y se prueban sus funcionalidades, lo cual se conoce como prueba unitaria.
Integración y Prueba: Todas las unidades desarrolladas en la fase de implementación se integran en un sistema luego de probar cada una. Después de la integración, se prueba todo el sistema para detectar errores y fallas.
Despliegue del sistema: Una vez que se realizan las pruebas funcionales y no funcionales, el producto se despliega en el entorno del cliente o se lanza al mercado.
Mantenimiento: Algunos problemas aparecen en el entorno del cliente. Para solucionar esos problemas, se lanzan parches. Además, para perfeccionar el producto, se lanzan algunas versiones mejoradas. El mantenimiento se realiza para entregar estos cambios en el entorno del cliente.
Todas estas fases están en cascada entre sí, el progreso fluye de manera constante hacia abajo (como una cascada) a través de las fases. La siguiente fase se inicia solo después de que se cumple el conjunto de objetivos definido para la fase anterior y esta se aprueba, de ahí el nombre "Modelo en Cascada". En este modelo, las fases no se superponen.
Cada software que se desarrolla es diferente y requiere que se siga un enfoque SDLC adecuado en función de los factores internos y externos. Algunas situaciones en las que el uso del modelo en cascada es más apropiado son:
- Los requisitos están muy bien documentados, son claros e invariable.
- La definición del producto es estable.
- La tecnología se entiende y no es dinámica. No hay requisitos ambiguos.
- Se encuentran disponibles amplios recursos con la experiencia necesaria para respaldar el producto. El proyecto es corto.
En conclusión, la principal ventaja del desarrollo en cascada es que permite la división y el control. Se puede establecer un cronograma con fechas límite para cada etapa de desarrollo y un producto puede avanzar fase tras fase del modelo del proceso de desarrollo. Una vez que una aplicación está en la etapa de prueba, es muy difícil volver atrás y cambiar algo que no estaba bien documentado o considerado en la etapa de concepción.
![]()
1.2 Metodologías ágiles
¿Qué es Ágil?
Ágil es un enfoque iterativo y de tiempo fijo para la entrega de software que crea software de forma incremental desde el inicio del proyecto, en lugar de intentar entregarlo todo de una vez casi al final. Funciona al dividir los proyectos en pequeños fragmentos de funcionalidad de usuario llamados historias de usuario, priorizándolos y luego entregándolos continuamente en ciclos cortos de dos semanas llamados iteraciones (http://www.agilenutshell.com, 2017).
Figura 2: Metodologías ágiles
Las metodologías ágiles son modelos utilizados en el ámbito del desarrollo de sistemas. La metodología ágil evolucionó a mediados de la década de 1990 como parte de la resistencia a los métodos en cascada tradicionales. Las metodologías ágiles se originaron como resultado de que el modelo en cascada era inflexible, lento e inconsistente con las formas en que los desarrolladores de software realizan un trabajo eficaz. Los métodos de desarrollo ágiles marcan un regreso a la práctica de desarrollo de principios de la historia del desarrollo de software. El uso de la palabra ágil en este contexto deriva del manifiesto ágil (http://leadinganswers.typepad.com/, 2017).
![]()
Historia: El Manifiesto Ágil
Figura 3: El Manifiesto Ágil (elaboración propia)
Del 11 al 13 de febrero de 2001, en la estación de esquí Lodge at Snowbird, en las montañas Wasatch de Utah, se reunieron diecisiete personas y lo que nació fue el Manifiesto Ágil de Desarrollo de Software. Se convocaron representantes de los procesos de desarrollo de software de Programación Extrema, SCRUM, DSDM, Desarrollo Adaptativo de Software, Crystal, Desarrollo basado en funcionalidades, Programación Pragmática y otros que simpatizaban con la necesidad de una alternativa al software basado en documentación. Este grupo de pensadores independientes sobre el desarrollo de software y, a veces, competidores entre sí, acordaron el Manifiesto para ...