Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Me To Do Log I As A Giles y Extreme Programming
Me To Do Log I As A Giles y Extreme Programming
Patricio Letelier
letelier@dsic.upv.es
Contenidos
Introduccin
de XP
Conclusiones
www.dsic.upv.es/~letelier/pub
Al individuo y las interacciones en el equipo de desarrollo ms que a las actividades y las herramientas Desarrollar software que funciona ms que conseguir una buena documentacin Minimalismo respecto del modelado y la documentacin del sistema La colaboracin con el cliente ms que la negociacin de un contrato Responder a los cambios ms que seguir estrictamente una planificacin
www.dsic.upv.es/~letelier/pub
www.dsic.upv.es/~letelier/pub
Suposicin AMs
tiempo
www.dsic.upv.es/~letelier/pub
Principios:
1. La prioridad principal es satisfacer al cliente mediante tempranas y continuas entregas de software que le reporte un valor
2.
Dar la bienvenida a los cambios. Los AMs capturan los cambios para que el cliente tenga una ventaja competitiva
Entregar frecuentemente software que funcione, desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre una entrega y la siguiente
3.
www.dsic.upv.es/~letelier/pub
La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto
Construir proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir el trabajo El dilogo cara a cara es el mtodo ms eficiente y efectivo para comunicar informacin dentro de un equipo de desarrollo El software que funciona es la medida principal de progreso
6.
7.
www.dsic.upv.es/~letelier/pub
9.
12. En intervalos regulares, el equipo reflexiona respecto de cmo llegar a ser ms efectivo, y segn esto ajusta su comportamiento
www.dsic.upv.es/~letelier/pub
Metodologa No gil
Ms Artefactos Ms Roles
Grupos pequeos (< 10 integrantes) Grupos grandes y trabajando en el mismo sitio Menos nfasis en la arquitectura La arquitectura es esencial
www.dsic.upv.es/~letelier/pub
Principales AMs
Crystal Methodologies, Alistarir Cockburn, www.crystalmethodologies.org
SCRUM, Ken Schwaber & Jeff Sutherland, www.controlchaos.com DSDM (Dynamic Systems Development Method), www.dsdm.org
www.dsic.upv.es/~letelier/pub
www.dsic.upv.es/~letelier/pub
eXtreme Programming
12
Qu es XP?
Es una metodologa gil
Diseada para entornos dinmicos Pensada para equipos pequeos (hasta 10 programadores) Orientada fuertemente hacia la codificacin nfasis en la comunicacin informal, verbal
www.dsic.upv.es/~letelier/pub
Historia de XP
Creado por Kent Beck para la plantilla del proyecto C3 en Chrysler
Kent fue contratado para dirigir el proyecto Durante el proceso naci una nueva metodologa: eXtreme Programming (XP) C3 concluy exitosamente en 1997
www.dsic.upv.es/~letelier/pub
Retroalimentacin
Coraje
www.dsic.upv.es/~letelier/pub
Roles XP
c2.com/cgi/wiki?ExtremeRoles
Programador (Programmer)
Jefe de Proyecto
(Manager)
Responsable de decisiones tcnicas Responsable de construir el sistema Sin distincin entre analistas, diseadores o codificadores En XP, los programadores disean, programan y realizan las pruebas
Cliente (Customer)
Es parte del equipo Determina qu construir y cundo Establece las pruebas funcionales
www.dsic.upv.es/~letelier/pub
... Roles XP
Encargado de Pruebas (Tester)
Entrenador
(Coach)
Ayuda al cliente con las pruebas funcionales Se asegura de que las pruebas funcionales se superan
Responsable del proceso Tiende a estar en un segundo plano a medida que el equipo madura
Rastreador (Tracker)
www.dsic.upv.es/~letelier/pub
Captura de Requisitos en XP
Historias del Usuario (User-Stories) Establecen los requisitos del cliente Trozos de funcionalidad que aportan valor Se les asignan tareas de programacin con un n de horas de desarrollo Las establece el cliente Son la base para las pruebas funcionales
www.dsic.upv.es/~letelier/pub
Captura de Requisitos en XP
Una ficha de User-Story
www.dsic.upv.es/~letelier/pub
Planificacin en XP
Planificacin por entregas (releases) Se priorizan aquellas user-stories que el cliente selecciona porque son ms importantes para el negocio Entregas:
Son lo ms pequeas posibles Se dividen en iteraciones (iteracin = 2 o 3 semanas) Estn compuestas por historias
www.dsic.upv.es/~letelier/pub
Programacin en XP
La programacin de tareas se realiza por parejas
La pareja disea, prueba, implementa e integra el cdigo de la tarea Cdigo dirigido por las pruebas
Programacin en XP
Una ficha de Tarea
www.dsic.upv.es/~letelier/pub
Modelo de un Proyecto XP
www.dsic.upv.es/~letelier/pub
Espacio de trabajo XP
Espacio abierto Mesas centrales Cubculos en el espacio exterior
www.dsic.upv.es/~letelier/pub
Prcticas XP
El juego de la planificacin Entregas pequeas Metfora Diseo simple Pruebas Refactoring Programacin en parejas
Propiedad colectiva
Integracin contnua Semana de 40 horas Cliente in situ Estndares de programacin
www.dsic.upv.es/~letelier/pub
Prcticas XP
El Juego de la planificacin
Decisiones de negocio (cliente):
Alcance Cundo debe estar listo el producto para que sea valioso en produccin? Prioridad Prioriza la incorporacin de las userstories Composicin de entregas Qu se necesita para que el negocio sea mejor antes de tener el sw? Fechas de entrega Fechas cuando el software funcionando causara una gran diferencia
www.dsic.upv.es/~letelier/pub
Prcticas XP
... El Juego de la planificacin
Decisiones tcnicas (programadores y otros):
Estimaciones Cunto tiempo tardar en implementarse una user-story? Consecuencias Tener en cuenta las consecuencias tcnicas de determinadas decisiones de negocio Proceso Organizacin del proceso y el equipo Planificacin detallada Dentro de una entrega, qu user-stories se realizan primero. Intentar trasladar los segmentos de desarrollo ms arriesgados al principio, intentando respetar las prioridades del negocio
www.dsic.upv.es/~letelier/pub
Prcticas XP
Todo el equipo
Problemas Solutiones
De pie en un crculo
www.dsic.upv.es/~letelier/pub
Prcticas XP
Entregas pequeas
Cada entrega es lo ms corta posible:
Contenga requisitos ms valiosos del sistema (bsicos) Reducen el riesgo mayor retroalimentacin desde el cliente, y ms frecuente
www.dsic.upv.es/~letelier/pub
Prcticas XP
Metfora
Cada proyecto XP es guiado por una metfora global Da un contexto al equipo para entender los elementos bsicos y sus relaciones Proporciona integridad conceptual
www.dsic.upv.es/~letelier/pub
Prcticas XP
Diseo simple
Se disea la cosa ms simple que pueda funcionar Uso de tarjetas CRC Diseo de software correcto, es aquel que:
Supera todas las pruebas No tiene lgica duplicada Pone de manifiesto las intenciones importantes de los programadores Tiene el mnimo nmero de clases y mtodos
www.dsic.upv.es/~letelier/pub
Prcticas XP
Pruebas
Las pruebas unitarias se escriben ANTES que el cdigo Pruebas automatizadas Permiten el desarrollo de proyectos de forma rpida y segura Pruebas unitarias programadores Pruebas funcionales cliente Resultado Un programa cada vez ms seguro
www.dsic.upv.es/~letelier/pub
Prcticas XP
Refactoring
www.refactoring.com
Refactorizacin = Mejora del cdigo Intentar eliminar complejidad Cdigo duplicado Refactorizacin Se plantea su aplicacin despus de implementar cada user-story
www.dsic.upv.es/~letelier/pub
www.dsic.upv.es/~letelier/pub
Prcticas XP
Programacin en parejas
www.pairprogramming.com
www.dsic.upv.es/~letelier/pub
Prcticas XP
Propiedad colectiva
Cualquiera puede modificar el cdigo en cualquier momento Se evitan cuellos de botella en la codificacin Todos asume las responsabilidades sobre el conjunto del sistema
Todos conocen algo sobre todas las partes y conocen muy bien aqullas en las que trabajan
www.dsic.upv.es/~letelier/pub
Prcticas XP
Integracin contnua
El cdigo se integra y se prueba despus de pocas horas Existe una ordenador dedicado para la integracin Cada pareja integra su cdigo en dicho ordenador
www.dsic.upv.es/~letelier/pub
Prcticas XP
Semana de 40 horas
Filosofa: Los programadores que descansan son ms productivos El exceso de trabajo es un serio problema en un proyecto
www.dsic.upv.es/~letelier/pub
Prcticas XP
Cliente in situ
Cliente real = Aquel que usar el sistema cuando est en produccin
El cliente real debe estar con el equipo de trabajo:
www.dsic.upv.es/~letelier/pub
Prcticas XP
Estndares de programacin
Son fundamentales cuando los programadores cambian de pareja o hacen refactoring del cdigo de otros Se consigue un cdigo con el mismo estilo, homogneo, legible
www.dsic.upv.es/~letelier/pub
Prcticas XP
Interaccin entre Prcticas
www.dsic.upv.es/~letelier/pub
Conclusiones
42
Un da de trabajo en XP
www.dsic.upv.es/~letelier/pub
SW SW funcionando >> Working >> HistoriasStories de usuario Documentation Pair Programming Documentation Programacin en parejas Propiedad colectiva Frequent Releases Collective Ownership Releases frecuentes Mejora de la calidad Daily Stand-up Meetings Improve Quality Iteratively Reunin Standup cada da iterativamente Create Great Architectures Collaboration>>Contracts Crear buenas arquitecturas Colaboracin >> Contrato
Nightly Builds (too early to tell) Nightly Builds Refactor (when time appropriate) Refactoring Ever-Present Customers (unlikely to work in real world) Cliente in situ Continuous Integration (unlikely for non-trivial) Things Integracin contnua Dont Create to Discard (moderation!) x No crear cosas que se desecharn
www.dsic.upv.es/~letelier/pub
Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002
Tiempo
1950s 1960s 1970s 1980s 1990s 2000s 2010s
www.dsic.upv.es/~letelier/pub
Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002
Aumento en el nmero de proyectos Por qu? Tiene el apoyo de muchos gurs en ingeniera de sw Es un proceso para gente que odia los procesos Tiene sentido Poltica? ... Pugna entre comunidades
www.dsic.upv.es/~letelier/pub
Mejor esperar
www.dsic.upv.es/~letelier/pub
www.dsic.upv.es/~letelier/pub
http://www.xp2003.org
XP Agile Universe
http://www.agileuniverse.com
www.dsic.upv.es/~letelier/pub
Fin de la Presentacin
Metodologas giles y XP
Patricio Letelier
letelier@dsic.upv.es