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 guías 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 prácticas 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 específico en algún tema necesario para el
proyecto. Guía al equipo para resolver un problema
Aunque en otras fuentes de información aparecen específico.
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 vínculo 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 coordinación.
produce el código del sistema. Debe existir una
comunicación y coordinación adecuada entre los
programadores y otros miembros del equipo. 5. MODELO XP
7. REGLAS Y PRÁCTICAS
7.2.3. Recodificación
Fig. 2 Desarrollo
La recodificación (“refactoring”) consiste en
escribir nuevamente parte del código de un
programa, sin cambiar su funcionalidad, a los
efectos de hacerlo más simple, conciso y/o 7.3.1. Disponibilidad del cliente
entendible. Muchas veces, al terminar de escribir un
código de programa, pensamos que, si lo Uno de los requerimientos de XP es tener al
comenzáramos de nuevo, lo hubiéramos 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 programación en pares tiene
para que pueda desarrollarse un proyecto con la las siguientes ventajas:
metodología XP.
La mayoría de los errores se descubren en el
Al comienzo del proyecto, el cliente debe momento en que se codifican, ya que el código
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 estadísticamente menor.
los detalles necesarios para realizar el desarrollo del
código. Estos detalles deben ser proporcionados por Los diseños son mejores y el código más corto.
el cliente, y discutidos con los desarrolladores, El equipo resuelve problemas en forma más
durante la etapa de desarrollo. No se requieren de rápida.
largos documentos de especificaciones, sino que los Las personas aprenden significativamente más,
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 más personas que
conocen los detallas de cada parte del código.
Las personas aprenden a trabajar juntas,
7.3.2. Uso de estándares
generando mejor dinámica de grupo y haciendo
que la información fluya rápidamente.
Si bien esto no es una idea nueva, XP
promueve la programación basada en estándares, de Las personas disfrutan más de su trabajo.
manera que sea fácilmente entendible por todo el
equipo, y que facilite la recodificación.
7.3.5. Integraciones permanentes
7.3.3. Programación dirigida por las pruebas
(“Test-driven programming”) Todos los desarrolladores necesitan trabajar
siempre con la “última versión”. Realizar cambios o
En las metodologías tradicionales, la fase de mejoras sobre versiones antiguas causan graves
pruebas, incluyendo la definición 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 módulo. La versiones, aunque no sean las últimas, siempre que
metodología XP propone un modelo inverso, en el estén libres de errores. Idealmente, todos los días
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
mínimo necesario para pasar las pruebas puede integrar su código a la vez.
previamente definidas.
7.3.6. Propiedad colectiva del código
Las pruebas a los que se refieren esta práctica,
son las pruebas unitarias, realizados por los
En un proyecto XP, todo el equipo puede
desarrolladores. La definición 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 código que sea
7.3.4. Programación en pares necesario para corregir problemas, agregar
funciones o recodificar. En otras metodologías, este
XP propone que se desarrolle en pares de concepto puede parecer extraño. 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 práctica responsabilidad también 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
diseños, compensando la inversión 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 metodología XP indica que debe llevarse
un ritmo sostenido de trabajo. Anteriormente, ésta Las pruebas de aceptación son consideradas
práctica 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 práctica 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 resolución.
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 más perjudicial que todas las pruebas de aceptación. 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 aceptación, de
producto. En la medida de lo posible, se debería manera que todo el equipo esté al tanto de esta
renegociar el plan de entregas (“Release Plan”), información.
realizando una nueva reunión de planificación con el
cliente, los desarrolladores y los gerentes.
Adicionalmente, agregar más 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 práctica que haga que el
esfuerzo de entender y aplicar sus prácticas, sea
Las pruebas unitarias son una de las piedras insignificante con respecto a los beneficios obtenidos.
angulares de XP. Todos los módulos 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 integración es continuo, por lo que el
realizar el código (“Test-driven programming”). esfuerzo final para la integración es nulo. Se
consigue integrar todo el trabajo con mucha mayor
Que todo código 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 código. 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 código, para que pueda ser utilizado por
Se consiguen productos más fiables y robustos
otros desarrolladores, en caso de tener que corregir,
contra los fallos gracias al diseño de los test de
cambiar o recodificar parte del mismo.
forma previa a la codificación.
Obtenemos código más simple y más fácil de
7.4.2. Detección y corrección de errores entender, reduciendo el número de errores.
Gracias a la filosofía del “pair programming”
Cuando se encuentra un error (“bug”), éste (programación en parejas), se consigue que los
debe ser corregido inmediatamente, y se deben tener desarrolladores apliquen las buenas prácticas 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 más fácil el modificar los
verificar que el error haya sido resuelto. requerimientos del usuario.
Conseguimos tener un equipo de desarrollo más
contento y motivado. Las razones son, por un lado
7.4.3. Pruebas de aceptación el que la XP no permite excesos de trabajo (se debe
trabajar 40 horas a la semana), y por otro la
Las pruebas de aceptación son creadas en comunicación entre los miembros del equipo que
base a las historias de usuarios, en cada ciclo de la consigue una mayor integración entre ellos.
iteración 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. BIBLIOGRAFÍA
establecer el costo y la duración del mismo.
[1] BECK Kent, MARTIN Fowler. Planning Extreme Programming
No se puede aplicar a proyectos de gran escala, que 2da. Edición, Boston, 2004.
requieran mucho personal, a menos que se las [2] SOMMERVILLE Ian. Ingeniería del Software 7ma. Edición,
subdivida en proyectos más pequeños. Pearson Educación S.A, Madrid, 2006.
Es más complicado medir los avances del proyecto, [3] FERNANDEZ Luis. Una revisión sistemática de la adaptación
del proceso software, Revista Española de Innovación Calidad e
pues es muy complicado el uso de una medida Ingeniería del Software (REICES), Vol.3, No. 2, Pág. 21-38,
estándar. Octubre 2007.
Altas comisiones en caso de fallar. [4] CASTRO Paco, Programación Orientada a Objetos, Revista del
Instituto Tecnológico de Informática, Vol. 1, No. 1, Pág. 4,
Octubre 2004.
[5] MARCK C. Paulk, Extreme Programming from a CMM
9. CONCLUSIONES Y RECOMENACIONES Perspective, Revista FOCUS, Vol. 1, No.1, Pág. 8, December
2002
[6] ANONIMO, Detalles de Metodología Xp,
9.1. Conclusiones http://www.extremeprogramming.org/, 15 de Diciembre de 2012.
[7] ANONIMO, Extreme Programming: A Gentle Introduction,
Es difícil estimar el costo y duración del proyecto http://www.extremeprogramming.org/, 15 de Diciembre de 2013
por no existir una definición desde inicio. [8] CALDERON Amaro, Metodologías Á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 Héctor.
ayuda a que los requerimientos sean más Programación Extrema,
compresibles y de fácil aprobación. http://programacionextrema.tripod.com/index.htm, 10 de
diciembre 2013
[10] VALVERDE David, Introducción a la Programación 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.