Está en la página 1de 10

Metodologa gil de Desarrollo de Software XP

Borja Lpez Yolanda


yoly.borja@gmail.com
ESPE, MEVAST

RESUMEN good results. The design of software architecture is a


very important practice for software development. To
have a good architecture means that our system quality
Las metodologas giles han ganado bastante attributes will give us a very important value in the
popularidad desde hace algunos aos. Si bien son una software. If you define activities that encourage the use
muy buena solucin para proyectos a corto plazo, en of methods for the development of architecture in a
especial, aquellos proyectos en donde los requerimientos software development process, you can get many
estn cambiando constantemente, en proyecto a largo benefits with respect to the product being developed.
plazo, el aplicar metodologas giles no dan tan buenos However, to agile methodologies such activities are not
resultados. El diseo de la arquitectura de software es considered as important.
una prctica muy importante para el desarrollo de
software. Tener una buena arquitectura implica que This is the philosophy of agile methodologies,
nuestro sistema tiene atributos de calidad que nos van a which give more value to the individual, to the
dar un valor muy importante en el software. Si se collaboration with customers and incremental software
definen actividades que fomenten el uso de mtodos para development with very short interactions. This approach
el desarrollo de la arquitectura, en un proceso de is showing its effectiveness in projects with changing
desarrollo de software, se puede obtener muchos requirements as required drastically reduce development
beneficios con respecto al producto que se desarrollo. time while maintaining high quality.
Sin embargo, para las metodologas giles esas
actividades no se consideran en forma importante. Agile methodologies are revolutionizing the way to
produce software, while this generates much debate
between its supporters and those of skepticism or belief
Esta es la filosofa de las metodologas giles, las
do not see them as an alternative to traditional
cuales dan mayor valor al individuo, a la colaboracin
methodologies.
con el cliente y al desarrollo incremental del software
con iteraciones muy cortas. Este enfoque est mostrando
The rationale for this study is based on analysis
su efectividad en proyectos con requisitos muy
cambiantes y cuando se exige reducir drsticamente los methodologies Xp, its main features, concepts and
tiempos de desarrollo pero manteniendo una alta calidad. conclusions.

Las metodologas giles estn revolucionando la JUSTIFICACION


manera de producir software, y a la vez generando un
amplio debate entre sus seguidores y quienes por
escepticismo o convencimiento no las ven como La metodologa gil XP surge con el propsito de
transformar la esencia del desarrollo de los procesos
alternativa para las metodologas tradicionales.
que se ejecutan al momento de llevar acabo la
planificacin y ejecucin de un proyecto de creacin de
La razn de ser de este trabajo se basa en el anlisis software esta metodologa se enfoca en integrar en
de algunos tipos de metodologas existentes, viendo sus una mejora continua al usuario y al grupo de
principales caractersticas, conceptos y conclusiones. individuo que se encargaran de resolver la
problemtica percibida.
ABSTRACT
XP en comparacin de las metodologas
Agile methodologies have gained a lot of popularity tradicionales es mas rpida, ya que conlleva menos
in recent years. While they are a very good solution for protocolo, lo que evita que existan jerarquas dentro del
short-term projects, especially those projects where grupo, lo cual permite que cada integrante del grupo
requirements are constantly changing, in long-term pueda aportar en cualquier motivo, por la cual se
project, applying agile methodologies do not give such
implementara o har uso de esta metodologa es, que la 2. QUE ES XP
misma se enfoca en resultados a corto plazos es decir
los resultados que se van obteniendo a lo largo de XP es una metodologa gil para el desarrollo de
la modulacin sern verificados al instante y de existir software y consiste bsicamente en ajustarse
alguna anomala o falta se har las correcciones estrictamente a una serie de reglas que se centran en las
correspondientes. De esta forma rpida es posible necesidades del cliente para lograr un producto de buena
obtener los resultados esperados a corto plazo y de calidad en poco tiempo, centrada en potenciar las
manera eficiente el sistema tomara robustez en la relaciones interpersonales como clave para el xito del
utilizacin de los mdulos se lograra de manera desarrollo de software.
instantnea.
La filosofa de XP es satisfacer al completo las
Los resultados son verificados por el usuario de necesidades del cliente, por eso lo integra como una
manera que apruebe el producto y as obtener una parte ms del equipo de desarrollo.
seguridad y solidez en el desarrollo del sistema, de esta
manera el resultado final lograra satisfacer en un gran Promueve el trabajo en equipo, preocupndose en
porcentaje la expectativas y las necesidades del todo momento del aprendizaje de los desarrolladores y
usuario. estableciendo un buen clima de trabajo.

