Está en la página 1de 5

METODOLOGAS GILES.

CMO DESARROLLO
UTILIZANDO XP?
Autor: Ing.Danay Prez Ramrez
Coautores: Ing.Yoanna Oliveros Guntn, Ing.Yanniel Alvarez Alonso, Lic.Jorge Coello Mena

Para el desarrollo de software en la actualidad existen estableciendo rigurosamente las actividades y los artefactos
diversas metodologas, las que se agrupan en giles y que se deben producir, las herramientas y notaciones a utilizar,
tradicionales. Las metodologas giles proponen una forma las cuales se denominan metodologas tradicionales; y otras
de desarrollo de software diferente a las metodologas denominadas metodologas giles se centran ms en las
tradicionales. stas promueven las relaciones personas que en el proceso, dan mayor valor al individuo, al
interpersonales, una estrecha colaboracin entre el cliente equipo de desarrollo y a su colaboracin con el cliente;
y el equipo de desarrollo, son adaptativas y se enfocan en proponiendo un desarrollo incremental del software con
las personas y los resultados obtenidos. Entre las iteraciones muy cortas y la documentacin necesaria [1].
metodologas giles ms utilizadas se encuentra Extreme Surgen a mediados de los aos 90, ante la necesidad de una
Programming (XP). nueva forma de desarrollar software diferente a las que hasta el
momento se haban utilizado (metodologas tradicionales).
En el documento se abordan las caractersticas de las
metodologas giles; mencionndose brevemente aspectos Las metodologas giles de desarrollo de software proponen
importantes de alguna de stas como: Scrum, Crystal una estrecha relacin entre el cliente y el equipo de desarrollo,
Methodologies, Dynamic Systems Development Method hacer entregas funcionales del software continuamente, se
(DSDM), Adaptive Software Development (ASD) y aplican a proyectos con requerimientos cambiantes o
Feature-Driven Development (FDD), adems se profundiza imprecisos, y estn dirigidas fundamentalmente para equipos
en XP. El ciclo de vida ideal de la metodologa gil XP es pequeos.
descrito y se detallan los roles y prcticas de sta. Con el
objetivo de facilitar el trabajo aplicando XP se propone Diversas han sido las metodologas giles que han surgido en
una gua detallada, la cual describe paso a paso cmo se los ltimos aos, y como es de esperar algunas ms populares
debe aplicar XP en el desarrollo de software. que otras. En una encuesta realizada en el 2006 por CM
Crossroads en Estados Unidos se obtuvo como resultado que
Palabras Claves: gil, aplicacin, desarrollo, gua, metodologa,
la metodologa ms utilizada era XP, seguida por FDD,
XP.
Scrum, Crystal y DSDM [2].

INTRODUCCIN En otra encuesta ms reciente, realizada por Methods &


Tools en febrero de este ao 2008, acerca del desarrollo gil
La industria del software ha adquirido gran auge en las de software en 512 compaas, y comparndola con la misma
ltimas dcadas. Cada da son ms las demandas de diferentes encuesta realizada en el 2005 a 232 compaas del mismo
tipos de software, menos el tiempo disponible para lugar, se obtuvo como resultado que el nivel de
desarrollarlos y ms cambiantes los requerimientos iniciales de desconocimiento acerca del desarrollo gil disminuy en la
stos. Para hacer frente a esta demanda es necesario producir mitad, solo el 13 % de las organizaciones no conoca de la
software de calidad en el menor tiempo posible. existencia de las metodologas giles en el 2008. El nmero
Como toda industria, la de software, tambin tiene normas y de organizaciones donde todos los nuevos proyectos se
pasos a seguir para ayudar a los desarrolladores en la desarrollan con metodologas giles se duplic y el 56 % de
produccin: las metodologas de desarrollo de software. las compaas las utiliza (ya sea en proyectos pilotos,
A travs de los aos han surgido diferentes metodologas. implementacin parcial, desarrollo parcial o total); valor que
Algunas hacen ms nfasis en el control del proceso, se increment desde el 2005 cuando solo el 41% lo haca [3].
CCIA2008 2

