Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Extreme Programing
Sesin 10
Ing. Gener Zambrano M. Sc.
gzambranol@usmp.pe
XP Historia.
La programacin extrema o eXtreme Programming (XP) es un
enfoque de la ingeniera de software formulado por Kent Beck,
autor del primer libro sobre la materia, Extreme Programming
Explained: Embrace Change (1999).
Todo en el software cambia. Los requisitos cambian.
1. El diseo cambia.
2. El negocio cambia.
3. La tecnologa cambia.
4. El equipo cambia.
5. 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.
XP Historia.
Es una metodologa gil centrada en potenciar las relaciones
interpersonales como clave para el xito en desarrollo de software,
promoviendo el trabajo en equipo, preocupndose por el
aprendizaje de los desarrolladores, y propiciando un buen clima de
trabajo. XP se basa en realimentacin continua entre el cliente y el
equipo de desarrollo, comunicacin fluida entre todos los
participantes, simplicidad en las soluciones implementadas y
coraje para enfrentar los cambios. XP se define como
especialmente adecuada para proyectos con requisitos imprecisos
y muy cambiantes, y donde existe un alto riesgo tcnico.
Qu es XP?
Un proceso ligero, de bajo riesgo, flexible, predecible, cientfico y
divertido de desarrollar software.
Basada en la simplicidad, la comunicacin y el reciclado continuo
de cdigo.
Conjunto de practicas y reglas empleadas para desarrollar software
En vez de planificar, analizar y disear para el futuro distante,
hacer todo esto un poco cada vez, a travs de todo el proceso de
desarrollo.
XP caractersticas:
Principios de actuacin claves :
1. Acortar los ciclos de desarrollo
2. Involucrar al cliente desde el principio hasta el final de cada
ciclo.
Se centra en la satisfaccin del cliente.
1. Diseada para entregar el software, a quien lo necesita, en el
momento en el cual lo necesita.
2. Provee los mecanismos necesarios para hacer cambios en los
requerimientos del usuario (incluso bien avanzado el ciclo de
vida del software).
Enfatiza el trabajo en equipo.
Gerentes, clientes y
desarrolladores, forman un gran equipo de trabajo, dedicado a
entregar un software de calidad.
XP caractersticas:
XP valores:
XP no es un conjunto de reglas a
seguir, sino una forma de trabajar
en armona con los valores
personales y organizacionales,
que tiene su punto de partida en
cinco valores fundamentales que
son: Comunicacin, Simplicidad,
Retroalimentacin, Coraje y
Respeto.
XP valores:
Simplicidad
La simplicidad consiste en desarrollar slo el sistema que
realmente se necesita. Implica resolver en cada momento slo
las necesidades actuales.
Desarrollaremos lo que sea solicitado y necesario.
un diseo y programacin simple mejora la calidad de las
comunicaciones, pues es ms fcil de implementar y entender
por todos en el equipo.
XP valores:
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.
La
XP valores:
Coraje
El 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.
Se requiere valor para comunicarse con los dems cuando eso
podra exponer la propia ignorancia. Se requiere valor para
mantener el sistema simple, dejando para maana las decisiones
de maana. Y, sin un sistema simple, comunicacin constante y
retroalimentacin, es difcil ser valeroso.
XP valores:
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.
Algunos problemas en los proyectos tienen su origen en que
alguien no dijo algo a alguien ms sobre algo importante en
algn momento. XP hace casi imposible la falta de
comunicacin.
XP valores:
Respeto
El valor de respeto incluye el respeto por los dems , as como el
respeto propio.
Los miembros respetan su propio trabajo por siempre luchando
por la alta calidad y la bsqueda para el mejor diseo para la
solucin a la mano a travs de la refactorizacin .
Por ejemplo, los desarrolladores nunca deben subir cambios que
impidan la compilacin de la versin, que hagan fallar pruebas
unitarias ya realizadas o que de alguna otra forma retrasen el
trabajo de sus pares, esto significa tener respeto por el trabajo (y el
tiempo) de los dems.
Principios de XP:
XP no es un modelo de procesos ni un marco de trabajo, sino
un conjunto de 12 prcticas que se complementan unas a otras y
deben implementarse en un entorno de desarrollo cuya cultura
se base en los cuatro valores citados
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.
Principios de XP:
Prcticas de desarrollo:
5. Adoptar un mtodo de desarrollo basado en las pruebas para
asegurar que el cdigo se comporta segn lo esperado.
6. Programacin por parejas, para incrementar el conocimiento,
la experiencia y las ideas.
Principios de XP:
Prcticas de negocio:
XP - roles:
Los roles presentes en esta metodologa son los siguientes:
XP Fases (prcticas):
XP Fases (prcticas):
1. Planeacin:
Se escucha los requerimientos, las necesidades de los usuarios,
esta actividad conlleva a la creacin de historias de usuario, las
cuales describen la salida necesaria, caractersticas y
funcionalidades del software a elaborar, cada historia es colocada
en una tarjeta indizada, as el cliente asigna un valor o prioridad a
determinada historia, tomando como referencia el valor, que la
actividad descrita en la tarjeta, representa para el negocio.
Posteriormente el equipo de trabajo evala cada historia y se le
asigna un costo medido en semanas de desarrollo, en el caso que
este sea superior a tres semanas, se solicita al usuario que
descomponga la historia original en otras mas pequeas y que
puedan ser abarcadas en dicho tiempo.
XP Fases (prcticas):
1. Planeacin:
Una vez llegado a un compromiso sobre las entregas, las historias
son ordenadas segn su desarrollo de la siguiente manera:
Todas las historias se implementarn de inmediato.
Las historias con ms valor y ms riesgosas entrarn en la
programacin de actividades y se implementarn en primer
lugar.
Una vez realizada la primera entrega de software (o
incremento), se calcula la velocidad del proyecto, el cual es el
nmero de historias implementadas para dicha entrega.
XP Fases (prcticas):
1. Planeacin:
El valor obtenido permite: Facilitar la estimacin de las fechas
de entrega y programar actividades para entregas posteriores,
determinar el grado de compromiso para todas las historias
durante el desarrollo del proyecto, ajustando la velocidad de
las entregas.
XP Fases (prcticas):
1. Planeacin:
Para el negocio:
XP Fases (prcticas):
1. Planeacin:
Para el desarrollador:
consecuencias
de
las
XP Fases (prcticas):
2. Diseo:
XP Fases (prcticas):
2. Diseo:
En aquellos casos donde se encuentre un problema de diseo
difcil, se recomienda la creacin de un prototipo operativo para
esa porcin de diseo, implementando y evaluando el prototipo
de diseo, as cuando se implemente la implementacin
verdadera, se disminuyen los riesgos.
La programacin extrema estimula el rediseo, as el
comportamiento externo del cdigo queda inalterable, pese a las
mejoras realizadas en su estructura interna, al modificar y
simplificar el diseo interno, esto slo se puede alcanzar gracias a
las ventajas que ofrece la encapsulacin y el polimorfismo de la
programacin orientada a objetos.
XP Fases (prcticas):
3. Codificacin:
El primer paso de la codificacin, no es escribir el cdigo mismo
del desarrollo, al contrario, se elaboran las pruebas unitarias de
cada una de las entregas relacionadas con las historias, de esta
manera el desarrollador centrar sus esfuerzos de programacin
en pasar las pruebas previamente elaboradas, es decir, las pruebas
actan como guas de accin para el programador.
El cdigo se debe integrar como mnimo una vez al da, y realizar
las pruebas sobre la totalidad del sistema.
XP Fases (prcticas):
4. Pruebas:
XP prcticas de la planificacin
Historias de usuarios (relatos)
Las historias de usuario son un conjunto de fichas escritas por
el cliente con la ayuda de los desarrolladores para indicar las
funciones que debe realizar el sistema, constituyendo el
mecanismo base de captura de requerimientos de la
programacin extrema.
Cada historia de usuario incluye una breve descripcin,
entorno a lo que el sistema debe de hacer, es importante
procurar no incluir sintaxis tcnica, de modo que se centren en
las necesidades y no en la especificacin del aspecto de las
interfaces de usuario ni en la implementacin, como base de
datos.
Los clientes ayudan a asegurar que la mayora de las
funcionalidades deseadas para el sistema estn cubierta con las
historias.
Nmero: 001
Usuario: Paciente
Prioridad en Negocio: Alta
(Alta / Media / Baja)
Riesgo en Desarrollo: Medio
(Alto / Medio / Bajo)
Descripcin:
Los pacientes podrn (previa autenticacin) gestionar sus citas, es decir, podrn generar, modificar o anular
sus citas. Para generar una cita el paciente deber realizar una bsqueda seleccionando la especialidad o
ingresando el nombre del mdico, el sistema mostrar las especialidades, mdicos, fechas y horas
disponibles de acuerdo a la bsqueda realizada. El paciente deber seleccionar la fecha y hora para generar
su cita, la cual se guardar en un registro. Adems, en la opcin Gestionar Citas el sistema mostrar una lista
de las citas pendientes, esto permitir al paciente modificar o anular una cita; para ello el paciente
seleccionar la cita que desea modificar y podr cambiar la fecha, hora y/o mdico de acuerdo a la
disponibilidad (para ello previamente se debe realizar una bsqueda por mdicos), si desea anular la cita
seleccionar la opcin Anular Cita.
Observaciones:
El paciente slo podr modificar fecha, hora y/o mdico.
El sistema permitir anular la cita slo si se realiza con un plazo mximo de dos horas de anticipacin a la
10/5/2015
cita.
XP prcticas de la planificacin
Tarjetas de ingeniera
Tarea de Ingeniera
Nmero Tarea:
Nombre Tarea:
Tipo de Tarea :
Desarrollo / Correccin / Mejora / Otra
Puntos Estimados:
(especificar)
Fecha Inicio:
Programador Responsable:
Descripcin:
Fecha Fin:
Diseo simple:
1. Implementar la solucin ms simple que pueda funcionar
Ciclo de entregas:
Enlaces:
http://www.extremeprogramming.org/
http://xprogramming.com/index.php
Luca,
Fin de la sesin 10
Ing. Gener Zambrano M. Sc.
gzambranol@usmp.pe