1. Ciclos de Vida del Software
El proceso de construir software
Antes de empezar a programar (y antes de diseñar), todo equipo de software debe elegir un "cómo". ¿Cómo vamos a organizar el trabajo a lo largo de los meses o años? A esto se le conoce como Ciclo de Vida de Desarrollo de Software (SDLC).
Existen dos grandes corrientes o formas de pensar fundamentales que han definido la industria: el método Predictivo (Cascada o Waterfall) y el método Adaptativo (Metodologías Ágiles).
1. Cascada (Predictivo)
Es el enfoque tradicional. Es un proceso lineal y secuencial. Se asume que puedes "predecir" todo el proyecto al inicio.
- Fases: 1. Requisitos -> 2. Diseño -> 3. Implementación (Código) -> 4. Pruebas -> 5. Despliegue.
- Ventajas: Documentación exhaustiva, fechas y presupuestos fijos, roles muy marcados.
- Desventajas: ¡El usuario final no ve el producto hasta que termina! (Meses o años después). Si los requerimientos cambian a mitad de camino, es muy costoso y difícil regresar.
2. Metodologías Ágiles (Adaptativas)
Nacen en 2001 (Manifiesto Ágil) como respuesta al fracaso de proyectos cascada. En lugar de predecir el futuro, asumen que el cambio es inevitable y bienvenido.
- Fases: Iteraciones cortas (Ej. Sprints de 2 semanas en Scrum). En cada iteración se levantan requisitos, se diseña, se programa, se prueba y se entrega algo pequeñito pero 100% funcional.
- Ventajas: Entregas rápidas y continuas. Feedback temprano del cliente. Adaptación inmediata si el negocio cambia.
- Desventajas: El alcance y presupuesto final son inciertos al principio. Requiere mucha comunicación y clientes muy involucrados.