Este tipo de programacin es la adecuada para los


1. INTRODUCCIN proyectos con requisitos imprecisos, muy cambiantes y
donde existe un alto riesgo tcnico.
La programacin extrema o XP es una metodologa
de desarrollo que se englobara dentro de las XP est diseada para el desarrollo de aplicaciones
denominadas metodologas giles en la que se da que requieran un grupo de programadores pequeo,
mxima prioridad a la obtencin de resultados y reduce dnde la comunicacin sea ms factible que en grupos
la burocracia que utiliza las metodologas de desarrollo grandes. La comunicacin es un punto
tradicionales. importante y debe realizarse entre los programadores, los
jefes de proyecto y los clientes.
Generalmente el proceso de desarrollo llevaba
asociado un marcado nfasis en el control del proceso
mediante una rigurosa definicin de roles, actividades y 3. VALORES DE XP
artefactos, incluyendo modelado y documentacin
detallada. Este esquema "tradicional" para abordar el 3.1. Comunicacin
desarrollo de software ha demostrado ser efectivo y
necesario en proyectos de gran tamao (respecto a Prevalece en todas las prcticas de Extreme
tiempo y recursos), donde por lo general se exige un alto Programming. Comunicacin cara a cara es la mejor
grado de ceremonia en el proceso. Sin embargo, este forma de comunicacin, entre los desarrolladores y el
enfoque no resulta ser el ms adecuado para muchos de cliente. Mtodo muy gil. Gracias a esto el equipo esta
los proyectos actuales donde el entorno del sistema es pude realizar cambios que al cliente no le gustaron.
muy cambiante, y en donde se exige reducir
drsticamente los tiempos de desarrollo pero 3.2. Simplicidad
manteniendo una alta calidad.
La simplicidad ayuda a que los desarrolladores de
Ante las dificultades para utilizar metodologas software encuentren soluciones ms simples a
tradicionales con estas restricciones de tiempo y problemas, segn el cliente lo estipula. Los
flexibilidad, muchos equipos de desarrollo se resignan a desarrolladores tambin crean caractersticas en el
prescindir de las buenas prcticas de la Ingeniera del diseo que pudieran ayudar a resolver problemas en un
Software, asumiendo el riesgo que ello conlleva. futuro.

En este contexto las metodologas giles emergen 3.3. Retroalimentacin


como una posible respuesta para llenar ese vaco
metodolgico. Por estar especialmente orientadas para La retroalimentacin continua del cliente permite a
proyectos pequeos, las Metodologas giles los desarrolladores llevar y dirigir el proyecto en una
constituyen una solucin a medida para ese entorno, direccin correcta hacia donde el cliente quiera.
aportando una elevada simplificacin que a pesar de ello
no renuncia a las prcticas esenciales para asegurar la
calidad del producto.
3.4. Valenta comunicando los resultados para mejorar futuras
estimaciones. Tambin realiza el seguimiento del
Requiere que los desarrolladores vayan a la par con progreso de cada iteracin y evala si los objetivos son
el cambio, por que sabemos que este cambio es alcanzables con las restricciones de tiempo y recursos
inevitable, pero el estar preparado con una metodologa presentes.
ayuda a ese cambio. Programa para hoy y no para
maana. Determina cundo es necesario realizar algn
cambio para lograr los objetivos de cada iteracin.

3.5. Respeto 4.5. Entrenador (Coach)

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

4.2. Cliente La metodologa XP define cuatro variables para