En la investigacin desarrollada, de las fuentes bibliogrficas Extreme Programming (XP). Creada por Kent Beck en
consultadas cerca del 17% son del ao en curso (2008), 1996. Es una metodologa gil centrada en potenciar las
mientras que casi el 42% abarca el perodo de los ltimos tres relaciones interpersonales como clave para el xito en el
aos, por lo que el estudio presentado es de actualidad. 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 la
METODOLOGAS GILES realimentacin continua entre el cliente y el equipo de
Las metodologas giles para el desarrollo de software son desarrollo, la comunicacin fluida entre todos los
adaptativas, enfocndose en las personas y los resultados. participantes, la simplicidad en las soluciones implementadas
Todas las metodologas giles proponen una estrecha relacin y el coraje para enfrentar los cambios. XP se define como
entre el equipo de desarrollo y los clientes; estableciendo especialmente adecuada para proyectos con requisitos
como base la comunicacin cara a cara; lo cual resulta ms imprecisos y muy cambiantes, y donde existe un alto riesgo
eficiente que cualquier documentacin escrita que se pueda tcnico [6].
obtener de los clientes en la etapa de captura de requisitos, a
travs de entrevistas y encuestas, u otra documentacin Scrum. Desarrollada por Ken Schwaber, Jeff Sutherland y
generada por investigacin de documentos u observacin Mike Vedle en 1989. Define un marco para la gestin de
directa. proyectos. Est especialmente indicada para proyectos con un
rpido cambio de requisitos. Sus principales caractersticas se
Segn la mayora de los autores consultados, las metodologas pueden resumir en dos: el desarrollo de software se realiza
giles estn orientadas para ser utilizadas en proyectos de mediante iteraciones, denominadas sprint, con una duracin
poca envergadura, equipos pequeos (hasta diez miembros) y de 30 das, el resultado de cada sprint es un incremento
no distribuidos. No obstante existen opiniones de que se ejecutable que se muestra al cliente y la segunda
puede utilizar una variante pesada de una metodologa gil caracterstica son las reuniones a lo largo del proyecto, entre
para equipos de mayor tamao que se encuentren distribuidos. ellas se destaca la reunin diaria de 15 minutos del equipo de
Un estudio presentado por Jeff Sutherland (creador de la desarrollo para coordinacin e integracin [7].
metodologa gil Scrum junto a Ken Schwaber y Mike Vedle)
en la Conferencia Internacional en Sistemas Complejos en el Crystal Methodologies. Se trata de un conjunto de
2006, evidencia resultados positivos en la aplicacin de una metodologas para el desarrollo de software caracterizadas por
variante de Scrum integrada con prcticas de la metodologa estar centradas en las personas que componen el equipo y la
gil Extreme Programming (XP) con equipos de desarrollo reduccin al mximo del nmero de artefactos producidos.
grandes y distribuidos [4]. Por otra parte la metodologa gil Han sido desarrolladas por Alistair Cockburn desde inicio de
Crystal fue concebida para ser adoptada por equipos de los 90. El desarrollo de software se considera un juego
desarrollo de diferentes tamaos. Posee variantes que cooperativo de invencin y comunicacin, limitado por los
dependen de la cantidad de miembros del equipo de recursos a utilizar. El equipo de desarrollo es un factor clave,
desarrollo, el que puede tener hasta 100 miembros [5]. por lo que se deben invertir esfuerzos en mejorar sus
habilidades y destrezas, as como tener definidas polticas de
Algo distintivo de las metodologas giles es que son trabajo en equipo. Estas polticas dependern del tamao del
adaptativas, porque estn pensadas para contextos cambiantes, equipo, establecindose una clasificacin por colores, por
proyectos con requerimientos inestables, cambios ejemplo Crystal Clear (3 a 8 miembros), Crystal Yellow (8 a
tecnolgicos y cambios de personal. Estn orientadas a las 20 miembros), Crystal Orange (20 a 50 miembros) y Crystal
personas, porque necesitan gran participacin y compromiso Red ( 50 a 100 miembros) [5].
de todos, incluyendo al cliente, en el desarrollo del software.
Dynamic Systems Development Method (DSDM). Se fund
Las metodologas giles siguen una combinacin del modelo en Inglaterra en 1994. Define el marco para desarrollar un
de desarrollo de software evolutivo y el modelo incremental proceso de produccin de software. Sus principales
mediante ciclos de desarrollo cortos (cada uno depende de la caractersticas son que es un proceso iterativo e incremental y
metodologa que se utilice) y entregas continuas de software que el equipo de desarrollo y el usuario trabajan juntos.
funcional. Propone cinco fases: estudio de viabilidad, estudio del
negocio, modelado funcional, diseo y construccin, y
finalmente implementacin. Las tres ltimas son iterativas,
METODOLOGAS GILES ACTUALES adems de existir realimentacin en todas las fases [8].
Varias han sido las metodologas giles que han surgido desde
los aos 90. Cada una con sus particularidades para dar Adaptive Software Development (ASD). Su impulsor es Jim
solucin a diferentes problemas, pero con un objetivo comn Highsmith. Sus principales caractersticas son: iterativo,
de mejorar la produccin de software. Algunas se han orientado a los componentes del software ms que a las tareas
destacado, por sus caractersticas, en los ltimos aos. y tolerante a los cambios. El ciclo de vida que propone tiene
tres fases esenciales: especulacin, colaboracin y
aprendizaje. En la primera de ellas se inicia el proyecto y se
CCIA2008 3

