Una ligera mirada a la Metodología AGILE

Free Picture: CogwheelsID: 6662274 © Imre Forgo | Dreamstime Stock Photos
Free Picture: Cogwheels ID: 6662274 © Imre Forgo | Dreamstime Stock Photos

Por años hemos manejado la programación de aplicaciones enfocados en el producto total, dejando a un lado la oportunidad de hacer entregas de valor a la organización y la posibilidad de reducir errores, re-trabajo y desperdicio.

Hace algunos días decidí tomar una capacitación on line MOOC (Gestión de proyectos con metodologías Ágiles y enfoques Lean) ofrecida por la plataforma del consorcio de universidades de Europa y América Miriadax.net, bajo el auspicio de Telefónica aunque es una introducción, me ha dejado ver como una manera convencional de gestión de proyectos de desarrollo de software ha sido desplazada por una metodología sumamente práctica y poderosa, enfocada en hacer mas dinámico el ciclo de desarrollo haciendo que la modularidad se convierta en la guía que dirige los destinos del producto.

La famosa frase «Divide y vencerás» toma gran importancia, y lleva los equipos de desarrollo a soluciones que pueden ser incorporadas al negocio a una velocidad impresionante. El esquema que soporta la gestión de proyectos con Metodología Agile es definido por equipos multidisciplinarios que aportan su experiencia sobre el proceso para mejorar no solo su entregable, sino que su conocimiento puede aportar mejoras significativas sobre los entregables de las demás partes.

La voz del cliente o usuario final, los interesados del producto y otras figuras de la empresa son fundamentales, ya que todo el ejercicio empieza en esas definiciones del producto final que pueden entregarse progresivamente y agregar valor de inmediato. Es muy interesante, luego de establecer los objetivos del desarrollo, iniciar un ejercicio que busca separar técnica y funcionalmente cada componente de manera que se pueda utilizar tan pronto es terminado.

A diferencia de lo que muchos opinan, ese ejercicio es un pilar fundamental en la obtención de un producto de calidad, ya que la participación de los expertos funcionales le aporta al desarrollo los requisitos de calidad requeridos por el negocio o la industria y que impacta positivamente en aquellos otros controles de calidad que deben ser provistos para que el desarrollo técnicamente sea confiable.

Si lo vemos desde otra óptica, incorporar esta metodología no resulta difícil, ni es del todo desconocida, en algún momento de estos procesos, en las empresas se han vivido experiencias de este tipo, que por alguna razón debieron ser ejecutadas de una forma modular  y aunque no tenían establecidos un modelo, finalmente resultaron ser exitosas.

Desde el punto de vista del programador, hace mas eficiente y menos lento el delivery de su producto, reduce el tiempo de espera y abona al desarrollo final componentes que no solo pueden ser utilizados de inmediato, sino que también sirven para la experiencia de las funcionalidades siguientes, incorporando mejoras importantes, validaciones y estándares de desarrollo de una forma progresiva. Sin hablar de las diferentes reuniones, revisiones, discusiones y seguimiento que hacen mas eficiente y agradable el ambiente de trabajo de los participantes de cada equipo de trabajo o proyecto.

Se debe tener muy presente que nada en este proceso sustituye el aseguramiento de la calidad, mejora significativamente este proceso, pero los procesos de control de calidad deben ser aplicados como establecido en la organización en cada etapa, apoyando la metodología y el ritmo de entrega de funcionalidades. Otro aspecto muy peculiar es que esta metodología solo trae beneficios para  la gestión de proyectos de desarrollo, nada que ver con otras dependencias de TI.

Tambien importante citar que Agile no necesariamente significa rápido o en menos tiempo, es mas un modelo que procura la eficiencia de los equipos de desarrollo, y la entrega de valor de forma mas frecuente, y aunque muchos desarrollos resulten ejcutados rápidamente, este no es el pilar de la metodología.

Luis Colón, MCE | Consultor de TI | Educador