cualquier proyecto de software: costo, tiempo, calidad y
El cliente escribe las historias de usuario y las alcance.
pruebas funcionales para validar su implementacin.
Adems, asigna la prioridad a las historias de usuario y Adems, se especifica que, de estas cuatro variables,
decide cules se implementan en cada iteracin slo tres de ellas podrn ser fijadas arbitrariamente por
centrndose en aportar mayor valor al negocio. El cliente actores externos al grupo de desarrolladores (clientes y
es slo uno dentro del proyecto pero puede corresponder jefes de proyecto). El valor de la variable restante podr
a un interlocutor que est representando a varias ser establecido por el equipo de desarrollo, en funcin de
personas que se vern afectadas por el sistema. los valores de las otras tres. Este mecanismo indica que,
por ejemplo, si el cliente establece el alcance y la
4.3. Encargado de pruebas (Tester) calidad, y el jefe de proyecto el precio, el grupo de
desarrollo tendr libertad para determinar el tiempo que
El encargado de pruebas ayuda al cliente a escribir durar el proyecto.
las pruebas funcionales. Ejecuta las pruebas
regularmente, difunde los resultados en el equipo y es Por esto, se trata de realizar ciclos de desarrollo
responsable de las herramientas de soporte para pruebas. cortos (llamados iteraciones), con entregables
funcionales al finalizar cada ciclo. En cada iteracin se
4.4. Encargado de seguimiento (Tracker) realiza un ciclo completo de anlisis, diseo, desarrollo y
pruebas, pero utilizando un conjunto de reglas y
El encargado de seguimiento proporciona prcticas que caracterizan a XP.
realimentacin al equipo en el proceso XP. Su
responsabilidad es verificar el grado de acierto entre las Tpicamente un proyecto con XP lleva 10 a 15
estimaciones realizadas y el tiempo real dedicado, ciclos o iteraciones. La siguiente figura esquematiza los
ciclos de desarrollo en cascada e iterativos tradicionales En esta fase, los clientes plantean a grandes rasgos
(por ejemplo, incremental o espiral), comparados con el las historias de usuario que son de inters para la primera
de XP. entrega del producto. Al mismo tiempo el equipo de
desarrollo se familiariza con las herramientas,
tecnologas y prcticas que se utilizarn en el proyecto.

Se prueba la tecnologa y se exploran las


posibilidades de la arquitectura del sistema construyendo
un prototipo. La fase de exploracin toma de pocas
semanas a pocos meses, dependiendo del tamao y
familiaridad que tengan los programadores con la
tecnologa.

6.2. Fase II: Planificacin de la Entrega


