Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El equipo debe trabajar como uno, sin hacer Es responsable del proceso global. Es necesario que
decisiones repentinas. Extreme Programming promueve conozca a fondo el proceso XP para proveer guas a los
el trabajo del equipo. Cada integrante del proyecto miembros del equipo de forma que se apliquen las
(cliente, desarrolladores, etc.) forman parte integral del prcticas XP y se siga el proceso correctamente.
equipo encargado de desarrollar software de calidad. El
equipo debe trabajar como uno, sin hacer decisiones 4.6. Consultor
repentinas.
Es un miembro externo del equipo con un
4. ROLES XP conocimiento especfico en algn tema necesario para el
proyecto. Gua al equipo para resolver un problema
Aunque en otras fuentes de informacin aparecen especfico.
algunas variaciones y extensiones de roles XP, en este
apartado describiremos los roles de acuerdo con la 4.7. Gestor (Big boss)
propuesta original de Beck.
Es el vnculo entre clientes y programadores, ayuda
4.1. Programador a que el equipo trabaje efectivamente creando las
condiciones adecuadas. Su labor esencial es de
El programador escribe las pruebas unitarias y coordinacin.
produce el cdigo del sistema. Debe existir una
comunicacin y coordinacin adecuada entre los
programadores y otros miembros del equipo. 5. MODELO XP
7. REGLAS Y PRCTICAS
7.2.3. Recodificacin
Fig. 2 Desarrollo
La recodificacin (refactoring) consiste en
escribir nuevamente parte del cdigo de un
programa, sin cambiar su funcionalidad, a los
efectos de hacerlo ms simple, conciso y/o 7.3.1. Disponibilidad del cliente
entendible. Muchas veces, al terminar de escribir un
cdigo de programa, pensamos que, si lo Uno de los requerimientos de XP es tener al
comenzramos de nuevo, lo hubiramos hecho en cliente disponible durante todo el proyecto. No
forma diferente, mas clara y eficientemente. Sin solamente como apoyo a los desarrolladores, sino
formando parte del grupo.
El involucramiento del cliente es fundamental Adicionalmente, la programacin en pares tiene
para que pueda desarrollarse un proyecto con la las siguientes ventajas:
metodologa XP.
La mayora de los errores se descubren en el
Al comienzo del proyecto, el cliente debe momento en que se codifican, ya que el cdigo
proporcionar las historias de usuarios. es permanentemente revisado por dos personas.
Pero, dado que estas historias son La cantidad de defectos encontrados en las
expresamente cortas y de alto nivel, no contienen pruebas es estadsticamente menor.
los detalles necesarios para realizar el desarrollo del
cdigo. Estos detalles deben ser proporcionados por Los diseos son mejores y el cdigo ms corto.
el cliente, y discutidos con los desarrolladores, El equipo resuelve problemas en forma ms
durante la etapa de desarrollo. No se requieren de rpida.
largos documentos de especificaciones, sino que los Las personas aprenden significativamente ms,
detalles son proporcionados por el cliente, en el acerca del sistema y acerca de desarrollo de
momento adecuado, cara a cara a los software.
desarrolladores. El proyecto termina con ms personas que
conocen los detallas de cada parte del cdigo.
Las personas aprenden a trabajar juntas,
7.3.2. Uso de estndares
generando mejor dinmica de grupo y haciendo
que la informacin fluya rpidamente.
Si bien esto no es una idea nueva, XP
promueve la programacin basada en estndares, de Las personas disfrutan ms de su trabajo.
manera que sea fcilmente entendible por todo el
equipo, y que facilite la recodificacin.
7.3.5. Integraciones permanentes
7.3.3. Programacin dirigida por las pruebas
(Test-driven programming) Todos los desarrolladores necesitan trabajar
siempre con la ltima versin. Realizar cambios o
En las metodologas tradicionales, la fase de mejoras sobre versiones antiguas causan graves
pruebas, incluyendo la definicin de los tests, es problemas, y retrasan al proyecto. Es por eso que
usualmente realizada sobre el final del proyecto, o XP promueve publicar lo antes posible las nuevas
sobre el final del desarrollo de cada mdulo. La versiones, aunque no sean las ltimas, siempre que
metodologa XP propone un modelo inverso, en el estn libres de errores. Idealmente, todos los das
que, lo primero que se escribe son los test que el deben existir nuevas versiones publicadas. Para
sistema debe pasar. Luego, el desarrollo debe ser el evitar errores, solo una pareja de desarrolladores
mnimo necesario para pasar las pruebas puede integrar su cdigo a la vez.
previamente definidas.
7.3.6. Propiedad colectiva del cdigo
Las pruebas a los que se refieren esta prctica,
son las pruebas unitarias, realizados por los
En un proyecto XP, todo el equipo puede
desarrolladores. La definicin de estos test al
contribuir con nuevas ideas que apliquen a cualquier
comienzo, condiciona o dirige el desarrollo.
parte del proyecto. Asimismo, cualquier pareja de
programadores puede cambiar el cdigo que sea
7.3.4. Programacin en pares necesario para corregir problemas, agregar
funciones o recodificar. En otras metodologas, este
XP propone que se desarrolle en pares de concepto puede parecer extrao. Muchas veces se
programadores, ambos trabajando juntos en un asume que, si hay algo de propiedad colectiva, la
mismo ordenador. Si bien parece que sta prctica responsabilidad tambin es colectiva. Y que todos
duplica el tiempo asignado al proyecto (y por ende, sean responsables, muchas veces significa que
los costos en recursos humanos), al trabajar en pares nadie es responsable.
se minimizan los errores y se logran mejores
diseos, compensando la inversin en horas. El
7.3.7. Ritmo sostenido
producto obtenido es por lo general de mejor calidad
que cuando el desarrollo se realiza por
programadores individuales.
La metodologa XP indica que debe llevarse
un ritmo sostenido de trabajo. Anteriormente, sta Las pruebas de aceptacin son consideradas
prctica se denominaba Semana de 40 horas. Sin como pruebas de caja negra (Black box system
embargo, lo importante no es si se trabajan, 35, 40 o tests). Los clientes son responsables de verificar
42 horas por semana. El concepto que se desea que los resultados de estas pruebas sean correctos.
establecer con esta prctica es el de planificar el Asimismo, en caso de que fallen varias pruebas,
trabajo de manera de mantener un ritmo constante y deben indicar el orden de prioridad de resolucin.
razonable, sin sobrecargar al equipo.
Una historia de usuario no se puede
Cuando un proyecto se retrasa, trabajar considerar terminada hasta tanto pase correctamente
tiempo extra puede ser ms perjudicial que todas las pruebas de aceptacin. Dado que la
beneficioso. El trabajo extra desmotiva responsabilidad es grupal, es recomendable publicar
inmediatamente al grupo e impacta en la calidad del los resultados de las pruebas de aceptacin, de
producto. En la medida de lo posible, se debera manera que todo el equipo est al tanto de esta
renegociar el plan de entregas (Release Plan), informacin.
realizando una nueva reunin de planificacin con el
cliente, los desarrolladores y los gerentes.
Adicionalmente, agregar ms desarrolladores en 8. VENTAJAS Y DESVENTAJAS
proyectos ya avanzados no siempre resuelve el
problema.
8.1. Ventajas
7.4. Pruebas
Evidentemente, para que algo est siendo tomado
tan en cuenta como la XP, debe ofrecer una serie de
7.4.1. Pruebas unitarias ventajas a la hora de ponerlo en prctica que haga que el
esfuerzo de entender y aplicar sus prcticas, sea
Las pruebas unitarias son una de las piedras insignificante con respecto a los beneficios obtenidos.
angulares de XP. Todos los mdulos deben de pasar
las pruebas unitarias antes de ser liberados o Se consiguen productos usables con mayor rapidez.
publicados. Las pruebas deben ser definidas antes de El proceso de integracin es continuo, por lo que el
realizar el cdigo (Test-driven programming). esfuerzo final para la integracin es nulo. Se
consigue integrar todo el trabajo con mucha mayor
Que todo cdigo liberado pase correctamente facilidad.
las pruebas unitarias es lo que habilita que funcione Se atienden las necesidades del usuario con mayor
la propiedad colectiva del cdigo. En este sentido, el exactitud. Esto se consigue gracias a las continuas
sistema y el conjunto de pruebas debe ser guardado versiones que se ofrecen al usuario.
junto con el cdigo, para que pueda ser utilizado por
Se consiguen productos ms fiables y robustos
otros desarrolladores, en caso de tener que corregir,
contra los fallos gracias al diseo de los test de
cambiar o recodificar parte del mismo.
forma previa a la codificacin.
Obtenemos cdigo ms simple y ms fcil de
7.4.2. Deteccin y correccin de errores entender, reduciendo el nmero de errores.
Gracias a la filosofa del pair programming
Cuando se encuentra un error (bug), ste (programacin en parejas), se consigue que los
debe ser corregido inmediatamente, y se deben tener desarrolladores apliquen las buenas prcticas que se
precauciones para que errores similares no vuelvan a les ofrecen con la XP.
ocurrir. Asimismo, se generan nuevas pruebas para Gracias al refactoring es ms fcil el modificar los
verificar que el error haya sido resuelto. requerimientos del usuario.
Conseguimos tener un equipo de desarrollo ms
contento y motivado. Las razones son, por un lado
7.4.3. Pruebas de aceptacin el que la XP no permite excesos de trabajo (se debe
trabajar 40 horas a la semana), y por otro la
Las pruebas de aceptacin son creadas en comunicacin entre los miembros del equipo que
base a las historias de usuarios, en cada ciclo de la consigue una mayor integracin entre ellos.
iteracin del desarrollo. El cliente debe especificar
uno o diversos escenarios para comprobar que una
historia de usuario ha sido correctamente 8.2. Desventajas
implementada.
Resulta muy complicado planear el proyecto y 10. BIBLIOGRAFA
establecer el costo y la duracin del mismo.
[1] BECK Kent, MARTIN Fowler. Planning Extreme Programming
No se puede aplicar a proyectos de gran escala, que 2da. Edicin, Boston, 2004.
requieran mucho personal, a menos que se las [2] SOMMERVILLE Ian. Ingeniera del Software 7ma. Edicin,
subdivida en proyectos ms pequeos. Pearson Educacin S.A, Madrid, 2006.
Es ms complicado medir los avances del proyecto, [3] FERNANDEZ Luis. Una revisin sistemtica de la adaptacin
del proceso software, Revista Espaola de Innovacin Calidad e
pues es muy complicado el uso de una medida Ingeniera del Software (REICES), Vol.3, No. 2, Pg. 21-38,
estndar. Octubre 2007.
Altas comisiones en caso de fallar. [4] CASTRO Paco, Programacin Orientada a Objetos, Revista del
Instituto Tecnolgico de Informtica, Vol. 1, No. 1, Pg. 4,
Octubre 2004.
[5] MARCK C. Paulk, Extreme Programming from a CMM
9. CONCLUSIONES Y RECOMENACIONES Perspective, Revista FOCUS, Vol. 1, No.1, Pg. 8, December
2002
[6] ANONIMO, Detalles de Metodologa Xp,
9.1. Conclusiones http://www.extremeprogramming.org/, 15 de Diciembre de 2012.
[7] ANONIMO, Extreme Programming: A Gentle Introduction,
Es difcil estimar el costo y duracin del proyecto http://www.extremeprogramming.org/, 15 de Diciembre de 2013
por no existir una definicin desde inicio. [8] CALDERON Amaro, Metodologas giles,
http://seccperu.org/files/Metodologias%20Agiles.pdf, 15 de
El cliente le da un valor agregado al proyecto ya que Diciembre de 2013
[9] CASTILLO Oswaldo, FIGUEROA Daniel, SEVILLA Hctor.
ayuda a que los requerimientos sean ms Programacin Extrema,
compresibles y de fcil aprobacin. http://programacionextrema.tripod.com/index.htm, 10 de
diciembre 2013
[10] VALVERDE David, Introduccin a la Programacin Extrema
Organiza a los integrantes del equipo para trabajar a
(XP), http://www.davidvalverde.com/blog/introduccion-a-la-
un mismo ritmo divertido y con horario adecuado. programacion-extrema-xp/, 11 de Diciembre 2013
9.2. Recomendaciones.