Gestión de Proyectos de Software: Predictibilidad y Enfoques Ágiles
Enviado por Chuletator online y clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 4,49 KB
Desarrollo de Proyectos: Predictibilidad vs. Incertidumbre
El desarrollo de proyectos puede clasificarse en dos grandes categorías según su nivel de predictibilidad:
Desarrollo Predecible
Se caracteriza por la capacidad de definir y estimar con antelación:
- Al principio es posible definir sus especificaciones y después construir.
- Al inicio, se puede estimar de forma confiable el esfuerzo y el costo.
- Es posible identificar, definir, programar y establecer detalladamente el orden de todas las actividades.
- La adaptación al cambio no predecible no es la norma y la razón de cambio es relativamente baja.
Desarrollo No Predecible
Se distingue por la incertidumbre inherente y la necesidad de adaptación constante:
- Raramente es posible crear una especificación detallada y no cambiante.
- Conforme van surgiendo datos empíricos, incrementalmente va siendo posible planear y estimar.
- Se requieren pasos adaptativos dirigidos por ciclos de construir-retroalimentar.
- La adaptación creativa para los cambios no previstos es la norma.
El Software como Desarrollo No Predecible
El desarrollo del software cae en la categoría de desarrollo de un nuevo producto, lo que inherentemente lo hace menos predecible.
Muchos proyectos utilizan tecnologías nuevas que incrementan el grado de novedad y no predictibilidad.
Crítica al Enfoque Cascada
El enfoque cascada se basa en la especificación predictiva de los requisitos, con estimaciones y planes especulativos. Este modelo, aplicable a la manufactura predecible, se ha aplicado incorrectamente a los proyectos de software, un dominio que requiere trabajo inventivo, de alta razón de cambio y novedad.
¿Por qué Fallan las Estimaciones Predictivas en Software?
Las estimaciones predictivas suelen fallar en el desarrollo de software por varias razones:
- Los clientes o usuarios suelen no estar seguros de lo que quieren.
- Les resulta difícil establecer todo lo que quieren y desean al inicio.
- Muchos de los detalles de lo que realmente quieren solamente se revelan al momento del desarrollo.
- Para las personas, los detalles son abrumadoramente complejos.
- Conforme van viendo el producto desarrollado, van cambiando su mente.
- Factores externos dirigen los cambios o extensiones en las solicitudes.
Motivación de los Métodos Ágiles
La actividad de construir software es compleja, con un alto nivel de cambio y con una naturaleza no predecible. Esta realidad es la principal motivación detrás de los métodos ágiles.
Los métodos ágiles e iterativos impulsan la flexibilidad y maniobrabilidad, lo que se traduce en ventajas competitivas significativas.
Desarrollo Iterativo
Los métodos ágiles son un enfoque para construir software en un ciclo de vida compuesto por varias iteraciones en secuencia.
- Cada iteración es un mini-proyecto auto-contenido compuesto por actividades como análisis de requisitos, diseño, programación y pruebas.
- Los métodos ágiles son un subconjunto de los métodos iterativos y evolutivos.
- El objetivo de una iteración es obtener un release de iteración: un sistema parcial estable, integrado y probado.
- Los releases pueden ser internos o externos.
- Muchos proyectos tienen al menos tres iteraciones antes de un release público final, con una duración de una a seis semanas por iteración.
Timeboxing
El Timeboxing es la práctica de mantener fija la fecha final de la iteración y no permitir cambios en el plazo, priorizando el alcance.
Los Triángulos de Acero (Restricciones de Proyecto)
Los Triángulos de Acero representan las tres restricciones fundamentales en la gestión de proyectos:
- Calendarizar (Tiempo): El límite de tiempo del proyecto.
- Alcance (Funcionalidad): Las funciones y características entregadas en el producto.
- Calidad (Defectos): La ausencia de defectos en el producto.