Fig. 1 Evolucin de los largos ciclos de desarrollo en cascada (a) a
ciclos iterativos ms cortos (b) y a la mezcla que hace XP.
En esta fase el cliente establece la prioridad de cada
historia de usuario, y correspondientemente, los
programadores realizan una estimacin del esfuerzo
6. PROCESO XP
necesario de cada una de ellas. Se toman acuerdos sobre
el contenido de la primera entrega y se determina un
Un proyecto XP tiene xito cuando el cliente
cronograma en conjunto con el cliente. Una entrega
selecciona el valor de negocio a implementar basado en
debera obtenerse en no ms de tres meses. Esta fase
la habilidad del equipo para medir la funcionalidad que
dura unos pocos das.
puede entregar a travs del tiempo. El ciclo de desarrollo
consiste (a grandes rasgos) en los siguientes pasos:
Las estimaciones de esfuerzo asociado a la
implementacin de las historias la establecen los
El cliente define el valor de negocio a implementar.
programadores utilizando como medida el punto. Un
El programador estima el esfuerzo necesario para su punto, equivale a una semana ideal de programacin.
implementacin. Las historias generalmente valen de 1 a 3 puntos. Por
El cliente selecciona qu construir, de acuerdo con otra parte, el equipo de desarrollo mantiene un registro
sus prioridades y las restricciones de tiempo. de la velocidad de desarrollo, establecida en puntos
El programador construye ese valor de negocio. por iteracin, basndose principalmente en la suma de
Vuelve al paso 1. puntos correspondientes a las historias de usuario que
fueron terminadas en la ltima iteracin.
En todas las iteraciones de este ciclo tanto el cliente
como el programador aprenden. No se debe presionar al La planificacin se puede realizar basndose en el
programador a realizar ms trabajo que el estimado, ya tiempo o el alcance. La velocidad del proyecto es
que se perder calidad en el software o no se cumplirn utilizada para establecer cuntas historias se pueden
los plazos. De la misma forma el cliente tiene la implementar antes de una fecha determinada o cunto
obligacin de manejar el mbito de entrega del producto, tiempo tomar implementar un conjunto de historias. Al
para asegurarse que el sistema tenga el mayor valor de planificar por tiempo, se multiplica el nmero de
negocio posible con cada iteracin. iteraciones por la velocidad del proyecto,
determinndose cuntos puntos se pueden completar. Al
Si bien el ciclo de vida de un proyecto XP es muy planificar segn alcance del sistema, se divide la suma
dinmico, se puede separar en las siguientes Fases: de puntos de las historias de usuario seleccionadas entre
la velocidad del proyecto, obteniendo el nmero de
Exploracin, iteraciones necesarias para su implementacin.
Planificacin de la Entrega (Release),
Iteraciones, El resultado de esta fase es un Plan de Entregas, o
Produccin, Release Plan
Mantenimiento y
Muerte del Proyecto.
6.3. Fase III: Iteraciones
6.1. Fase I: Exploracin
Esta fase incluye varias iteraciones sobre el sistema
antes de ser entregado. El Plan de Entrega est
compuesto por iteraciones de no ms de tres semanas. 6.5. Fase V: Mantenimiento
En la primera iteracin se puede intentar establecer una
arquitectura del sistema que pueda ser utilizada durante Mientras la primera versin se encuentra en
el resto del proyecto. Esto se logra escogiendo las produccin, el proyecto XP debe mantener el sistema en
historias que fuercen la creacin de esta arquitectura, sin funcionamiento al mismo tiempo que desarrolla nuevas
embargo, esto no siempre es posible ya que es el cliente iteraciones. Para realizar esto se requiere de tareas de
quien decide qu historias se implementarn en cada soporte para el cliente. De esta forma, la velocidad de
iteracin (para maximizar el valor de negocio). Al final desarrollo puede bajar despus de la puesta del sistema
de la ltima iteracin el sistema estar listo para entrar en produccin. La fase de mantenimiento puede requerir
en produccin. nuevo personal dentro del equipo y cambios en su
estructura.
Los elementos que deben tomarse en cuenta durante
la elaboracin del Plan de la Iteracin son:
6.6. Fase VI: Muerte del Proyecto
historias de usuario no abordadas,
velocidad del proyecto, Es cuando el cliente no tiene ms historias para ser
pruebas de aceptacin no superadas en la iteracin incluidas en el sistema. Esto requiere que se satisfagan
anterior y las necesidades del cliente en otros aspectos como
tareas no terminadas en la iteracin anterior. rendimiento y confiabilidad del sistema. Se genera la
documentacin final del sistema y no se realizan ms
Todo el trabajo de la iteracin es expresado en cambios en la arquitectura. La muerte del proyecto
tareas de programacin, cada una de ellas es asignada a tambin ocurre cuando el sistema no genera los
un programador como responsable, pero llevadas a cabo beneficios esperados por el cliente o cuando no hay
por parejas de programadores. presupuesto para mantenerlo.

7. REGLAS Y PRCTICAS

La metodologa XP tiene un conjunto importante de


reglas y prcticas. En forma genrica, se pueden agrupar
en:

Reglas y prcticas para la Planificacin


Fig. 2 Iteracin
Reglas y prcticas para el Diseo
Reglas y prcticas para el Desarrollo
Reglas y prcticas para las Pruebas
6.4. Fase IV: Produccin

La fase de produccin requiere de pruebas 7.1. Planificacin


