Está en la página 1de 19

EXtreme Programming

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

Obtencin del producto, software funcionando, y con la satisfaccin del cliente.

Minimizacin del riesgo actuando sobre:


Variables del proyecto : Coste Tiempo Calidad Alcance

Valores que inspiran XP


SIMPLICIDAD FEEDBACK CORAJE COMUNICACIN

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

Feedback rpido y continuo


Una metodologa basada en el desarrollo incremental de pequeas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro-informacin valioso para detectar los problemas o desviaciones.

De esta forma fallos se localizan muy pronto. La planificacin no puede evitar algunos errores, que slo se evidencian al
desarrollar el sistema.

La retro-informacin es la herramienta que permite reajustar la agenda y los


planes.

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

Jefe del Proyecto


Favorece la relacin entre usuarios y desarrolladores Confa en el equipo XP Cubre las necesidades del equipo XP Asegura que alcanza sus objetivos

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

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

Cdigo modular, intentando refactorizar siempre que se pueda

Programacin en XP
Una ficha de Tarea

Tarjetas CRC (Clase - Responsabilidad Colaborador).


Una clase es cualquier persona, cosa, evento, concepto, pantalla o reporte. Las responsabilidades de una clase son las cosas que conoce y las que realiza, sus atributos y mtodos. Los colaboradores de una clase son las dems clases con las que trabaja en conjunto para llevar a cabo sus responsabilidades.

Modelo de un Proyecto XP

Espacio de trabajo XP

Espacio abierto Mesas centrales Cubculos en el espacio exterior

Espacio de trabajo del proyecto C3 de DaimlerChrysler

Ventajas y desventajas de Extreme Programming


Ventajas: Programacin organizada. Menor taza de errores. Satisfaccin del programador. Desventajas: Es recomendable emplearlo solo en proyectos a corto plazo. Altas comisiones en caso de fallar.

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.

2.- Adoptar el juego de la planificacin para centrar en la agenda el trabajo ms importante.


3.- Entregas regulares y frecuentes para satisfacer la inversin del cliente. 4.- Ritmo de trabajo sostenible, para terminar la jornada cansado pero no agotado.

También podría gustarte