Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Qu es Extreme Programming?
En qu consiste XP?
La Programacin Extrema es una metodologa ligera de desarrollo de software que se basa en la simplicidad, la comunicacin y la realimentacin o reutilizacin del cdigo desarrollado
Origen de la metodologa XP
Desarrollada por Kent Beck.
Todo en el software cambia. Los requisitos cambian. El diseo cambia. El negocio cambia. La tecnologa cambia. El equipo cambia. Los miembros del equipo cambian. El problema no es el cambio en s mismo, puesto que sabemos que el cambio va a suceder; el problema es la incapacidad de adaptarnos a dicho cambio cuando ste tiene lugar. Kent Beck.
Objetivos perseguidos
Comunicacin
XP pone en comunicacin directa y continua a clientes y desarrolladores. El cliente se integra en el equipo para establecer prioridades y resolver dudas. De esta forma ve el avance da a da, y es posible ajustar la agenda y las funcionalidades de forma consecuente
De esta forma fallos se localizan muy pronto. La planificacin no puede evitar algunos errores, que slo se evidencian al
desarrollar el sistema.
Simplicidad
La simplicidad consiste en desarrollar slo el sistema que realmente se necesita. Implica resolver en cada momento slo las necesidades actuales. Los costes y la complejidad de predecir el futuro son muy elevados, y la mejor forma de acertar es esperar al futuro. Con este principio de simplicidad, junto con la comunicacin y el feedback resulta ms fcil conocer las necesidades reales
Coraje
Disciplina en la aplicacin de XP Parar cuando se est cansado Permitir que el usuario tome las decisiones de negocio Permitir que el desarrollador tome las decisiones tcnicas Descartar cdigo si es necesario Introducir cambios cuando las cosas no funcionan
Roles de personas en XP
Programador Pieza bsica en desarrollos XP Ms responsabilidad que en otros modos de desarrollo Responsable sobre el cdigo Responsable sobre el diseo (refactorizacin, simplicidad) Responsable sobre la integridad del sistema (pruebas) Capacidad de comunicacin (pair-programming) Acepta crticas (cdigo colectivo) Cliente Pieza bsica en desarrollos XP Define especificaciones (user stories) Influye sin controlar Confa en el grupo de desarrollo Define pruebas funcionales
Encargado de Pruebas Apoya al cliente en la preparacin/realizacin de las pruebas funcionales Ejecuta las pruebas funcionales y publica los resultados
Encargado de Seguimiento(Tracker) Recoge, analiza y publica informacin sobre la marcha del proyecto sin afectar demasiado el proceso Supervisa el cumplimiento de la estimaciones en cada iteracin Informa sobre la marcha de la iteracin en curso Controla la marcha de las pruebas funcionales, de los errores reportados, de las responsabilidades aceptadas y de las prueba aadidas por los errores encontrados Entrenador (Coach) Experto en XP Responsable del proceso en su conjunto Identifica las desviaciones y reclama atencin sobre las mismas Gua al grupo de forma indirecta (sin daar su seguridad ni confianza) Interviene directamente si es necesario Atajar rpidamente el problema
Consultor
Apoya al equipo XP en cuestiones puntuales
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
Captura de Requisitos en XP
Una ficha de User-Story
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 A cada programador se le asigna una tarea de la user-story
Programacin en XP
Programacin en XP
Una ficha de Tarea
Modelo de un Proyecto XP
Espacio de trabajo XP
Prcticas de XP
PRCTICAS DE CODIFICACIN 1.- Simplicidad de cdigo y de diseo para producir software fcil de modificar. 2.- Reingeniera continua para lograr que el cdigo tenga un diseo ptimo. 3.- Desarrollar estndares de codificacin, para comunicar ideas con claridad a travs del cdigo.
4.- Desarrollar un vocabulario comn, para comunicar las ideas sobre el cdigo con claridad.
PRCTICAS DE DESARROLLO 1.- Adoptar un mtodo de desarrollo basado en las pruebas para asegurar que el cdigo se comporta segn lo esperado. 2.- Programacin por parejas, para incrementar el conocimiento, la experiencia y las ideas. 3.- Asumir la propiedad colectiva del cdigo, para que todo el equipo sea responsable de l. 4.- Integracin continua, para reducir el impacto de la incorporacin de nuevas funcionalidades.
PRCTICAS DE NEGOCIO 1.- Integracin de un representante del cliente en el equipo, para encauzar las cuestiones de negocio del sistema de forma directa, sin retrasos o prdidas por intermediacin.