Extreme Programming Diego Rincón Sebastian Miranda
Agenda ¿Qué es? 4 pilares de XP Reglas ◦ Planeación ◦ Administración ◦ Diseño ◦ Implementación ◦ Pruebas
Recordando “Agile Manifesto” Individuos e interacciones sobre procesos y herramientas Software funcionando sobre documentación extensiva Colaboración con el cliente sobre negociación contractual Respuesta ante el cambio sobre seguir un plan
¿Qué es? Modelo de proceso Ágil Su núcleo principal de trabajo ◦ Producción disciplinada de código 4 Valores (pilares) ◦ Simplicidad ◦ Comunicación ◦ Retroalimentación ◦ Coraje
4 PILARES
Comunicación Principal factor de problemas en los proyectos de software ◦ Alguien no le dijo algo a alguien en el momento apropiado ◦ Quien oyó no entendió ◦ Se le olvido ◦ No lo aplicó ◦ Quien lo dijo, cambió de opinión
Comunicación XP permite ◦ Mayores canales de comunicación ◦ Es evidente cuando no hay comunicación apropiada ◦ La comunicación es prácticamente forzada ◦ Tiene un alcance definido
Simplicidad Mentalidad de lo mas sencillo ◦ Diseño ◦ Interfaz ◦ Estrategia ◦ Algoritmo…
Retroalimentación Retroalimentación en XP: ◦ Frecuente: ente el cliente – Usuario ◦ Muy Frecuente: entre los colegas de grupo Ej. Integración ◦ Inmediata: surge de las pruebas automáticas Entre más rápido se sepa, se pierde menos tiempo.
Coraje Hacer las cosas bien Mejorar si es necesario y viceversa Aceptar que el cliente puede proveer información valiosa, a las dudas surgidas en un problema! La solución de problemas es gradual.
REGLAS DE XP
Planeación Se escriben las historias de Usuario Calendario de liberaciones Realizar liberaciones frecuentes El proyecto es dividido en iteraciones Realizar planeación de Iteraciones al inicio de cada una
Administración Darle al equipo un espacio de trabajo dedicado Establecer un ritmo de trabajo Reuniones de inicio de día Se mide la velocidad del proyecto Rotar el personal Arreglar XP cuando se rompe
Diseño Simplicidad Seleccionar una metáfora de sistema Usar tarjetas CRC para diseñar sesiones Crear “Spike Solutions” para reducir riesgos Adicionar no funcionalidades temprano Refactorización de código cuando sea posible
Implementación El cliente siempre esta disponible Código escrito para acordar estándares Preparación de pruebas unitarias Todo el código es programado en pares Solo un par integra código a la vez. Integraciones seguidas Maquina de integración dedicada Propiedad colectiva de código
Pruebas Todos los codigos deben ser sometidos a pruebas unitarias Todos los códigos DEBEN pasar las pruebas Cuando se detecta un bug, se deben crear las pruebas correspondientes Se deben realizar pruebas de aceptación
Bibliografía Agile Manifesto,