planifican las caractersticas del software; en la segunda Ser cliente de XP no es tarea fcil. El cliente debe escribir las
desarrollan las caractersticas y finalmente en la tercera se historias de usuario y las pruebas funcionales del sistema,
revisa su calidad, y se entrega al cliente. La revisin de los asignarle prioridad a las historias de usuarios y tomar
componentes sirve para aprender de los errores y volver a decisiones acerca de cul se debe implementar en cada
iniciar el ciclo de desarrollo [9]. iteracin [6]; en fin convertirse en un miembro ms del equipo
de desarrollo.
Feature-Driven Development (FDD). Sus impulsores son
Jeff De Luca y Peter Coad. Define un proceso iterativo que Encargado de pruebas: verifica que el sistema est
consta de 5 pasos. Las iteraciones son cortas (hasta 2 funcionando correctamente. Entre los deberes del encargado
semanas). Se centra en las fases de diseo e implementacin de pruebas se encuentran ejecutar regularmente todos los casos
del sistema partiendo de una lista de caractersticas que debe de prueba, informar al equipo los resultados obtenidos y
reunir el software [10]. ayudar al cliente a escribir las pruebas funcionales del sistema.
En caso de utilizarse alguna herramienta de soporte para
pruebas, sta se encontrar bajo su responsabilidad.
EXTREME PROGRAMMING (XP)
Entre las metodologas giles ms utilizadas se encuentra Encargado de seguimiento: es la conciencia del equipo de
Extreme Programming, ms conocida por sus siglas XP; la desarrollo. Debe verificar el cumplimiento del plan de entrega
cual surge en 1996. Tiene sus antecedentes desde mediados de y del plan de iteracin, e informar si las estimaciones
los aos 80 cuando Kent Beck y Ward Cunningham probaron realizadas fueron correctas, se subestim o sobrestim; con el
formas de desarrollar software diferentes a las que se haban objetivo de que el equipo sea ms preciso en futuras
utilizado hasta el momento, trabajando en un grupo de estimaciones.
investigacin de Tektronix. Posteriormente, en los 90, Beck
comenz un proyecto en DaimlerChrysler, conocido como C3 Entrenador: es quien advierte si ocurre una desviacin en el
(Chrysler Comprehensive Compensation). Este proyecto fue la proceso, mantiene la calma cuando todos se encuentran
cuna de XP [11]. aterrados, en fin, gua al equipo de desarrollo para que se
siga el proceso XP correctamente.
XP es definida por su autor, Kent Beck, como una
metodologa gil para el desarrollo de software destinada a Consultor: es responsable de guiar al equipo de desarrollo
ser utilizada por equipos de desarrollo pequeos y medianos para resolver los problemas que se les presente en un tema
(de 2 a 10 miembros) que se enfrenten a proyectos con especfico. El equipo de desarrollo en ocasiones necesita
requerimientos imprecisos o cambiantes. Las relaciones conocimientos de un tema especfico, el cual no domina
desarrollador-desarrollador y desarrolladores-cliente son ninguno de sus miembros. Es un miembro externo al equipo
fundamentales en esta metodologa [6]. La adopcin del con conocimientos especficos en algn tema necesario para la
cliente como un miembro ms del equipo de desarrollo es la construccin del sistema.
clave del xito.
Gestor: es el la mxima autoridad del equipo de desarrollo. l
debe poseer ciertas cualidades como coraje, confianza y en
ROLES Y SUS RESPONSABILIDADES ocasiones insistencia sobre los miembros del equipo para que
XP, como toda metodologa para el desarrollo de software, se realice el trabajo, pero no debe agobiarlos [6].
propone varios roles. Cada uno acarrea consigo ciertas
responsabilidades; algunas son menos complejas que otras.
CICLO DE VIDA DE XP
Programador: es una pieza clave en XP. Su responsabilidad El ciclo de vida ideal de XP consta de 6 fases: exploracin,
no se limita a implementar cierta funcionalidad del sistema; l planificacin iteraciones, produccin, mantenimiento y muerte
tambin debe comunicarse, ya sea con otros miembros del del proyecto. Se utiliza la palabra ideal porque se reconoce
equipo de desarrollo o con el cliente, elaborar pruebas que es muy baja la probabilidad de que el desarrollo de dos
unitarias y llevar a cabo las integraciones del sistema. proyectos sea exactamente igual [6].

