Вы находитесь на странице: 1из 56

Extreme Programming (XP)

Grupo 03

Extreme Programming - Agenda

Introduccin
Proceso y Fases Roles Prcticas Conclusiones

Extreme Programming - Introduccin


Proceso : conjunto de actividades ordenadas para lograr una serie de objetivos Proceso Pesado : * fuerte dependencia de planificaciones * se establecen actividades * se establecen artefactos * se establecen herramientas y notaciones * ESTAMOS MUY CONTROLADOS

Extreme Programming - Introduccin


Como contraposicin : Mtodologa gil Caractersticas :
A los individuos y su interaccin
El software que funciona La colaboracin con el cliente La respuesta al cambio por encima por encima por encima por encima de los procesos y las herramientas de la documentacin exhaustiva la negociacin contractual seguimiento de un plan

Extreme Programming - Introduccin


Resumen

* Estamos menos controlado


* Preparados para el cambio * Cliente forma parte del equipo * Pocos artefactos * Ms importante software funcionando que documentacin

Extreme Programming - Introduccin


XP es una Mtodologa gil Desarrollado 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.

Extreme Programming - Introduccin


Estadsticas : mtodo que ms popularidad ha

alcanzado de las metodologas giles Se basa en la suposicin de que es posible desarrollar software de gran calidad a pesar, o incluso como consecuencia del cambio continuo Asume que con un poco de planificacin, un poco de codificacin y unas pocas pruebas se puede decidir si se est siguiendo un camino acertado o equivocado, evitando as tener que echar marcha atrs demasiado tarde.

Extreme Programming - Introduccin


Valores que inspiran XP

SIMPLICIDAD

FEEDBACK

CORAJE

COMUNICACIN

Extreme Programming - Introduccin


Simplicidad La simplicidad consiste en desarrollar slo el sistema

que realmente se necesita. Implica resolver en cada momento slo las necesidades actuales.
Los costos 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

Extreme Programming - Introduccin


FeedBack

Una metodologa basada en el desarrollo incremental

iterativo de pequeas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retroinformacin 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.

Extreme Programming - Introduccin


Coraje Implica saber tomar decisiones difciles. Reparar un error cuando se detecta Mejorar el cdigo siempre que tras el feedback y las sucesivas iteraciones se manifieste susceptible de mejora Tratar rpidamente con el cliente los desajustes de agendas para decidir qu partes y cundo se van a entregar

Extreme Programming - Introduccin


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

Extreme Programming Proceso y Fases


1. El cliente define el valor de negocio a implementar 2. El programador estima el esfuerzo necesario para

su implementacin
3. El cliente selecciona qu construir, de acuerdo con

sus prioridades y las restricciones de tiempo


4. El programador construye ese valor de negocio 5. Vuelve al paso 1

Extreme Programming Proceso y Fases


El costo del cambio

Extreme Programming Proceso y Fases


Historias de Usuario

Tcnica para especificar los reqs.


Son tarjetas de papel Debe ser lo suficientemente comprensible y delimitada para que los programadores puedan implementarla en unas semanas

Extreme Programming Proceso y Fases


Fases

Exploracin Planificacin de la Entrega Iteraciones Produccin Mantenimiento Muerte del Proyecto

Extreme Programming Proceso y Fases

Reglas y prcticas de XP
Conjunto de actividades simples que guan

los diferentes aspectos del desarrollo para seguir el proceso. Se dividen en reas del desarrollo

Planificacin Diseo Codificacin Verificacin

Reglas y prcticas de XP - Planificacin


El Juego de la Planificacin

Planificacin se vuelve emocional Todos quieren planificar mejor

Conflictos Objetivos Jugadores Piezas Reglas

Mirar la planificacin como un Juego


Reglas y prcticas de XP - Planificacin


El Juego de la Planificacin

Piezas: Historias de Usuario Objetivo: Poner en produccin la mayor cantidad de Historias de Usuario Jugadores: Desarrolladores y Encargados del Negocio

Reglas y prcticas de XP - Planificacin


El Juego de la Planificacin Movimientos: Escribir Historia de Usuario Estimarla Comprometerse a realizar:
Por Historia Por Fecha Valor y Riesgo Primero

Recuperacin por Sobrecarga Cambio de Valor de Historia Introducir nueva Historia Dividir una Historia Salto Re-estimar

Reglas y prcticas de XP - Planificacin


Escribir Historias de Usuario

Similar a los Casos de Uso Usadas para estimaciones de tiempo en la planificacin de las liberaciones Usados en lugar del Documento de Requerimientos Escritas por el Cliente en trminos del Cliente Guan la creacin de Pruebas de Aceptacin

Reglas y prcticas de XP - Planificacin


Los Planes de Liberacin organizan el

Calendario

Surgen en las reuniones de Planificacin de Liberaciones Utilizados para crear Planes de Iteraciones Decisiones Tcnicas por el personal Tcnico y decisiones de negocio por el personal de Negocio

Reglas y prcticas de XP - Planificacin

El equipo estima la duracin de la implementacin de cada Historia de Usuario en Semanas Ideales de Implementacin El cliente prioriza las Historias teniendo en cuenta el valor que le aporta al sistema tenerla completa

