Tabla de contenido
Ver contenido
Introducción
En el desarrollo de un proyecto, existe mucha diversidad en cuanto a la adopción de modelos según las necesidades de cada proyecto, los equipos definirán dichas necesidades específicas y optarán por el enfoque que mejor se acople.
Clasificación de Modelos de Desarrollo
Una forma común de clasificar los modelos de desarrollo es predictivos frente a adaptativos.
Modelos Predictivos
Un modelo predictivo se centra en tener una detallada lista de los requisitos del software y una buena comprensión de los mismos desde el principio, este modelo es beneficioso cuando:
- El cliente tiene claro lo que quiere y que lo solicitado es adecuado.
- Los requisitos no varían y están bien definidos desde la primera etapa del proyecto.
Este modelo se aplica para el desarrollo de un producto completo con una base de comprensión clara de requisitos conocidos y tiene como característica la poca flexibilidad a cambios durante la etapa de implementación.
Modelos Adaptativos
Los modelos adaptativos son flexibles a cambios, son beneficiosos siempre que:
- El cliente tenga una idea principal pero sin muchos detalles de lo que quiere al principio.
- El desarrollo necesite de versiones mínimas del producto para comenzar a probar.
- El equipo necesite construir y retroalimentarse para evolucionar el producto.
Este modelo permite que la entrega final sea diferente a lo que se esperaba al inicio del proyecto, pero dado que tiene retroalimentación contínua, se espera entrega algo más fiel a las necesidades del usuario.
Modelos Predictivos vs. Modelos Adaptativos
Aspecto | Modelo Predictivo | Modelo Adaptativo |
---|---|---|
Definición de requisitos | Requisitos claros y bien definidos desde el inicio. | Requisitos iniciales generales; se detallan y ajustan durante el desarrollo. |
Flexibilidad al cambio | Baja flexibilidad; los cambios son costosos y difíciles de implementar. | Alta flexibilidad; el modelo permite ajustes continuos según retroalimentación. |
Participación del cliente | Limitada después de definir los requisitos. | Activa durante todo el proceso, con entregas frecuentes. |
Entregas parciales | No suelen entregarse versiones funcionales hasta finalizar el desarrollo. | Se entregan versiones mínimas funcionales para obtener retroalimentación temprana. |
Visión del producto final | Clara desde el principio. | Evoluciona con cada iteración; puede diferir del concepto inicial. |
Cuándo usarlo | Cuando los requisitos son estables y bien comprendidos. | Cuando se espera incertidumbre o cambios durante el desarrollo. |
La aplicación de estos modelos en un proyecto de software no responde a una clasificación predictiva completa ni adapativa completa, dependerá del grado de flexibilidad buscada por el equipo de desarrollo para cada tipo de proyecto.
Otro tipo de clasificación es la diferencia entre modelos incrementales e iterativos.
Modelos Incrementales
Puede solapar la construcción de un incremento con otro Los modelos incrementales pueden dar lugar a retrabajos, se centran en la entrega de nuevas funcionalidades Si el despliegue de un incremento a los usuarios reales puede beneficiar a la organización, el uso de un modelo incremental es un candidato potencial a considerar.
Modelos Iterativos
Se centran en la mejora contínua a través de retroalimentación
Modelos Incremental vs. Modelos Iterativo
Aspecto | Modelo Incremental | Modelo Iterativo |
---|---|---|
Visión del producto | Se tiene una visión clara del producto final. | No se tiene una idea completamente clara del producto final. |
Enfoque de construcción | El producto se construye por partes o incrementos. | Se comienza con una versión simple o provisional que se mejora con cada iteración. |
Uso de resultados intermedios | Puede ser útil si se pueden aprovechar resultados parciales. | Las versiones anteriores pueden ser reemplazadas completamente. |
Cambio basado en retroalimentación | Posible: si se adapta con base en comentarios, se vuelve adaptativo; si no, es más predictivo. | La retroalimentación impulsa los cambios; cada versión mejora con base en la anterior. |
Diferencia clave | Se construye por partes, sin reemplazar lo anterior. | Se mejora o reemplaza lo anterior según lo aprendido en la iteración. |
Tipos de Modelos de Desarrollo
El Modelo en Cascada
El modelo en cascada es un enfoque secuencial donde cada fase del desarrollo se realiza de forma ordenada:
- Recolección de requisitos
- Diseño
- Implementación
- Pruebas
- Despliegue
- Mantenimiento
Este modelo asume que no se puede pasar a la siguiente fase hasta que la anterior esté completamente finalizada. Sin embargo, para solucionar problemas detectados en fases posteriores, se introducen bucles de retroalimentación que permiten regresar a fases anteriores (por ejemplo, volver al diseño si un fallo se detectó en la implementación).
Importante: cuanto más tarde se detecte un problema, más costoso será solucionarlo. Esta idea se representa en la conocida curva del costo del cambio.
Supuestos del Modelo en Cascada
Para que este modelo funcione correctamente, se deben cumplir ciertos supuestos:
- Los requisitos deben ser sólidos y estar completamente definidos desde el inicio.
- El equipo debe entender exactamente qué debe construirse.
- La interpretación de los requisitos por parte de los diseñadores y desarrolladores debe ser precisa.
Ventajas
- Es simple, lógico y fácil de entender.
- Ideal para proyectos con requisitos fijos, ya que permite estimar tiempos y costos con precisión.
Desventajas
- No es flexible ante cambios.
- No permite obtener valor temprano del producto.
- El producto se entrega al final del proceso, por lo que no se puede aprovechar un lanzamiento anticipado.
¿Cuándo usar el modelo en cascada?
Es adecuado cuando el proyecto es altamente predecible, los requisitos están claros desde el inicio y el trabajo es repetitivo.