Cliente: El cliente es la otra mitad de la importante dualidad Un proyecto se inicia con una fase de exploracin donde se
de XP. El programador sabe cmo programar. El cliente sabe sientan las bases para que sea exitoso su desarrollo. El plan de
que programar 1 [6]. entrega a seguir es concebido durante la planificacin, con la
participacin del cliente y los desarrolladores. A continuacin
tienen lugar una serie de iteraciones que no concluyen hasta
obtener una primera versin del sistema, o una primera entrega
que es lo mismo. Se pone en produccin esta versin y
1
The customer is the other half of the essential duality of extreme
comienza el mantenimiento donde se implementan nuevas
programming. The programmer knows how to program. The customer funcionalidades y se mantiene el sistema funcionando. En la
knows what to program. fase de mantenimiento tiene lugar la implementacin de
CCIA2008 4

nuevas versiones del sistema; cada nueva entrega, debe entrega, con lo que se regresa a la fase de exploracin.
comenzar por una fase de exploracin y es ah cuando se
cierra el ciclo. La nica manera de interrumpir el ciclo de XP Muerte
es que ocurra la muerte del proyecto. 25. Muerte del proyecto.

GUA DE APLICACIN DE XP CONCLUSIONES


Si se desea desarrollar utilizando XP es muy til contar con Desde mediados de los aos 90 surgen formas de desarrollar
una gua que explique paso a paso qu hacer. En ninguna de la software diferentes a las tradicionales, que en el ao 2001 se
bibliografa consultada se encontr documento alguno de este oficializan bajo el nombre de metodologas giles.
tipo, por tanto se propone la siguiente gua de aplicacin, la
cual fue probada mediante el desarrollo de un caso de estudio Las metodologas giles son promueven prcticas adaptativas
[12]. en vez de predictivas, se centran en las personas. Son
iterativas, orientadas hacia la entrega, de comunicacin
Exploracin intensiva entre el cliente y los desarrolladores, los que
1. Los desarrolladores y el cliente elaboran la metfora. trabajan juntos con una constante comunicacin.
2. El cliente redacta las historias de usuario. Recomendadas para proyectos con los requisitos imprecisos
3. Los desarrolladores dividen las historias de usuario en y/o cambiantes.
tareas de programacin y calculan los puntos estimados de
cada historia de usuario. XP es una metodologa gil para el desarrollo de software
4. Los desarrolladores estudian las tecnologas a utilizar. que se recomienda utilizar para proyectos con requisitos
5. Los desarrolladores construyen uno o varios prototipos imprecisos o cambiantes por equipos de desarrollo, pequeos y
del sistema. medianos.
6. Los desarrolladores realizan una propuesta inicial de la
arquitectura del sistema. En XP existen 7 roles, cada uno con una funcin especfica
7. El cliente redacta los casos de prueba ayudado por el dentro del proceso de desarrollo. Una misma persona puede
encargado de pruebas. encarar diferentes roles.