Reglas y prcticas de XP - Planificacin


Medir la Velocidad del Proyecto

Cunto trabajo est siendo completado en el proyecto? Suma de las estimaciones de las Historias de Usuario completas al fin de la Iteracin Utilizada para planificar la siguiente Iteracin

Reglas y prcticas de XP - Planificacin

Utilizamos la Velocidad del Proyecto para planificar


Por Fecha Por Alcance

Reglas y prcticas de XP - Planificacin


Liberaciones pequeas y frecuentes

Producir rpidamente versiones operativas del sistema No debera tardar ms de 3 meses

Reglas y prcticas de XP - Planificacin


Rotacin del Equipo

Ayuda a evitar Islas de Conocimiento Mejora la flexibilidad del equipo Evita la sobrecarga de una persona

Reglas y prcticas de XP - Planificacin


Mejorar el proceso cuando sea necesario

Es bueno tener reglas para saber qu esperar del equipo Si se detectan problemas en el avance se debe revisar qu est mal Debe consultarse al equipo sobre qu cosas dificultan el funcionamiento

Reglas y prcticas de XP - Diseo


Diseo simple:

Implementar la solucin ms simple que pueda funcionar La complejidad innecesaria y el cdigo extra debe ser removido inmediatamente No agregar nuevas funcionalidades antes de que sean agendadas

Reglas y prcticas de XP - Diseo


Metforas: El sistema es definido mediante una metfora o un conjunto de metforas compartidas por el cliente y el equipo de desarrollo Es una historia compartida que describe cmo debera funcionar el sistema Solventan el hecho de no contar con una definicin de la arquitectura desde el comienzo, ya que en XP la arquitectura se asume evolutiva

Reglas y prcticas de XP - Diseo


Tarjetas CRC:

Las Tarjetas CRC (Class, Responsibilities and Collaboration) sirven para disear el sistema en conjunto entre todo el equipo Permiten reducir el modo de pensar procedural y apreciar la tecnologa de objetos

Reglas y prcticas de XP - Diseo


No agregar funcionalidades antes de lo

planeado:

Parecera que fuera ms rpido agregarlas ahora pero nosotros debemos recordarnos constantemente que no las necesitamos ahora realmente y quizs nunca las necesitemos Funcionalidades extra siempre nos hacen atrasar y malgastar nuestros recursos

Reglas y prcticas de XP - Diseo


Refactorizacin:

Es una actividad constante de reestructuracin del cdigo con el objetivo de remover duplicacin de cdigo, mejorar su legibilidad, simplificarlo y hacerlo ms flexible para facilitar los posteriores cambios Mejora la estructura interna del cdigo sin alterar su comportamiento externo Nos ahorra tiempo e incrementa la calidad

Reglas y prcticas de XP - Codificacin


El cliente est siempre disponible:

Gran parte del xito del proyecto XP se debe a que es el cliente quien conduce constantemente el trabajo hacia lo que aportar mayor valor de negocio La comunicacin oral es ms efectiva que la escrita, ya que esta ltima toma mucho tiempo en generarse y puede tener ms riesgo de ser mal interpretada

Reglas y prcticas de XP - Codificacin


Las historias de usuario son escritas por los clientes con la ayuda de los desarrolladores El cliente debe negociar la seleccin de las historias de usuario que sern incluidas en una liberacin Como los detalles no son incluidos en las historias de usuario, los desarrolladores necesitarn hablar con los clientes para obtenerlos El cliente es necesario con las pruebas

Reglas y prcticas de XP - Codificacin

El tiempo del cliente es ahorrado al principio por no requerir una especificacin detallada de los requerimientos y ahorrado despus ya que el sistema es mucho ms probable que sea de su agrado

Reglas y prcticas de XP - Codificacin


Estndares de programacin:

XP enfatiza la comunicacin de los programadores a travs del cdigo, con lo cual es indispensable que se sigan ciertos estndares de programacin Mantienen el cdigo legible para los miembros del equipo, facilitando los cambios

Reglas y prcticas de XP - Codificacin


Pruebas unitarias:

La produccin de cdigo est dirigida por las pruebas unitarias Las pruebas unitarias son establecidas antes de escribir el cdigo y son ejecutadas constantemente ante cada modificacin del sistema Otros desarrolladores podrn ver como usar el cdigo observando las pruebas

Reglas y prcticas de XP - Codificacin


Programacin en parejas:

Incrementa la calidad del software sin impactar el tiempo para cumplir lo prometido Muchos errores son detectados conforme son introducidos en el cdigo Los diseos son mejores y el tamao del cdigo menor Los problemas de programacin se resuelven ms rpido

Reglas y prcticas de XP - Codificacin

Se posibilita la transferencia de conocimientos de programacin entre los miembros del equipo Varias personas entienden las diferentes partes del sistema Los programadores conversan mejorando as el flujo de informacin y la dinmica del equipo

Reglas y prcticas de XP - Codificacin


Integracin secuencial:

Solo una pareja de desarrolladores puede integrar, testear y liberar cambios al repositorio de cdigo en un momento determinado Se permite que la ltima versin est consistentemente identificada