adicionales y revisiones de rendimiento antes de que el
sistema sea trasladado al entorno del cliente. Al mismo La metodologa XP plantea la planificacin como un
tiempo, se deben tomar decisiones sobre la inclusin de dialogo continuo entre las partes involucradas en el
nuevas caractersticas a la versin actual, debido a proyecto, incluyendo al cliente, a los programadores y a
cambios durante esta fase. los coordinadores o gerentes. El proyecto comienza
recopilando Historias de usuarios, las que sustituyen a
Es posible que se rebaje el tiempo que toma cada los tradicionales casos de uso. Una vez obtenidas las
iteracin, de tres a una semana. Las ideas que han sido historias de usuarios, los programadores evalan
propuestas y las sugerencias son documentadas para su rpidamente el tiempo de desarrollo de cada una.
posterior implementacin (por ejemplo, durante la fase
de mantenimiento). Si alguna de ellas tiene riesgos que no permiten
establecer con certeza la complejidad del desarrollo, se
En esta fase no se realizan ms desarrollos realizan pequeos programas de prueba (spikes), para
funcionales, pero pueden ser necesarias tareas de ajuste reducir estos riesgos. Una vez realizadas estas
(fine tuning). estimaciones, se organiza una reunin de planificacin,
con los diversos actores del proyecto (cliente,
desarrolladores, gerentes), a los efectos de establecer un
plan o cronograma de entregas (Release Plan) en los
que todos estn de acuerdo. Una vez acordado este tipo de actividad (nueva, correccin, mejora),
cronograma, comienza una fase de iteraciones, en dnde prueba funcional, nmero de historia,
en cada una de ellas se desarrolla, prueba e instala unas prioridad tcnica y del cliente,
pocas historias de usuarios. referencia a otra historia previa,
riesgo,
Segn Martn Fowler (uno de los firmantes del estimacin tcnica,
Agile Manifesto), los planes en XP se diferencian de
descripcin,
las metodologas tradicionales en tres aspectos:
notas y una lista de seguimiento con la fecha,
estado cosas por terminar y comentarios.
Simplicidad del plan. No se espera que un plan
requiera de un gur con complicados sistemas de
gerenciamiento de proyectos. 7.1.2. Plan de entregas (Release Plan)
Los planes son realizados por las mismas personas El cronograma de entregas establece qu
que realizarn el trabajo. historias de usuario sern agrupadas para conformar
una entrega, y el orden de las mismas. Este
Los planes no son predicciones del futuro, sino cronograma ser el resultado de una reunin entre
simplemente la mejor estimacin de cmo saldrn las todos los actores del proyecto (cliente,
cosas. Los planes son tiles, pero necesitan ser desarrolladores, gerentes, etc.).
cambiados cuando las circunstancias lo requieren. De
otra manera, se termina en situaciones en las que el plan XP denomina a esta reunin Juego de
y la realidad no coinciden, y en estos casos, el plan es planeamiento (Planning game), pero puede
totalmente intil. denominarse de la manera que sea ms apropiada al
tipo de empresa y cliente (por ejemplo, Reunin de
Los conceptos bsicos de esta planificacin son los planeamiento, Planning meeting o Planning
siguientes: workshop) Tpicamente el cliente ordenar y
agrupar segn sus prioridades las historias de
usuario. El cronograma de entregas se realiza en
7.1.1. Las Historias de Usuario
base a las estimaciones de tiempos de desarrollo
realizadas por los desarrolladores.
Las historias de usuario son la tcnica
utilizada en XP para especificar los requisitos del
Luego de algunas iteraciones es recomendable
software. Se trata de tarjetas de papel en las cuales
realizar nuevamente una reunin con los actores del
el cliente describe brevemente las caractersticas que
proyecto, para evaluar nuevamente el plan de
el sistema debe poseer, sean requisitos funcionales
entregas y ajustarlo si es necesario.
o no funcionales.

El tratamiento de las historias de usuario es 7.1.3. Plan de iteraciones (Iteration Plan)


muy dinmico y flexible, en cualquier momento
historias de usuario pueden romperse, remplazarse Las historias de usuarios seleccionadas para
por otras ms especficas o generales, aadirse cada entrega son desarrolladas y probadas en un
nuevas o ser modificadas. Cada historia de usuario ciclo de iteracin, de acuerdo al orden prestablecido.
es lo suficientemente comprensible y delimitada Al comienzo de cada ciclo, se realiza una reunin
para que los programadores puedan implementarla de planificacin de la iteracin.
en unas semanas.
Cada historia de usuario se traduce en tareas
Respecto de la informacin contenida en la especficas de programacin.
historia de usuario, existen varias plantillas
sugeridas pero no existe un consenso al respecto. En As mismo, para cada historia de usuario se
muchos casos slo se propone utilizar un nombre y establecen las pruebas de aceptacin.
una descripcin o slo una descripcin, ms quizs
una estimacin de esfuerzo en das. Beck en su libro Estas pruebas se realizan al final del ciclo en
presenta un ejemplo de ficha (customer story and el que se desarrollan, pero tambin al final de cada
task card) en la cual pueden reconocerse los uno de los ciclos siguientes, para verificar que
siguientes contenidos: subsiguientes iteraciones no han afectado a las
anteriores. Las pruebas de aceptacin que hayan
Fecha, fallado en el ciclo anterior son analizadas para
evaluar su correccin, as como para prever que no embargo, como ya est pronto y funciona, rara vez
vuelvan a ocurrir. es rescrito.

