Vous êtes sur la page 1sur 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 de los procesos y las herramientas por encima
El software que funciona de la documentacin exhaustiva por encima
La colaboracin con el cliente la negociacin contractual por encima
La respuesta al cambio seguimiento de un plan por encima
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




FEEDBACK CORAJE COMUNICACIN SIMPLICIDAD
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.



Con este principio de simplicidad, junto con la
comunicacin y el feedback resulta ms fcil conocer
las necesidades reales
Los costos y la complejidad de predecir el futuro son muy elevados, y la mejor
forma de acertar es esperar al futuro.
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 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.

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
Mirar la planificacin como un Juego
Objetivos
Jugadores
Piezas
Reglas
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

Vous aimerez peut-être aussi