Reglas y prcticas de XP - Codificacin


Integracin continua:

Cada pieza de cdigo es integrada en el sistema una vez que est lista. As, el sistema puede llegar a ser integrado y construido varias veces en un mismo da Es una forma de que todo el mundo est trabajando con casi la ltima versin Evita o detecta antes los problemas de compatibilidad

Reglas y prcticas de XP - Codificacin


Propiedad colectiva del cdigo:

Cualquier programador puede cambiar cualquier parte del cdigo en cualquier momento. Motiva a todos a contribuir con nuevas ideas en todos los segmentos del sistema, Evita que algn programador sea imprescindible para realizar cambios en alguna porcin de cdigo

Reglas y prcticas de XP - Codificacin


40 horas por semana:

Se debe trabajar un mximo de 40 horas por semana No se trabajan horas extras en dos semanas seguidas El trabajo extra desmotiva al equipo

Extreme Programming Roles en XP


Los roles siempre presentes en esta

metodologa son los siguientes:


Programador Cliente Encargado de pruebas (Tester) Encargado de seguimiento (Tracker) Entrenador (Coach) Gestor (Big Boss)

Extreme Programming Roles en XP


Roles Opcionales en los proyectos:

Consultor Doomsayer (Augur de desastres)

Extreme Programming Roles en XP


El programador escribe las pruebas

unitarias y produce el cdigo del sistema. Define las tareas que conlleva cada historia de usuario, y estima el tiempo que requerir cada una. El cliente escribe las historias de usuario y las pruebas funcionales para validar su implementacin. Asigna la prioridad a las historias de usuario y decide cules se implementan en cada iteracin centrndose en aportar mayor valor al negocio.

Extreme Programming Roles en XP


El encargado de pruebas ayuda al cliente a

escribir las pruebas funcionales. Ejecuta las pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas de soporte para pruebas. El encargado de seguimiento verifica las estimaciones realizadas, evala el progreso de cada iteracin y as como la factibilidad de los objetivos con las restricciones de tiempo y recursos presentes. Mantiene contacto directo con el equipo de desarrollo, realizando cambios para lograr los objetivos de cada iteracin.

Extreme Programming Roles en XP


El entrenador es responsable del proceso global.

Experto en XP, provee de las guas a los miembros del equipo para que se apliquen las prcticas XP y se siga el proceso correctamente. Determina la tecnologa y metodologas a usar por el equipo de desarrollo. El Gestor es el dueo del equipo y sus problemas. Experto en tecnologa y labores de gestin. Construye el plantel del equipo, obtiene los recursos necesarios y maneja los problemas que se generan. Administra a su vez las reuniones (planes de iteracin, agenda de compromisos, etc). No le dice al grupo lo que tiene que hacer, cuando hacerlo, ni verifica el avance de las tareas.

Extreme Programming Roles en XP

Roles Opcionales

Consultor

Es un miembro externo del equipo con un conocimiento especfico en algn tema necesario para el proyecto. Gua al equipo para resolver un problema especfico.

Doomsayer (Augur de desastres)

Es el responsable de que se conozcan los riesgos involucrados, que las malas noticias sean notificadas en la medida correcta, y que no se sobredimensionen. Busca posibles riesgos en forma constante, presentndolos al equipo siempre con una posible solucin.

Extreme Programming Roles en XP


Combinacin de Roles

Algunos roles pueden ser combinados en un mismo individuo. Por ejemplo, el Gestor y el Tracker. Sin embargo, otras combinaciones no son recomendadas; como ser: ProgramadorTracker, ProgramadorTester Cliente-Programador, Entrenador-Tracker.

Extreme Programming Conclusiones


XP es la metodologa mas popular dentro de

la familia surgida luego del manifiesto gil, las cuales buscan simplificar los procesos a travs de la reduccin de irreversibilidad de los mismos . Dicha metodologa ha probado ser de gran utilidad en proyectos pequeos y con requerimientos altamente cambiantes, aunque posee caractersticas que la hacen aplicable en ciertos ambientes nicamente.

Extreme Programming Conclusiones


Conceptos conocidos en los que se basa XP:

La alta comunicacin funciona. Un nico ambiente para el equipo aumenta la productividad dramticamente. La importancia de la Validacin. XP reduce el tiempo entre una idea, su criterio de validacin, y su implementacin. Requiere disponer de pruebas repetibles automatizadas que aseguren la consistencia en el futuro. El iterar funciona. XP obliga a iterar al establecer mltiples integraciones por da, iteraciones de una a tres semanas de largo que concluyan con un sistema funcionando, y nuevos lanzamientos cada pocos meses.

Extreme Programming Conclusiones


El futuro de XP Simplificacin del proceso de planificacin e integracin continua. Bsqueda de valores y principios ocultos que puedan informar de mtodos tiles. Lmites de XP. Cuando se debe seguir? Cual es su limite de integrantes? El rol del Cliente. Es un rol complejo de interpretar, y probablemente su papel en el proceso de desarrollo de software contine generando nuevas ideas.

Preguntas