XP eXtreme Programming METODOLOGÍA ÁGIL DE DESARROLLO DE SOFTWARE
¿Qué metodología debo usar para el desarrollo de un Software? Todos en algún momento nos hemos hecho esta pregunta, cuando hemos tenido que desarrollar un software. Y de hecho esta pregunta se torna muy importante, pues como arquitectos de Software, debemos tener un plano en que apoyarnos. Todo desarrollo de software es riesgoso y difícil de controlar, pero si no llevamos una metodología de por medio, lo que obtenemos es clientes insatisfechos con el resultado y desarrolladores aún más insatisfechos.
METODOLOGÍA DE DESARROLLO DE SOFTWARE Metodología Ágil
Metodología No Ágil (Tradicional)
Pocos artefactos
Más artefactos
Pocos roles
Más roles
No existe un contrato tradicional o al menos es bastante flexible
Existe un contrato prefijado
El cliente es parte del equipo de desarrollo (además in-situ)
El cliente interactúa con el equipo de desarrollo mediante reuniones
Grupos pequeños (< 10 integrantes) y trabajando en el mismo sitio
Grupos grandes
Menos énfasis en la arquitectura
La arquitectura es esencial
La crítica más frecuente a las metodologías tradicionales es que son burocráticas. Hay tanto que hacer para seguir la metodología que el ritmo entero del desarrollo se retarda. Acusadas de ligereza en la documentación, (llegando casi a la ausencia de la misma), y de dificultades para ser aplicadas en proyectos que involucren a una gran cantidad de personas o que deban mantener costos fijos.
XP Prácticas Esenciales Conocer el manifiesto: http://www.agilemanifesto.org/ • • • • • •
Pruebas Refabricación. Programación en pares. Juego de planeación. Liberaciones pequeñas. (pequeñas entregas) Integración continua.
XP Prácticas Esenciales ¿Qué es lo que propone XP? * Empieza en pequeño y añade funcionalidad con
retroalimentación continua * El manejo del cambio se convierte en parte sustantiva del proceso * El costo del cambio no depende de la fase o etapa * No introduce funcionalidades antes que sean necesarias * El cliente o el usuario se convierte en miembro del equipo
XP Prácticas Esenciales ¿Qué es lo que propone XP? Desarrolladores
Ágiles, capacitados, colaborativos y situados en mismo lugar
Clientes
Especializados, situados en el mismo lugar, representativos y autorizados
Requerimientos
Generalmente en vía de desarrollo: cambian rápidamente
Arquitectura
Diseñada para los requerimientos actuales
Tamaño
Equipos y productos pequeños
Objetivo principal
rapidez
Roles Los roles existentes en esta metodología son: Programador Cliente Encargado de pruebas (tester) Encargado de seguimiento (tracker) Entrenador (coach) Concultor Gestor (the Big Bos)
El proceso XP
Historias de Usuario
Historias de Usuario