Metodologías Ágiles Esenciales: XP, Scrum, FDD, Crystal Clear y Kanban para el Desarrollo de Software
Clasificado en Otras materias
Escrito el en español con un tamaño de 6,15 KB
Principios Ágiles en el Desarrollo de Software
Agregación de Valor Explícita
- Solo se implementan funcionalidades o features con valor conocido para los clientes.
- Impacta significativamente el diseño de la arquitectura.
Aprendizaje Colaborativo y Valor al Cliente
- Ciclos de desarrollo evolutivo cortos.
- Sistema potencialmente entregable (potentially shippable).
- Énfasis en la excelencia, la simplicidad y el aprendizaje continuo.
Gestión Ágil y Empoderamiento del Equipo
- Énfasis en comunicación intergrupal e intragrupal.
- Ingenieros y equipos con poder de toma de decisiones.
- El gerente como facilitador.
Extreme Programming (XP): Fundamentos y Prácticas
Iniciado en 1996, con su primer libro publicado en 1999.
Filosofía de XP: La Intensificación de Valor
Se denomina 'extremo' porque elimina técnicas y procesos de bajo valor, mientras que sobre-enfatiza aquellos de alto valor.
- «Poner todas las perillas en 10».
- Iteraciones cortas (1 a 4 semanas).
- Historias de usuario (User Stories).
- Cliente en las instalaciones (Customer On-site).
- Gran énfasis en pruebas automáticas.
- Principio de simplicidad: "Hágalo lo más simple posible".
Ciclo de Desarrollo Iterativo en XP
Se basa en implementar historias de usuario (user stories) de forma iterativa:
- Planificación: Elegir cuáles historias implementar y aclararlas.
- Codificación: Implementar la historia.
- Pruebas automáticas: Al menos una por cada clase/método.
- Prueba de aceptación: Si la prueba es exitosa, la nueva funcionalidad se acepta; de lo contrario, la historia de usuario correspondiente se rehace en la próxima iteración.
Gestión de Requisitos en XP
Los requisitos son poco detallados, fomentando la flexibilidad.
- El cliente debe estar presente entre los desarrolladores (customer on-site).
- Los problemas se corrigen a muy bajo costo.
- Una user story es una descripción concisa, generalmente una oración escrita en una tarjeta.
¿Cuándo Elegir Extreme Programming (XP)?
- Sus requisitos están vagamente definidos o son volátiles.
- Su equipo posee o puede desarrollar habilidades y prácticas de ingeniería robustas.
- Los clientes pueden involucrarse activamente a diario (horas).
Feature Driven Development (FDD): Desarrollo Dirigido por Funcionalidades
Ciclo de Vida de FDD
Se basa en la implementación iterativa de sistemas, estructurada en dos fases principales:
1. Descubrimiento de la Lista de Funcionalidades (Features)
- Desarrollo de un modelo global del sistema.
- Creación de una lista priorizada de funcionalidades.
- Elaboración de un plan de desarrollo.
2. Implementación de las Funcionalidades
- Diseño y revisión del diseño.
- Construcción y revisión de código.
- Reunión de liberación.
- Los requisitos tienden a ser robustos, ya que incluyen un modelo desarrollado en conjunto con los clientes.
- Incorpora un método de seguimiento cuantitativo del progreso del plan.
¿Cuándo Elegir Feature Driven Development (FDD)?
- Está dispuesto a ceder cierta agilidad a cambio de un proceso claramente escalable.
- Su organización posee sólidas habilidades en UML.
- La mayoría de los requisitos son conocidos desde el inicio o son relativamente estables.
- No considera que los equipos auto-organizados sean un factor crítico de éxito.
Crystal Clear: Un Enfoque Ligero y Adaptable
¿Cuándo Elegir Crystal Clear?
- Desea definir gran parte del proceso por sí mismo.
- Tiene un equipo pequeño, co-ubicado en la misma oficina.
- Los requisitos son principalmente conocidos o "conocibles" de antemano.
- El proyecto implica riesgos de pérdidas económicas no esenciales y nunca de vidas humanas.
Scrum: Roles Clave y Artefactos (Reuniones y Backlog)
El Equipo Scrum
- Compuesto por 5 a 10 personas con dedicación completa.
- Equipos auto-organizados.
- Cambios de miembros solo al final del sprint.
El Propietario del Producto (Product Owner)
- Representa al cliente o usuario del proyecto.
- Responsable de la toma de decisiones de priorización.
El Scrum Master
- No es un jefe de proyecto tradicional.
- Facilita la eliminación de obstáculos.
- Asegura la aplicación de los valores y principios de Scrum.
¿Cuándo Elegir Scrum?
- Los requisitos son cambiantes o emergentes.
- Está dispuesto a permitir que los equipos se auto-organicen.
- Necesita un modelo de gestión más que un conjunto de prácticas de ingeniería.
- Necesita un proceso ágil probado y escalable.
Kanban: Gestión Visual para la Producción Esbelta
Principios y Origen de Kanban
Es un método de gestión para la manufactura justo a tiempo (just-in-time) y la producción esbelta (lean).
- El término 'Kanban' significa 'letrero' o 'tarjeta visual'.
- Su propósito es determinar qué producir y cuándo producir.
- Fue desarrollado por Toyota.
- Sus variantes se utilizan en diversas industrias: producción, servicios y desarrollo de software.
Control de Producción con Tarjetas Kanban
La producción se controla mediante tarjetas visuales que representan unidades de pedido o trabajo.
- Ejemplo: Un "montón de puertas a ensamblar" en una línea de producción.
- Ejemplo histórico: Las "tarjetas en el Palacio Imperial" para gestionar el flujo de trabajo.