Este documento presenta los resultados de una investigación sobre la gestión de proyectos mediante metodologías ágiles. Describe varias metodologías ágiles como Scrum, Kanban y Lean y explica sus ventajas como mejorar la calidad del producto, mayor satisfacción del cliente y motivación de los trabajadores. Se detalla el proceso Scrum, incluyendo las etapas de planificación, ejecución e inspección de iteraciones. Finalmente, concluye que combinar diferentes metodologías ágiles y de gestión de proyectos puede cubrir todo el
3. INTRODUCCIÓN
El dinamismo y la variabilidad de la industria del software hace necesario replantear las
bases y prácticas que sustentan el desarrollo de software convencional. Un reciente
estudio realizado por (Boehm, 2006), sobre tendencias en ingeniería del software,
muestra que el mercado actual está caracterizado por el desarrollo rápido de aplicaciones
y la reducción de la vida de los productos. En este contexto variable e inestable se
requiere como ventaja competitiva aumentar la productividad y satisfacer las necesidades
cambiantes de los clientes en el menor tiempo posible para proporcionar un mayor valor
al negocio. Ante este panorama, cabe reflexionar sobre el grado de adaptación de las
metodologías convencionales a estas circunstancias. La mayoría de los estudios
coinciden en que el carácter normativo y la fuerte dependencia de planificaciones previas
al desarrollo que definen a las metodologías convencionales, implican que resulten
excesivamente pesadas para cubrir las necesidades de un amplio porcentaje del
mercado software actual.
Las metodologías ágiles surgidas a fines de los ’90, no han sido muy tenidas en cuenta
por el mundo académico, quizás recién a mediados de la década anterior se comienzan
a encontrar trabajos de investigación al respecto.
En este trabajo se analizan las metodologías ágiles más utilizadas enfocándose en las
primeras etapas del ciclo de vida del software y deteniéndose en las prácticas, técnicas
y productos que se utilizan en las mencionadas etapas. Para ello se indagó en la literatura
existente para conocer cada una de las metodologías involucradas, logrando una primera
selección y comparación de las mismas, y exponiendo los resultados y sus conclusiones
en este informe.
Objetivo: Conocer aspectos generales acerca de la metodología ágile, sus aplicaciones,
alcances, funciones y áreas de ejecución.
Propósito: Investigar todos los detalles relacionados con La gestión de proyectos
mediante metodologías ágiles tiene como objetivos dar garantías a las cuatro
demandas principales de la industria en la que se ha generado: valor, reducción del
tiempo de desarrollo, agilidad y fiabilidad, garantizando la calidad y la satisfacción del
cliente.
4. METODOLOGÍA.
Las metodologías ágiles han ido ganando bastante popularidad en estos años, y
últimamente, está ganando más adeptos en los claustros académicos. La comunidad ágil
posee críticos y adeptos al uso de arquitectura de software en este tipo de desarrollos.
Este trabajo intenta analizar los trabajos recientes relacionados con esta área poco
conocida en el ambiente académico
Procedimiento:
Para poder realizar esta investigación tuvimos que remontarnos en los antecedentes del
problema como tal, buscar que posibles problemas se presentaban al momento de
desarrollar un software y en su funcionalidad, esto lo realizamos mediante la búsqueda
de información en libros, revistas electrónicas, información de la web 2.0 utilizando
buscadores académicos, tales como Google académico, Scielo, Redalyc, Academia.edu,
etc.
Una vez obtenida la información se realizó la selección y análisis correspondiente para
proceder con la siguiente etapa de la investigación, que fue la investigación de campo
por este motivo, decidimos visitar el Corporativo Santander (CTOS Querétaro) y observar
mediante la realización de una bitácora de investigación, el nivel o porcentaje en que los
empleados de la empresa conocían estas herramientas informáticas mediante un
recorrido por la empresa, y a si en base a lo observado se realizo un guion para una
entrevista con el Ingeniero Jose Alfredo.
En la que se realizó la entrevista con el ingeniero, y en base a sus respuestas nos
percatamos que el factor humano tiene mucho que ver con el buen manejo de software
y la capacitación que la empresa brinda a los empleados.
Todos los materiales recopilados en esta investigación fueron: mapas mentales, escritos,
esquemas, registros bibliográficos, gráficas, entrevista y encuestas nos proporcionaron
la información suficiente para poder concluir con nuestra investigación y poder realizar
este informe, cabe mencionar que todos los documentos generados en esta investigación
se mostraran en el apartado de anexos.
6. RESULTADOS
La gestión ágil de proyectos o Agile Project Management es un conjunto de metodologías
para el desarrollo de proyectos que precisan de una especial rapidez y flexibilidad en su
proceso. En muchas ocasiones son proyectos relacionados con el desarrollo de software
o el mundo de internet.
En sectores constantemente cambiantes, las organizaciones necesitan desarrollar sus
servicios rápidamente para ser altamente competitivos, y esto no es tarea fácil. Muchas
veces es necesario ir probando las distintas funcionalidades del servicio sobre la marcha
y medir si está funcionando o no para acabar ofreciendo una solución final.
Si utilizamos metodologías tradicionales en la gestión de proyectos, estas revisiones (o
tests) pueden suponer un retraso en las fechas de entrega, aumento de costes y del
volumen de trabajo. Además, también podría suceder que para cuando tengamos el
producto final éste ya quede obsoleto. He aquí la importancia del Agile Project
Management para evitar que esto suceda.
Gestión Ágil de Proyectos o Agile Project Management
Las metodologías ágiles se basan en un enfoque flexible. Los miembros del equipo
trabajan en pequeñas fases y equipos sobre actualizaciones concretas del producto.
Después, se testea cada actualización en función de las necesidades del cliente, en
lugar de centrarnos en un único producto final que sólo se lanza al finalizar el proyecto.
Divide las distintas actualizaciones del producto, trabájalas por separado, testéalas una
a una y vencerás.
El producto final de un proyecto ágil puede perfectamente ser distinto al que se había
previsto inicialmente. No obstante, durante los procesos de testeo se sigue trabajando
según los requerimientos del cliente, de forma que el producto final sigue respondiendo
a sus necesidades.
Estas metodologías ágiles (Scrum, Kanban, Lean, XP programming…) son
especialmente adecuadas para empresas y sectores involucrados en contextos de
cambio constante, proyectos especialmente complejos o situaciones de urgencia donde
no contamos con el tiempo necesario para desarrollar el proyectos de forma
convencional.
7. Ventajas del Agile Project Management
1. Mejora de la calidad del producto: Estas metodologías fomentan el enfoque
proactivo de los miembros del equipo en la búsqueda de la excelencia del
producto. Además, la integración, comprobación y mejora continua de las
propiedades del producto mejora considerablemente el resultado final.
2. Mayor satisfacción del cliente: El cliente está más satisfecho al verse
involucrado y comprometido a lo largo de todo el proceso de desarrollo. Mediante
varias demostraciones y entregas, el cliente vive a tiempo real las mejoras
introducidas en el proceso.
3. Mayor motivación de los trabajadores: Los equipos de trabajo auto
gestionados, facilitan el desarrollo de la capacidad creativa y de innovación entre
sus miembros.
4. Trabajo colaborativo: La división del trabajo por distintos equipos y roles junto
al desarrollo de reuniones frecuentes, permite una mejor organización del
trabajo.
5. Uso de métricas más relevantes: Las métricas utilizadas para estimar
parámetros como tiempo, coste, rendimiento, etc. son normalmente más reales
en proyectos ágiles que en los tradicionales. Gracias a la división en pequeños
equipos y fases podemos ser más conscientes de lo que está sucediendo.
6. Mayor control y capacidad de predicción: La oportunidad de revisar y adaptar
el producto a lo largo del proceso ágil, permite a todos los miembros del proyecto
ejercer un mayor control sobre su trabajo, cosa que permite mejorar la capacidad
de predicción en tiempo y costes.
7. Reducción de costes: La gestión ágil del proyecto elimina prácticamente la
posibilidad de fracaso absoluto en el proyecto, porque los errores se van
identificando a lo largo del desarrollo en lugar de esperar a que el producto esté
acabado y toda la inversión realizada.
8. EL PROCESO SCRUM.
En Scrum un proyecto se ejecuta en ciclos temporales cortos y de duración fija
(iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y
hasta 4 semanas, límite máximo de feedback de producto real y reflexión). Cada iteración
tiene que proporcionar un resultado completo, un incremento de producto final que sea
susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.
El proceso parte de la lista de objetivos/requisitos priorizada del producto, que actúa
como plan del proyecto. En esta lista el cliente (Product Owner) prioriza los
objetivos balanceando el valor que le aportan respecto a su coste (que
el equipo estima considerando la Definición de Hecho) y quedan repartidos en
iteraciones y entregas.
Las actividades que se llevan a cabo en Scrum son las siguientes:
Planificación de la iteración
El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene
dos partes:
1. Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista de
requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas
que surgen y selecciona los requisitos más prioritarios que se compromete a completar
en la iteración, de manera que puedan ser entregados si el cliente lo solicita.
2. Planificación de la iteración (4 horas máximo). El equipo elabora la lista de tareas de
la iteraciónnecesarias para desarrollar los requisitos a que se ha comprometido. La
estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se
autoasignan las tareas.
Ejecución de la iteración
Cada día el equipo realiza una reunión de sincronización (15 minutos máximo),
normalmente delante de un tablero físico o pizarra (Scrum Taskboard). Cada miembro
del equipo inspecciona el trabajo que el resto está realizando (dependencias entre
tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden impedir este
objetivo) para poder hacer las adaptaciones necesarias que permitan cumplir con el
compromiso adquirido. En la reunión cada miembro del equipo responde a tres
preguntas:
¿Qué he hecho desde la última reunión de sincronización?
¿Qué voy a hacer a partir de este momento?
¿Qué impedimentos tengo o voy a tener?
9. Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo pueda
cumplir con su compromiso y de que no se merme su productividad.
Elimina los obstáculos que el equipo no puede resolver por sí mismo.
Protege al equipo de interrupciones externas que puedan afectar su compromiso o su
productividad.
Durante la iteración, el cliente junto con el equipo refinan la lista de requisitos (para
prepararlos para las siguientes iteraciones) y, si es necesario, cambian o replanifican
los objetivos del proyecto para maximizar la utilidad de lo que se desarrolla y el retorno
de inversión.
Inspección y adaptación
El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene dos
partes:
1. Demostración (4 horas máximo). El equipo presenta al cliente los requisitos
completados en la iteración, en forma de incremento de producto preparado para ser
entregado con el mínimo esfuerzo. En función 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 iteración, replanificando el
proyecto.
2. Retrospectiva (4 horas máximo). El equipo analiza cómo ha sido su manera de trabajar
y cuáles son los problemas que podrían impedirle progresar adecuadamente,
mejorando de manera continua su productividad. El Facilitador se encargará de ir
eliminando los obstáculos identificados.
10. CONCLUSIONES Y RECOMENDACIONES:
Podemos concluir que todas las metodologías analizadas en este trabajo se pueden
combinar con otras sean tradicionales o más actuales, algunas como el caso de TDD
forman parte de otras. Las combinaciones pueden darse en algunas o en todas las fases
para poder lograr cubrir todo el ciclo de vida. La Figura 9 contiene una comparación de las
metodologías descriptas en este trabajo en cuanto a las fases o etapas que cada una
cubre del ciclo de vida básico del software (Carvajal 2008). Algunas de las conclusiones
son:
rte para la gestión, prácticas,
actividades y artefactos son APM y Scrum.
scribe la forma de
utilizar prácticas, actividades y artefactos en las primeras etapas es DSDM.
cto ni la etapa de análisis son
Crystal Methods y TDD.
etapa de análisis es XP.Combinando estas metodologías ágiles con directrices de
gestión de proyectos, reducimos sus debilidades y las hacemos más robustas,
mejoramos la organización, aumentamos la capacidad de medición (y de mejora
continua), y en general se incrementa el control del proyecto.
11. BIBLIOGRAFIA.
Abrahamsson P., Salo O., Ronkainen J., Warsta J. 2002. Agile software
development
methods. Review and analysis. VTT. Finlandia.
Ambler S. 2005. Effective Practices for Modeling and Documentation. En:
http://www.agilemodeling.com/
Beck, K., et al.: The Agile Manifesto. Manifesto for Agile Software Development.
En:
http://www.agilemanifesto.org
Boehm, B., Turner, R. 2004.“Balancing Agility and Discipline. A Guide for the
Perplexed”
ISBN 0321186125 Addison-Wesley.
Boehm, B. 2006.A View of 20th and 21st Century Software Engineering. In: 28th
international conference on Software engineering, pp. 12--29. Shanghai, China.
Booch, G, Rumbaugh, J., Jacobson, I. 2006. El lenguaje unificado de modelado.
Pearson
Educación. España.
Canós J., Letelier P., Penadés M. 2003. Metodologías Ágiles en el Desarrollo de
Software.
JISBD 2003. España.
Cao, L., Ramesh, B. 2008. Agile Requirements Engineering Practices: An
Empirical Study.
In: IEEE Computer Society Press Los Alamitos, CA, vol 25, pp-60-67.
Carvajal J. 2008. Metodologías Ágiles: Herramientas y Modelo de desarrollo para
aplicaciones Java EE como metodología empresarial.
Castro, P. 2004. Ingeniería del software orientada a objetos. En: Revista del
Instituto
Tecnológico de Informática Actualidad TIC. Nro 5. Pp. 8 - 11. España.
Cockburn, A. 2002. 7 properties of highly successful projects from Crystal Clear.
En:
http://alistair.cockburn.us/.
DSDM Consortium. 2002. DSDM and Extreme Programming. En:
http://www.agilealliance.org/resources/articles/
Gottesdiener, E. 2007.YAGNI your requirements docs.Success with
Requirements, Vol. 1,
No. 9.
Gottesdiener E. 2007. "Requirements Practices on Agile Projects," Successwith
Requirements, Vol. 1, No. 8.
Highsmith, J. 2004. Agile Project Management: creating innovative products.
Pearson
Education. USA.