Las metodologas de XP sugieren recodificar


7.1.4. Reuniones diarias de seguimiento (Stand-up cada vez que sea necesario. Si bien, puede parecer
meeting) una prdida de tiempo innecesaria en el plazo
inmediato, los resultados de sta prctica tienen sus
El objetivo de tener reuniones diarias es frutos en las siguientes iteraciones, cuando sea
mantener la comunicacin entre el equipo, y necesario ampliar o cambiar la funcionalidad. La
compartir problemas y soluciones. En la mayora de filosofa que se persigue es, como ya se mencion,
estas reuniones, gran parte de los participantes tratar de mantener el cdigo ms simple posible que
simplemente escuchan, sin tener mucho que aportar. implemente la funcionalidad deseada.
Para no quitar tiempo innecesario del equipo, se
sugiere realizar estas reuniones en crculo y de pie.
7.2.4. Metforas

7.2. Diseo Una metfora es algo que todos entienden,


sin necesidad de mayores explicaciones. La
La metodologa XP hace especial nfasis en metodologa XP sugiere utilizar este concepto como
los diseos simples y claros. Los conceptos ms una manera sencilla de explicar el propsito del
importantes de diseo en esta metodologa son los proyecto, y guiar la estructura y arquitectura del
siguientes: mismo. Por ejemplo, puede ser una gua para la
nomenclatura de los mtodos y las clases utilizadas
en el diseo del cdigo. Tener nombres claros, que
7.2.1. Simplicidad: no requieran de mayores explicaciones, redunda en
un ahorro de tiempo.
Un diseo simple se implementa ms
rpidamente que uno complejo. Por ello XP propone Es muy importante que el cliente y el grupo
implementar el diseo ms simple posible que de desarrolladores estn de acuerdo y compartan
funcione. Se sugiere nunca adelantar la esta metfora, para que puedan dialogar en un
implementacin de funcionalidades que no mismo idioma. Una buena metfora debe ser fcil
correspondan a la iteracin en la que se est de comprender para el cliente y a su vez debe tener
trabajando. suficiente contenido como para que sirva de gua a
la arquitectura del proyecto. Sin embargo, sta
prctica resulta, muchas veces, difcil de realizar.
7.2.2. Soluciones spike

Cuando aparecen problemas tcnicos, o 7.3. Desarrollo


cuando es difcil de estimar el tiempo para
implementar una historia de usuario, pueden
utilizarse pequeos programas de prueba (llamados
spike), para explorar diferentes soluciones. Estos
programas son nicamente para probar o evaluar
una solucin, y suelen ser desechados luego de su
evaluacin.

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

Los desarrolladores deben estar involucrados en


todas las funcionalidades del proyecto

La programacin en parejas ayuda a reducir costo y


tiempos y mejorar la calidad del proyecto.

Los mtodos en cascada o espiral son los ms


adecuados para proyectos.

Que requieran decenas de desarrolladores y en los


que las especificaciones estn claramente
determinadas desde el comienzo.

9.2. Recomendaciones.

Para proyectos medianos, y en los que las


especificaciones no se puedan obtener hasta luego
de comenzado el proyecto, XP es la metodologa
recomendada.

Usar XP en equipos pequeos de desarrollo que no


superen a 20

Se debe involucrar al cliente en el desarrollo del


proyecto desde el inicio hasta el final ya que es
indispensable que conozca y apruebe la
metodologa.

Los desarrolladores deben compartan el cdigo y ser


responsables del cdigo de todo el proyecto.

También podría gustarte