Escuela Especializada en Ingeniería ITCA-FEPADE REVISTA TECNOLÓGICA N˚ 8. ENERO - DICIEMBRE 2015.
Metodologías Ágiles de Desarrollo de Software Aplicadas a la
Gestión de Proyectos Empresariales
Rina Elizabeth López Menéndez de Jiménez
Inga. de Sistemas Informáticos, docente Escuela de Ingeniería en
Computación, ITCA-FEPADE Sede Central. Email:
[email protected]Resumen Abstract
E l presente artículo se centra en el conocimiento de las
diferentes metodologías ágiles de desarrollo de sof-
tware utilizadas para llevar a cabo un proyecto empre-
T his article focuses on the knowledge of the various
agile software development methodologies used to
carry out a business project in an efficient way, optimizing
sarial de una forma eficiente, optimizando el uso de los the use of resources and managing to obtain results that
recursos y logrando obtener resultados que cumplan con meet the requirements originally raised by the clients.
los requisitos planteados en sus orígenes por los clientes.
Palabras clave Keywords
Metodologías ágiles, programación extrema (XP), Agile methodologies, extreme programming (XP),
sistemas de computación, ingeniería del software, computer systems, software engineering, software
proyectos de desarrollo informático, redes de development Project, information networks, software
información, procesos de software. processes.
Introducción
Hace varios años las empresas desarrolladoras de sof- ción de proyectos. Las metodologías agiles surgen de
tware creían que la parte más importante a la hora de una iniciativa en el año 2001, tras una reunión celebrada
construir una solución era contar con un modelado efi- en Utah, EEUU con la participación de un grupo de 17
ciente y las ultimas herramientas CASE que existían en expertos en el área de desarrollo de software, los cuales
el mercado, pero con el paso del tiempo entendieron manifestaron la importancia que el equipo desarrolla-
que esto no era suficiente si no se contaba con un buen dor respondiera de forma oportuna a los cambios que
desarrollo del proyecto, el cual asegurara un softwa- puedan surgir a lo largo de la ejecución del proyecto.
re de calidad y satisfacción del cliente. Debido a esto [5]
ahora hoy en día ha nacido un creciente interés por las
metodologías de desarrollo de software que agilicen el
tiempo de desarrollo y garanticen el uso eficiente de los GESTIÓN DE PROYECTOS INFORMÁTICOS
recursos, aplicadas tanto para empresas grandes con EMPRESARIALES
numerosos procesos como a empresas pequeñas que
no cuentan con muchas herramientas para llevar a cabo Las organizaciones que quieran generar efectos dife-
los proyectos. renciadores con respecto a sus competidores deben
implementar software en el desarrollo de sus activida-
Ante este escenario, las organizaciones cada vez están des de negocio, todo esto a través de la gestión de pro-
optando por la incorporación de metodologías agiles yectos.
de desarrollo de software que completen los vacíos me-
todológicos que las otras formas de desarrollo también Un Proyecto Informático es un sistema de cursos de
llamadas “metodologías pesadas” dejaban en la ejecu- acciones simultáneas y/o secuenciales que incluye per-
Recepción: 29/01/2016 - Aceptación: 15/06/2016
6
Este documento es propiedad de la Escuela Especializada en Ingeniería ITCA-FEPADE. Derechos Reservados.
REVISTA TECNOLÓGICA N˚ 8. ENERO - DICIEMBRE 2015 Escuela Especializada en Ingeniería ITCA-FEPADE
sonas, equipamientos de hardware, software y comuni- condiciones y siempre verificando que no existan po-
caciones, enfocadas en obtener uno o más resultados sibles fallas.
deseables sobre un sistema de información. [1]
METODOLOGÍAS ÁGILES DE DESARROLLO
Existen diferentes tipos de clasificaciones de los pro-
yectos informáticos, entre los cuales se pueden men- El término ágil surge como iniciativa de un conjunto
cionar: de expertos en el área de desarrollo de software con el
fin de optimizar el proceso de creación del mismo, el
• Software cual era caracterizado por ser rígido y con mucha do-
• Hardware cumentación. [5]. El punto de partida fue el manifiesto
• Comunicaciones y Redes ágil, el cual es un documento donde se detalla todo lo
• Instalaciones de Hardware que involucra la filosofía “ágil”.
• Auditoria, etc. [1]
Manifesto Ágil
Este es un documento que engloba principios y valores
que hacen diferente un proyecto de desarrollo de sof-
tware ágil de uno en su forma tradicional.
Fig. 1. Fases Principales de un Proyecto de
Desarrollo de Software.
A. Planeación
En esta fase se tienen que plantear los objetivos del Fig. 2. Proceso Ágil de Desarrollo de Software. [6]
proyecto identificando todos los recursos necesarios
para poderlos alcanzar. Considerando las 3 dimensio- Según el manifiesto ágil se valora a:
nes sobre las que se apoya todo proyecto.
Al individuo y las interacciones del equipo de
• Calidad desarrollo sobre el proceso y las herramientas.
• Costo
• Tiempo de duración Desarrollar software que funcione más que la
documentación del mismo.
B. Ejecución
La colaboración con el cliente más que la
Durante esta fase se trata de poner en práctica lo pla- negociación de su contrato.
neado en la fase anterior, la ejecución se verá fuertemen-
te influida por la planeación, es decir una mala planea- Responde a los cambios más que seguir con el
ción traerá resultados negativos a la fase de ejecución. plan establecido.[5]
C. Soporte Esta metodología ágil está regida además por doce
principios que ayudan a que el proceso de desarrollo se
La fase de soporte o mantenimiento es la que viene vuelva menos complejo y responda de manera oportuna
después de la implantación y consiste en mantener a los cambios que surgen a lo largo del mismo, siempre
funcional el sistema informático, operando en óptimas contando con el punto de vista del cliente.
7
Escuela Especializada en Ingeniería ITCA-FEPADE REVISTA TECNOLÓGICA N˚ 8. ENERO - DICIEMBRE 2015.
PRINCIPALES METODOLOGIAS ÁGILES El equipo de desarrollo consiste en un conjunto de pro-
fesionales en el área que desempeñan su trabajo con
A. Scrum el fin de proporcionar un producto terminado (Sprint),
este equipo es formado de manera integral, contando
Scrum se basa en la teoría de control de procesos em-
con diversidad de competencias y cumple la caracte-
pírica o empirismo. El empirismo asegura que el cono-
rística de ser auto-dirigidos, sin reconocimiento de
cimiento procede de la experiencia y de tomar decisio-
títulos, con libertad de decisión sobre las entregas.
nes basándose en lo que se conoce. Esta metodología
emplea un enfoque iterativo e incremental para opti-
mizar la predictibilidad y el control del riesgo, realiza Scrum Master, es un líder que está bajo el servicio del
entregas del proyecto en sí. equipo scrum, este miembro ayuda al equipo y a los
clientes externos a comprender las interacciones que
Existen tres pilares fundamentales que soportan el pueden ser de ayuda y cuáles no lo son, además él es
control del proceso empírico los cuales son: el encargado de asegurar que el equipo adopte las
teorías, prácticas y reglas de la metodología scrum.
• Transparencia
• Inspección
Product Owner, es la persona responsable de transmitir
• Adaptación
al equipo de desarrollo la visión del producto que se
La metodología Scrum describe cuatro eventos impor- desea crear, aportando la perspectiva de negocio.
tantes que componen cada una de las entregas:
Stakeholders, conjunto de personas que no forman
• Reunion de planificación del sprint (Sprint Plan- parte directa del proceso de desarrollo pero que si
ning Meeting)
• Scrum Diario (Daily Scrum) deben ser tenidos en cuenta, por ser personas intere-
• Revision del Sprint (Sprint Review) sadas en el mismo, tales como directores, gerentes, co-
• Retrospectiva del Sprint merciales etc.
(Spring Retrospective)[7]
Usuarios, al igual que los Stakeholders no forman parte
Scrum se centra en la división del trabajo complete
del proceso de creación directamente (podrían estar
(Product Backlog) en distintos apartados o bloques
en la fase de revisión de entregables si se considera
que pueden ser abordados en periodos cortos de
necesario).Son los destinatarios finales de la aplicación
tiempo (1-4 semanas), los cuales son denominados
Sprint a desarrollar, el público objetivo del mismo. [12]
Equipo de desarrollo de Scrum Equipo de desarrollo, equipo responsable de desarro-
llar y entregar el producto. Mantiene una organización
horizontal en la que cada miembro del equipo se au-
to-gestiona y organiza libremente en la definición y
ejecución de los distintos sprints.
B. Extreme Programming (XP)
La programación extrema es una metodología que se
basa en una serie de reglas y principios que se han uti-
lizado a lo largo de toda la historia del desarrollo de
software, aplicando conjuntamente cada una de ellas
de manera que creen un proceso ágil, en el que se le dé
énfasis a las tareas que agreguen valor y quiten proce-
dimientos que generan burocracia en el mismo.
Fig. 3. Equipo de Trabajo de la Metodología Scrum. [11]
8
REVISTA TECNOLÓGICA N˚ 8. ENERO - DICIEMBRE 2015 Escuela Especializada en Ingeniería ITCA-FEPADE
es más pesado; cuánto más crítico es el sistema más
rigor se necesita. Además cristal sugiere que se defina
un color para cada proyecto en función de su criticidad
y tamaño. No existe una metodología cristal en general,
sino existe una metodología cristal para cada tipo de
proyecto. Tal como se muestra en la siguiente figura.
Fig. 4. Marco de trabajo de la metodología XP. [13]
La programación extrema se engloba en doce princi-
pios básicos, los cuales a su vez se agrupan en cuatro
categorías grandes, entre ellas se pueden mencionar:
Fig. 5. Criticidad de la metodología Crystal [8]
Retroalimentación a Escala Fina, en esta fase
se encuentran diversos principios como los de
realización de pruebas, proceso de planifica- Cada una de las letras que se muestran en la figura an-
ción, el cliente en el sitio y programación en terior hace referencia a los riegos potenciales:
parejas.
C: pérdida de confort debido a un fallo del sistema
Proceso Continuo en lugar de por lotes, D: pérdida de dinero discrecional (nuestro dinero)
permite la integración continua, refactoriza- E: pérdida de dinero esencial (este es el dinero del
ción (Evaluar el diseño del sistema a los largo cual no se puede disponer)
de todo el proyecto y codificar si es necesario) L: pérdida de vidas por el fallo del sistema [8]
y entregas pequeñas.
A su vez los números indican la cantidad de personas
Entendimiento compartido, en esta categoría que son coordinadas en el proyecto, de acuerdo a lo
se definen criterios como el de crear un diseño siguiente:
fácil, las tarjetas CRC (Clase, Responsabilidad y
Colaboración) y la creación de la metáfora del • Clear es para equipos de 8 personas o menos.
sistema o historia completa. • Amarillo para equipos de 10-20 personas.
• Naranja para equipos de 20-50 personas.
Bienestar del programador, se rige por la filo- • Rojo para equipos de 50-100 y así sucesivamen-
sofía que un programador cansado, exhausto te pasando por el marrón y violeta.[8]
crea código de mala calidad, por eso se re-
comienda que los desarrolladores tengan 40 Como las metodologías descritas anteriormente
horas de trabajo a la semana y muy pocas Crystal es regida por principios que hacen su utiliza-
horas extras de trabajo. ción eficiente, entre los cuales se pueden mencionar:
C. Crystal Clear Cada proyecto necesita un grado diferente de
compensación (Trade Off).
Crystal es una metodología en la cual se establecen
códigos de color como parte de la definición de la com- Entre más pequeño sea el proyecto es mejor la
plejidad de la misma, si es más oscuro entonces el método forma de coordinación.
9
Escuela Especializada en Ingeniería ITCA-FEPADE REVISTA TECNOLÓGICA N˚ 8. ENERO - DICIEMBRE 2015.
Cada uno de los proyectos necesita diferentes PLATAFORMAS Y ARQUITECTURAS
medios de comunicación.
Así como contamos con diferentes metodologías agiles
Debe existir retroalimentación y comunicación de desarrollo de software, se cuentan también con di-
efectiva, reduciendo así los problemas en en- ferentes plataformas en las cuales se puedan ejecutar,
tregas fallidas. siendo las principales:
Los puntos dulces aceleran el desarrollo, se OpenProject: incluye gestión de timeline, workpackac-
debe de contar con personas capaces y dedi- ges, gestión documental, Wikis, News y Foros para co-
cadas a su trabajo, que se preocupen por hacer laboración y existen plugins para gestión de costos o
las entregas a tiempo y conforme a lo que el metodologías ágiles como SCRUM.
cliente solicita.
IceScrum: como su nombre sugiere está enfocada a so-
Roles y Productos en Crystal Clear portar la metodología ágil Scrum. Sprints, Product Ma-
nagement, Release Plan, Sandbox, Timeline o Cuadros
En Crystal Clear existen ocho diferentes roles asig- de Mandos, esta herramienta cubre con cierta holgura
nados a los miembros del equipo (sponsor ejecutivo, la mayor parte de las prácticas ágiles. Hay una versión
usuario experto, diseñador líder, diseñador-programa- gratuita y una versión extendida de pago.
dor, experto del negocio, coordinador, tester, writer),
los primeros cuatro roles deberían ser asignados a per- TeamWork Project: herramienta online para gestionar
sonas diferentes, mientras que los últimos se podrían distintos proyectos y equipos de trabajo. Accesible
asignar a personas dentro del mismo proyecto. desde móviles. Ofrece un sistema de ticketing (issue
tracking), schedulling, gestión y planificación de recur-
Tabla 1. Roles y Productos en Crystal. [9] sos, gestión documental, y facilidades para metodolo-
gías ágiles como por ejemplo: Scrum y Kanban. [10]
Roll- Último
Productos
Responsable X Planner: X-Man (Extreme Manager) es una herra-
Sponsor La declaración de la Misión con el
mienta fácil para gestión y seguimiento de proyectos
(patrocinador, quien Trade-off de Prioridades. ágiles. Si trabajas con un formato ágil tipo XP o Scrum,
financia) merece la pena echarle un vistazo, porque además es
La estructura y las convenciones del un programa “limpio”.
Equipo
equipo.
Los resultados del trabajo de Agile Mantis: es un plugin utilizado en el programa
reflexión.
MantisBT y este trae todos los componentes necesarios
Coordinador, con El Mapa del Proyecto, para desarrollar la metodología Scrum como pedidos
ayuda del equipo El Plan de Entrega, pendientes de productos, historias de usuarios, sprint,
El Estado del Proyecto,
La Lista de Riesgo, etc.
El Plan y Estado de la Iteración,
La visualización del Calendario-
Algunas de las herramientas descritas anteriormente
Cronograma.
traen una versión de prueba y otra de paga, además se
Experto del negocio La lista de los objetivos por actor: cuentan con herramientas en la nube.
y usuario experto Los Casos de Uso.
juntos El archivo de Requerimientos:
El modelo del rol del usuario.
METODOLOGÍAS TRADICIONALES VRS.
Líder de diseño La descripción de la Arquitectura
(diseñador líder)
ÁGILES
Borradores de pantalla, La incorporación de nuevas tecnologias y formas de
Diseñadores- Modelo de Dominio Común,
Esquemas y notas de diseño, llevar a cabo el proceso de desarrollo de software
programadores
(incluyendo al líder Código fuente, ha venido revolucionando de manera tal que se han
de diseño) Código de Migración, dejado de lado los largos procesos y documentación
Las Pruebas,
El sistema empaquetado. exhaustiva, por métodos más enfocados en el cliente y
en el equipo de desarrollo. Basándose en este enfoque
Tester Reporte de errores en ese momento
10
REVISTA TECNOLÓGICA N˚ 8. ENERO - DICIEMBRE 2015 Escuela Especializada en Ingeniería ITCA-FEPADE
se realiza una comparacion de la forma antigua de Tabla 3. Metodologías con mayor presencia en
la red. [6]
realizar el proceso versus el actual. A continuación se
muestra una tabla resumen con aspectos importantes
de ambas metodologías.
Tabla 2. Aspectos diferenciadores entre proce-
sos agiles y dirigidos por modelos. [5]
Conclusiones
Se realizó un estudio y análisis de las diferentes meto-
dologías de desarrollo de software utilizadas en la actua-
lidad y que forman parte esencial en los proyectos em-
presariales; los cuales se han ido innovando para cubrir
de manera eficiente los requerimientos de los clientes;
a la vez se hizo en análisis de las metodologías antiguas
orientadas a la documentación versus las metodologías
agiles más enfocadas en las personas y en actividades
que agregan valor.
Según un análisis realizado en los buscadores de mayor
De igual forma, se llevó a cabo un estudio de las dife-
presencia en Internet, se encontraron las preferencias
rentes herramientas de software libre y de paga que se
de metodologías de desarrollo: tienen para la implementación de metodologías ágiles.
Referencias
LIBROS
[1] G. Maigua, E. López, Buenas prácticas en la dirección y gestión [8] S. G. Rivadeneira, “Metodologías ágiles enfocadas al modelado
de proyectos informáticos, Argentina: Editorial de la Universi- de requerimientos,” Unidad Académica Rio Turbio – Univer-
dad Tecnológica Nacional – edUTecNe, 2012, p.13. sidad Nacional de la Patagonia Austral, Argentina, May. 2012.
[2] K. Beck, Extreme Programming Explained: Embrace Change, [9] L. Gimson, “Metodologías agiles y desarrollo basado en el co-
Addison-Wesley, Pearson Education, 2000. nocimiento,” Universidad Nacional de La Plata, Argentina, Jun.
2012.
[3] R. Pressman, Ingeniería de software: Un enfoque práctico,
(3rd. Ed.) México: Mc Graw-Hill, 1993. [10] M. Villanueva. (2014, Abr.). Quality and Technology.
Disponible:
[4] P. Abrahamsson, O. Salo, J. Ronkainen, J. Warsta, Agile sof- http://www.calidadytecnologia.com/2014/04/herramien-
tware development methods. Review and analysis, Finlandia: tas-Open-Source-Gestionar-Proyectos.html
VTT, 2002.
[11] J. J. Grajeda. (2012, Feb.). ¿Qué es Scrum?,
Disponible: http://aprendiendosoftware.blogspot.com.
REPORTES TÉCNICOS
es/2012/02/que-es-scrum.html
[5] P. Torres, E. López, “Metodologías ágiles en el desarrollo de
software,” Alicante, Nov. 2003. [12] V. Digital (2012, Sept.). Scrum la metodología de desarrollo ágil
por excelencia,
Disponible: http://vassdigital.com/blog/scrum-la-metodolo-
[6] A. Palacios, V. Merchán, “Guía de fundamentos para la direc-
gia-de-desarrollo-agil-por-excelencia/
ción de proyectos de desarrollo de software con enfoque pmi
y los métodos ágiles,” Ecuador, 2014.
[13] Rojas (2013, Jun.). Programación Extrema, CodeJobs,
[7] K. Schwaber, J. Sutherland, “La guía de Scrum,” Nov.2013. Disponible: http://www.codejobs.biz/es/blog/2013/06/05/
programacion-extrema-xp#sthash.7z7S2a2S.dpbs
11
Este documento es propiedad de la Escuela Especializada en Ingeniería ITCA-FEPADE. Derechos Reservados.