sábado, 27 de febrero de 2016

Agile or die...


La gestión de proyectos siempre ha sido y será un tema en constante debate: queremos poder planificar de antemano la duración y uso de recursos de forma precisa e unívoca.

En ingeniería del software constantemente aparecen nuevas metodologías para ayudarnos a planificar y controlar el desarrollo de un proyecto. Metodologías y sus marcos de desarrollo.

Posiblemente, la metodología más usada hasta el día de hoy en la gestión de proyectos es el desarrollo en cascada o Waterfall. Sobretodo habrá sido la más usada si tenemos en cuanta la infinidad de veces que ha sido aplicada de forma laxa y a pesar de los inconvenientes que ha comportado el no ser aplicada de forma estricta.

Desde hace unos años, empieza a aparecer con fuerza una nueva metodología para la gestión de proyectos: Agile. Con marcos de desarrollo como Prince2 o Scrum, entre otros. Esta nueva metodología únicamente aporta beneficios a los que la aplican. ¿Por qué? El secreto radica en mucho puntos, de los cuales los principales son:

  • La implicación de todos los miembros del equipo en la planificación. No es el el jefe de proyecto o el analista el que dice lo que hay que hacer y como, sino que es el equipo el que acuerda como hacerlo.
  • La planificación es más ajustada a la realidad. Al vincular todo el equipo, la planificación también es realizada en conjunto. No es el jefe de proyecto el que decide las tareas y su duración, sino que es el equipo el que se compromete con las tareas y en su duración.
  • Mejora de la satisfacción de cliente. El cliente también es miembro del equipo, por lo que se le hace partícipe de las decisiones y compromisos.
  • Planificaciones cortas con resultados visibles. No se planifica un gran proyecto, se planifican un conjunto de funcionalidades. Funcionalidades que se pueden desarrollar en un tiempo relativamente corto y con las que el cliente podrá obtener un resultado visible al final del desarrollo. No será resultado completo de todo el sistema, pero si un desarrollo parcial pero funcional.
Podríamos añadir muchos más puntos que nos ayudaran a comprender los beneficios de Agile. Pero desde mi punto de vista, y en contraposición a Waterfall, añadiré únicamente uno más:
  • Flexibilidad en los cambios del modelo de negocio. Waterfall necesita que el modelo de negocio esté muy claro y que no cambie. Cualquier cambio o cualquier punto funcional que no haya quedado suficientemente clarificado puede suponer un "volver a empezar", o casi. Por lo contrario, en Agile, un cambio simplemente será una o varias nuevas funcionalidades, a priorizar y planificar.
Teniendo en cuenta que cada vez los proyectos son más cortos, menos concretos o con requerimientos menos claros y que lo que hoy funciona de una manera mañana debe funcionar de otra, es por lo que creo que las empresas de consultoría y las empresas de ingeniería del software deben adoptar Agile, en el marco de desarrollo que crean más adecuado, para todos sus procesos de construcción, mejora y depuración de software. Y las que no lo hagan, se exponen a desaparecer engullidas por la competencia, en muy poco tiempo. "Agile or die..."