Académique Documents
Professionnel Documents
Culture Documents
http://publicaciones.uci.cu/index.php/SC| seriecientifica@uci.cu
No. 10, Vo l. 4, Ao: 2011
ISSN: | RNPS:
Resumen
En la presente investigacin se realiza una comparacin entre las tendencias de las metodologas giles y formales, se
lleva a cabo atendiendo a los principales autores y revistas fundamentalmente. Se enuncian las principales metodologas tanto giles como tradicionales utilizadas en el mundo del desarrollo de software actualmente, como el caso de
XP, RUP respectivamente. Se realiza un detallado anlisis de cada una de las metodologas principales sealadas,
teniendo en cuenta como se desarrolla su proceso, las actividades que se llevan a cabo en cada una de estas, prioridades, principios, sus estrategias, las tcnicas que utilizan, en que se basan, las fases por las cuales estn compuestas.
Adems del anlisis de la Metodologa que se utiliza en el Centro de Informatizacin para la Gestin de Entidades, el
cual es encargado de enfrentar proyectos grandes y complejos como lo es el desarrollo en s, de un ERP; donde se
pretende lograr una solucin altamente parametrizable y modular de alcance nacional para la gestin integral de los
procesos contables financieros de las entidades cubanas, brindando de este modo un impulso decisivo a la informatizacin de la sociedad, se siguen las buenas prcticas que propone la metodologa RUP. Con esta metodologa implantada en el Centro existe una forma disciplinada de asignar tareas y responsabilidades, existe un desarrollo iterativo e
incremental en cuanto a que la construccin del producto se ha dividido en mdulos y cada mdulo se ve como una
iteracin del cual se obtiene un incremento que produce un crecimiento en el producto final.
Palabras clave: Centro de informatizacin de entidades, metodologas giles, metodologas tradicionales, metodologa, proceso unificado de desarrollo.
Abstract
In the present investigation will be carried out a comparison among the tendencies of the agile and formal methodologies, assisting fundamentally to the main authors and magazines. The main methodologies are enunciated so much
agile as traditional used in the world of the development of sof tware currently, as the case of XP, RUP respectively. A
detailed analysis is realized of each one of the methodologies main views previously, keeping in mind like the process
is developed, the activities that are carried out in each one of them, priorities, principles, their strategies, the techniques that use, in that are based, the phases for which are compound. Then an analysis of the Methodology is taken
that are used in the Center of Informatization for the Management of Entities, as the center is in charge of facing big
and complex projects like development itself, of an ERP; where can achieve a solution with high parameters and to
modulate of national reach for the integral management of the countable financial processes of the Cuban entities,
bringing a decisive impulse this way to the Informatization of the society, the good practices are continued and that
propose the methodology RUP. With this methodology implanted in Center a disciplined form it exists of assigning
tasks and responsibilities, an incremental and iterative development exists, as for that the construction of the product
has been divided in modules and each module seem to be like an iteration of which an increment is obtained that pr oduce a growth in the final product.
Keywords: Agile methodologies, center of informatization of entities, methodology, traditional methodologies, unified process of development.
Introduccin
En el presente trabajo se realizar una comparacin entre las tendencias de las metodologas giles y formales, se har
atendiendo a principales autores y revistas fundamentalmente. Entre los autores que ms se destacan y que se analizaron se encuentran: Hirotaka Takeuchi e Ikujijo Nonaka, Grady Booch, Ivar Jacobson y James Rumbaugh.
Al finalizar el estudio del arte que se propone sobre las metodologas de desarrollo, se explica brevemente la metodologa que se sigue en el Centro de Informatizacin para la Gestin de Entidades (CEIGE), atendiendo a las buenas
prcticas que proponen cada una de las analizadas mundialmente. El concepto de metodologa, dentro de la Ingeniera
del Software es uno de los ms polmicos y que ms debate produce tanto en estudiantes como en profesionales involucrados en procesos de desarrollo de software.
La constante innovacin tecnolgica hace que cada vez sea ms necesaria la aplicacin de nuevas metodologas adaptadas a los nuevos tiempos, esto sin embargo descuida el estudio de las metodologas ms antiguas y que sin lugar a
dudas constituyen la base de la Ingeniera de Software porque exhiben buenas prcticas que pudieran ser utilizadas.
Todas las metodologas son, en esencia, bien intencionadas. Obviamente, las ms modernas responden a problemas,
necesidades y tendencias actuales.
Desarrollo
En febrero de 2001, tras una reunin celebrada en Utah-EEUU, nace el trmino gil aplicado al desarrollo de software. En esta reunin participan un grupo de 17 expertos de la industria del software, incluyendo algunos de los creadores o impulsores de metodologas de software. Su objetivo fue esbozar los valores y principios que deberan permitir a los equipos desarrollar software rpidamente y responder a los cambios que puedan surgir a lo largo del proyecto.
Se pretenda ofrecer entonces, una alternativa a los procesos de desarrollo de software tradicionales, caracterizados
por ser rgidos y dirigidos por la documentacin que se genera en cada una de las actividades desarrolladas.
Sin embargo, hay que tener presente una serie de inconvenientes y restricciones para su aplicacin, tales como: estn
dirigidas a equipos pequeos o medianos (Beck sugiere que el tamao de los equipos se limite de 3 a 20 como mximo, otros dicen no ms de 10 participantes), el entorno fsico debe ser un ambiente que permita la comunicacin y
colaboracin entre todos los miembros del equipo durante todo el tiempo, cualquier resistencia del cliente o del equipo de desarrollo hacia las prcticas y principios puede llevar al proceso al fracaso (el clima de trabajo, la colaboracin
y la relacin contractual son claves), el uso de tecnologas que no tengan un ciclo rpido de realimentacin o que no
soporten fcilmente el cambio.
En esta investigacin se estudian las tendencias de las metodologas giles y formales as como sus principales procesos, actividades, roles y flujos de trabajo, para ello se realiz un levantamiento, el cual arroj los resultados siguientes:
Metodologa Scrum:
Scrum es una metodologa gil de desarrollo de proyectos que toma su nombre y principios de los estudios realizados
sobre nuevas prcticas de produccin por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80.
En Scrum se realizan entregas parciales del resultado final del proyecto, priorizadas por el beneficio que aportan al
receptor del proyecto. Por ello, Scrum est especialmente indicado para proyectos en entornos complejos, donde se
necesita obtener resultados en breve tiempo, los requisitos son cambiantes o poco definidos y la innovacin, la competitividad y la productividad es fundamental.
Segn el propio autor, Scrum tambin se utiliza para resolver situaciones en que no se est entregando al cliente lo
que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, se necesita
capacidad de reaccin ante la competencia, cuando la moral de los equipos es baja y la rotacin alta, adems cuando
es necesario identificar y solucionar ineficiencias sistemticamente o se quiere trabajar utilizando un proceso especializado en el desarrollo de producto.
Scrum es un mtodo adaptativo de gestin de proyectos que se basa en los principios giles:
Colaboracin estrecha con el cliente.
Predisposicin y respuesta al cambio.
Conocimiento tcito de las personas al explcito de los procesos.
Desarrollo incremental con entregas funcionales frecuentes.
Comunicacin verbal directa entre los implicados en el proyecto.
El proceso parte de la lista de objetivos/requisitos priorizada del producto, que acta como plan del proyecto. En esta
lista el cliente prioriza los objetivos balanceando el valor que le aportan respecto a su coste y quedan repartidos en
iteraciones y entregas. De manera regular el cliente puede maximizar la utilidad de lo que se desarrolla y el retorno de
inversin mediante la re-planificacin de objetivos que realiza al inicio de cada iteracin.
Las actividades que se llevan a cabo en Scrum son las siguientes:
Planificacin de la iteracin: El primer da de la iteracin se realiza la reunin de planificacin de la iteracin. Esta
tiene dos partes:
Seleccin de requisitos (4 horas mximo). El cliente presenta al equipo la lista de requisitos pr iorizada del
producto o proyecto. El equipo pregunta al cliente las dudas que surgen y selecciona los requisitos ms prioritarios
que se compromete a completar en la iteracin, de manera que puedan ser entregados si el cliente lo solicita.
Planificacin de la iteracin (4 horas mximas): El equipo elabora la lista de tareas de las iteraciones necesarias
para desarrollar los requisitos a que se ha comprometido. La estimacin de esfuerzo se hace de manera conjunta y los
miembros del equipo se auto asignan las tareas. (Grupo ISSI, 2003)
Ejecucin de la iteracin: Cada da el equipo realiza una reunin de sincronizacin (15 minutos mximo) donde cada miembro del equipo inspecciona el trabajo que el resto est realizando (dependencias entre tareas, progreso hacia
el objetivo de la iteracin, obstculos que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias
que permitan cumplir con el compromiso adquirido. En la reunin cada miembro del equipo responde a tres preguntas:
Qu he hecho desde la ltima reunin de sincronizacin?
Qu voy a hacer a partir de este momento?
Qu impedimentos tengo o voy a tener?
Durante la iteracin el facilitador se encarga de que el equipo pueda cumplir con su compromiso y de que no merme
su productividad, esto lo hace:
Eliminando los obstculos que el equipo no puede resolver por s mismo.
Protegiendo al equipo de interrupciones externas que puedan afectar su compromiso o su productividad.
Inspeccin y adaptacin: el ltimo da de la iteracin se realiza la reunin de revisin de la iteracin. Esta reunin
tiene dos partes:
Demostracin (4 horas mximas): el equipo presenta al cliente los requisitos completados en la iteracin, en forma
de incremento de producto preparado para ser entregado con el mnimo esfuerzo. En funcin de los resultados
mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente realiza las adaptaciones necesarias
de manera objetiva, ya desde la primera iteracin, re-planificando el proyecto.
Retrospectiva (4 horas mxima): el equipo analiza cmo ha sido su manera de trabajar y cules son los problemas
que podran impedirle progresar adecuadamente, mejorando de manera seguida su productividad. El facilitador se
encargar de ir eliminando los obstculos identif icados. (Reynoso, 2004), (International Journal of Web Engineering
and Technology, 2009).
FDD se utiliz por primera vez en grandes aplicaciones bancarias a fines de la dcada de 1990. Los autores sugieren
su uso para proyectos nuevos o actualizaciones de sistemas existentes, y recomiendan adoptarlo en forma gradual.
Crystal Clear no es una metodologa en s misma s ino una familia de metodologas con un cdigo gentico comn.
Las mismas presentan un enfoque gil, con gran nfasis en la comunicacin, y con cierta tolerancia que la hace ideal
en los casos en que sea inaplicable la disciplina requerida. La misma se define con mucho nfasis en la comunicacin,
y de forma muy liviana en relacin con los entregables. Crystal maneja iteraciones cortas con feedback frecuente por
parte de los usuarios/clientes, minimizando de esta forma la necesidad de productos intermedios. Otra de las cuestiones planteadas es la necesidad de disponer de un usuario real aunque sea de forma de tiempo parcial para realizar
validaciones sobre la interfaz de usuario y para participarse en la definicin de los requerimientos funcionales y no
funcionales del software.
Una cuestin interesante que surge del anlisis de la serie Crystal es que las personas involucradas escogen aquellos
principios que les resultan efectivos y mediante la aplicacin de la metodologa en diversos proye ctos agregan o remueven principios en base al consenso grupal del equipo de desarrollo.
El equipo ajusta constantemente su forma de trabajo para lograr que cada personalidad encaje con los
otros miembros, con el entorno y las particularidades de cada asignacin.
Estrategias establecidas por Crystal Clear: El poder arrancar el proceso a partir de un esqueleto sobre el cual se ir
agregando funcionalidad en cada una de las entregas ayuda a que se vean los avances desde el comienzo. A medida
que se avanza en el proceso, la re arquitectura permitir ir agregando ms "cuerpo" al esqueleto in icial.
De manera general y resumiendo, la gua de trabajo que presenta Crystal Clear es altamente rec omendable para equi-
pos pequeos, da flexibilidad y prioriza la parte humana (como todas las Metodologas giles), apuntando a lograr
eficiencia, habitabilidad y confianza en los miembros del equipo. Presta especial importancia a la ubicacin fsica del
grupo, donde la comunicacin cumple el rol principal. La entrega frecuente de cdigo confiable y "funcionando"
mantiene el foco y evita distracciones. (Word Press, 2010)
Concretamente, qu es lo que propone XP?, esta metodologa empieza en pequeo y aade funcionalidad con retroalimentacin continua. Propicia que el manejo del cambio se convierta en parte sustancial del proceso. Define que el
costo del cambio no depende de la fase o etapa de desarrollo en que se encuentre. Como metodologa no introduce
funcionalidades antes que sean necesarias. El cliente o usuario se convierte en miembro del equipo.
Histricamente, las metodologas tradicionales han intentado abordar la mayor cantidad de situaciones de contexto del
proyecto, exigiendo un esfuerzo considerable para ser adaptadas, sobre todo en proyectos pequeos y con requisitos
muy cambiantes.
Por otra parte, las metodologas tradicionales (formales) se focalizan en documentacin, planificacin y procesos
(plantillas, tcnicas de administracin, revisiones, etc.), a continuacin se detalla RUP y MSF uno de los mtodos ms
usados dentro de los mtodos tradicionales.
Visin y Alcances: La fase de visin y alcances trata uno de los requisitos ms fundamentales para el xito del proyecto, la unificacin del equipo detrs de una visin comn. El equipo debe tener una visin clara de lo que quisiera
lograr para el cliente y ser capaz de indicarlo en trminos que mot ivarn a todo el equipo y al cliente. Se definen los
lderes y responsables del proyecto, adicionalmente se identifican las metas y objetivos a alcanzar; estas ltimas se
deben respetar durante la ejecucin del proyecto en su totalidad, y se realiza la evaluacin inicial de riesgos del pro-
yecto.
Planificacin: Es en esta fase es cuando la mayor parte de la planeacin para el proyecto es terminada. El equipo
prepara las especificaciones funcionales, realiza el proceso de diseo de la solucin, y prepara los planes de trabajo,
estimaciones de costos y cronogramas de los diferentes entregables del proyecto.
Desarrollo: Durante esta fase el equipo realiza la mayor parte de la construccin de los componentes (tanto documentacin como cdigo), sin embargo, se puede realizar algn trabajo de desarrollo durante la etapa de estabilizacin en
respuesta a los resultados de las pruebas. La infraestructura tambin es desarrollada durante esta fase.
Estabilizacin: En esta fase se conducen pruebas sobre la solucin, las pruebas de esta etapa enfatizan el uso y operacin bajo condiciones realistas. El equipo se enfoca en priorizar y resolver errores y preparar la solucin para el la nzamiento.
Implantacin: Durante esta fase el equipo implanta la tecnologa base y los componentes relacionados, estabiliza la
instalacin, traspasa el proyecto al personal soporte y operaciones, y obtiene la aprobacin final del cliente.
Los equipos organizados bajo este modelo son pequeos y multidisciplinarios, en los cuales los miembros comparten
responsabilidades y balancean las destrezas del equipo para mantenerse enfocados en el proyecto que estn desarrollando. Comparten una visin comn del proyecto y se enfocan en implementar la solucin, con altos estndares de
calidad y deseos de aprender.
El modelo de equipos de MSF tiene seis roles que corresponden a las metas principales de un proyecto y son responsables por las mismas. Cada rol puede estar compuesto por una o ms personas, no es un modelo jerrquico y cada
uno de los roles es igualmente importantes en su aporte al proyecto. Aunque los roles pueden tener diferentes niveles
de actividad durante las diversas etapas del proyecto, ninguno puede ser omitido.
La comunicacin se pone en el centro del modelo evidenciando que est integrada en la estructura y fluye. El modelo
apoya la comunicacin efectiva y es esencial para el funcionamiento del mismo. (Agile Spain, 2010).
RUP es el resultado de varios aos de desarrollo y uso prctico en el que se han unificado tcnicas de desarrollo, a
travs del UML, y trabajo de muchas metodologas utilizadas por los clientes. La versin que se ha estandarizado vio
la luz en 1998 y se conoci en sus inicios como Proceso Unificado de Rational 5.0; de ah las siglas con las que se
identifica a este proceso de desarrollo.
Desde ese entonces al mando de Grady Booch, Ivar Jacobson y James Rumbaugh, Rational Software desarroll e
incorpor diversos elementos para expandir RUP, destacndose especialmente el flujo de trabajo conoc ido como Modelado del Negocio. En junio del 1998 se lanza Rational Unified Process.
El Proceso Unificado de Desarrollo, es una metodologa para el desarrollo de software orientado a objetos. Es un proceso de desarrollo de software, definido como un conjunto de actividades necesarias para transformar los requisitos de
un usuario en un sistema software. Sin embargo, el proceso unificado es ms que un proceso de trabajo, es un marco
de trabajo genrico que puede especializarse para una gran variedad de sistemas software, para diferentes reas de
aplicacin, diferentes tipos de organizaciones y diferentes niveles de aptitud. Est constituido por 5 flujos de trabajo
fundamentales: requisitos, anlisis, diseo, implementacin y prueba, los cuales tienen lugar sobre 4 etapas o fases:
inicio, elaboracin, construccin y transicin. Esta metodologa es adaptable para proyectos a largo plazo y establece
refinamientos sucesivos de una arquitectura ejecutable.
Metodologa OpenUp
OpenUP es un proceso de desarrollo iterativo del software que es mnimo, completo, y extensible, significando cada
uno:
Mnimo: Solo incluye el contenido del proceso fundamental.
Completo: Puede ser manifestado como proceso entero para construir un sistema.
Extensible: Puede ser utilizado como base para agregar o para adaptar ms procesos.
El OpenUP es un proceso mnimo y suficiente, lo que significa que solo el contenido fundamental y nec esario es incluido. Por lo tanto, no provee lineamientos para todos los elementos que se manejan en un proyecto pero tiene los
componentes bsicos que pueden servir de base a procesos especficos. La mayora de los elementos de OpenUP estn
declarados para fomentar el intercambio de informacin entre los equipos de desarrollo y mantener un entendimiento
compartido del proyecto, sus objetivos, alcance y avances.
Entre los principales beneficios en el uso del OpenUP se encuentran:
Es apropiado para proyectos pequeos y de bajos recursos, permite disminuir las probabilidades de fracaso en
los proyectos pequeos e incrementar las probabilidades de xito.
Permite detectar errores tempranos a travs de un ciclo iterativo.
Evita la elaboracin de documentacin, diagramas e iteraciones innecesarias requeridos en la metodologa
RUP.
Por ser una metodologa gil tiene un enfoque centrado al cliente y con iteraciones cortas.
Los principios fundamentales de la metodologa OpenUP son:
Colaborar para sincronizar intereses y compartir conocimiento. Este principio promueve prcticas que impulsan un ambiente de equipo saludable, facilitan la colaboracin y desarrollan un conocimiento co mpartido del
proyecto.
Equilibrar las prioridades para maximizar el beneficio obtenido por los interesados en el proyecto. Este principio promueve prcticas que permiten a los participantes de los proyectos desarrollar una solucin que
maximice los beneficios obtenidos por los participantes y que cumple con los requisitos y restricciones del
proyecto.
Centrarse en la arquitectura de forma temprana para minimizar el riesgo y organizar el desarrollo.
Desarrollo evolutivo para obtener retroalimentacin y mejoramiento continuo. Este principio promueve
prcticas que permiten a los equipos de desarrollo obtener retroalimentacin temprana y continua de los participantes del proyecto, permitiendo demostrar incrementos progresivos en la funcionalidad.
Fases que propone la metodologa OpenUP:
1. Concepcin: Primera de las 4 fases en el proyecto del ciclo de vida, acerca del entendimiento del propsito y
objetivos y obteniendo suficiente informacin para confirmar que el proyecto debe hacer. El objetivo de sta
fase es capturar las necesidades de los stakeholder en los objetivos del ciclo de vida para el proyecto.
2.
Elaboracin: Es el segundo de las 4 fases del ciclo de vida del OpenUP donde se trata los riesgos significativos para la arquitectura. El propsito de esta fase es establecer la base la elaboracin de la arquite ctura del
sistema.
3. Construccin: Esta fase est enfocada al diseo, implementacin y prueba de las funcionalidades para desarrollar un sistema completo. El propsito de esta fase es completar el desarrollo del sistema basado en la Arquitectura definida.
4. Transicin: Es la ltima fase, cuyo propsito es asegurar que el sistema es entregado a los usuarios, y evala
la funcionalidad y performance del ltimo entregable de la fase de construccin. (DSDM Consortium, 2009)
Finalmente el OpenUp es un proceso modelo y extensible, dirigido a gestin y desarrollo de proyectos de software
basados en desarrollo iterativo, gil e incremental apropiado para proyectos pequeos y de bajos recursos; y es aplic able a un conjunto amplio de plataformas y aplicaciones de desarrollo.
de mdulo de desarrollo encargados de la gestin temprana y oportuna de los cambios que se llevan a cabo. Al igual
que la verificacin de la calidad del software para el cual existe un equipo que estudia las normas y estndares ms
recientes y por los cuales se debe guiar el desarrollo de los productos terminados. En este sentido, es preciso aadir
que se encuentra dentro de los centros a los que se les est aplicando el proceso de mejora.
Conclusiones
No existe una metodologa universal para hacer frente con xito a cualquier proyecto de desarrollo de software. Toda
metodologa debe ser adaptada al contexto del proyecto, teniendo en cuenta los recursos tcnicos y humanos, tiempo
de desarrollo y tipo de sistema.
Histricamente, las metodologas tradicionales han intentado abordar la mayor cantidad de situaciones de contexto del
proyecto, exigiendo un esfuerzo considerable para ser adaptadas, sobre todo en proyectos pequeos y con requisitos
muy cambiantes. Las metodologas giles ofrecen una solucin casi a medida para una gran cantidad de proyectos que
tengan estas caractersticas. Una de las cualidades ms destacables en una metodologa gil es su sencillez, tanto en su
aprendizaje como en su aplicacin, reduciendo as los costos de implantacin en un equipo de desarrollo, lo cual ha
llevado hacia un inters creciente en las metodologas giles. Sin embargo, teniendo en cuenta el anlisis de estas
metodologas y en especial la que se utiliza en el CEIGE se puede decir que para que un equipo de desarrollo adopte
una metodologa gil especfica debe poseer experiencia trabajando con metodologas tradicionales, ya que la experiencia es la que predomina en los momentos cruciales del proyecto, adems debe tener la capacidad de ser equipos
auto-gestionados y altamente motivados.
Referencias
Highsmith, Jim. Agile Project Management. [en lnea] 2006. [Consultado el: 12 de julio de 2010]. Disponible en:
[http://www.adaptivesd.com].
Agile Spain. 2010. [en lnea] 2010. [Consultado el: 15 de julio de 2010]. Disponible en: [www.agile-spain.com].
DSDM Consortium. 2009. [en lnea] 2009. [Consultado el: 11 de julio de 2010]. Disponible en:
[http://www.dsdm.org].
Enterprisexp. [en lnea] [Consultado el: 14 de julio de 2010]. Disponible en: [http://www.enterprisexp.org].
2009. International Journal of Web Engineering and Technology. 2, 2009, Vol. Volume 2.
Grupo ISSI. Metodologas giles en el desarrollo de software. Alicante: Patricio Letelier Torres, Emilio A. Snchez
Lpez, 2003, Vol. 1.
Reynoso, C. Mtodos Heterodoxos en desarrollo de software. Buenos Aires: s.n., 2004.
Scott W, Ambler. Agile Modeling (AM). [en lnea] 2010. [Consultado el: 17 de julio de 2010]. Disponible en:
[http://www.agilemodeling.com/].
Word Press. Spinec Blog. [en lnea] 2010. [Consultado el: 24 de julio de 2010]. Disponible en:
[http://www.spinec.org/wpcontent/metodologias%C3%81giles_01.pdf].