Planificacin Debe respetarse el ciclo de vida de XP, que consta de 6 fases,


8. El cliente asigna prioridad a las historias de usuario. pero de considerarse por el equipo de desarrollo ste se puede
9. Los desarrolladores estiman el esfuerzo total. alterar.
10. Los desarrolladores estiman la velocidad del equipo.
11. El cliente y los desarrolladores elaboran el plan de El diseo y la planificacin tienen lugar a lo largo de todo el
entrega. proceso XP.
12. Actualizar documentacin.
No en todos los entornos ni a todo tipo de proyecto se puede
Iteraciones aplicar XP.
13. El cliente reasigna prioridad a las historias de usuario.
14. El cliente y los desarrolladores elaboran el plan de La gua de aplicacin propuesta describe detalladamente que
iteracin. hacer en cada fase del ciclo de XP; por tanto, facilita el
15. Los desarrolladores definen el diseo preliminar. desarrollo utilizando la metodologa y constituye un aporte
16. El cliente y los desarrolladores mejoran los casos de debido a que no se encontr documento alguno de este tipo.
prueba.
17. Los programadores comienzan la implementacin.
18. Los desarrolladores mejoran el diseo. REFERENCIAS
19. El cliente y los desarrolladores completan y actualizan el [1] Andr Ampuero, M., V. D. Muoz Castillo. Metodologas tradicionales
plan de iteracin. o metodologas giles?, 2008.
[2] CM Crossroads. (2006). Disponible en:
20. Actualizar documentacin. http://www.cmcrossroads.com/h.html [Consulta 7 de diciembre de 2007].
[3] Methods & Tools. (2008). Disponible en:
Produccin http://www.methodsandtools.com/dynpoll/oldpoll.php?Agile2 [Consulta 14
21. Completar y actualizar el plan de entrega. de marzo de 2008].
[4] Sutherland, J., A. Victorov, y J. Blount. Adaptive Engineering of Large
22. El cliente y los desarrolladores se renen diariamente Software Projects with Distributed/Outsourced Teams. 2006.
para informar en que contina trabajando cada cual. [5] Cockbun, A. Agile Software Development. Addison-Wesley, 2001.
23. El cliente y los desarrolladores realizan continuas pruebas [6] Beck, K. Extreme Programming Explained. Embrace Change.
al sistema. Addison-Wesley, 1999.
[7] Schwaber, K. y M. Beedle. Agile Software Development with SCRUM.
2001.
Mantenimiento [8] Stapleton, J. Dsdm Dynamic Systems Development Method: The Method
24. El cliente y los desarrolladores comienzan una nueva in Practice. Addison-Wesley, 1997.
CCIA2008 5

[9] Highsmith, J.A. Adaptive Software Development: A Collaborative


Approach to Managing Complex Systems. Dorset House, 2000.
[10] Coad, P., Jeff De Luca, E. Lefebvre. Java Modeling In Color With
UML: Enterprise Components and Process. Prentice Hall, 1999.
[11] Reynoso, C. Mtodos Heterodoxos en Desarrollo de Software.
2004.
[12] Prez. Ramrez D. "Investigacin de la metodologa gil Extreme
Programming y su aplicacin a un caso de estudio". Y Guntn Oliveros Y.,
Coello Mena J. (Tutor). Tesis de Grado. La Habana, Instituto Superior
Politcnico Jos Antonio Echeverra. 2008.

También podría gustarte