La Validación Ágil en la Dirección de Proyectos.
Dirección ágil de proyectos…? Qué propone el PMI al respecto? Si ya existe la certificación de Profesionales en Dirección de Proyectos (PMP), en qué se diferencía la certificación PM Agile?
Conforme el uso de métodos tradicionales (entendamos por tradicional las prácticas y enfoque planteados en la guía PMBoK) como de métodos ágiles para dirigir proyectos van tomando fuerza, se vuelve muy importante tener guías de cómo los dos enfoques podrían ser aplicados.
Algunos métodos ágiles como SCRUM, DSM, XP and FDD están ganando popularidad en la industria del desarrollo de software, de hecho, muchas empresas reportan un aumento en la productividad y mayor satisfacción de los usuarios con los sistemas desarrollados cuando se trabaja usando estos enfoques.
En una encuesta realizada en 2003 a más de 131 organizaciones, los resultados mostraron los beneficios de usar métodos ágiles:
93% mencionó que la productividad del equipo mejoró.
88% dijo que la calidad de los desarrollos se incrementó
83% experimentó mayor satisfacción de los usuarios en el uso de los sistemas
Los métodos ágiles promueven técnicas de dirección de proyectos que son muy diferentes de las técnicas propuestas en las guías de proyectos tradicionales; algunas de estas son:
No tratar de concluir con la definición de los requisitos en las fases iniciales del proyecto
Promover los cambios (solicitudes de cambio) a lo largo del ciclo de vida del proyecto
Reducir el énfasis en hacer frente a una planeación rígida
Aunque existe una aparente desconexión entre los principios de dirección de proyectos ágil y tradicional, hay un aumento importante en la implementación de ambos enfoques en las empresas, que buscan la manera de resolverse a si mismas cómo hacer que ambos enfoques en apariencia opuestos, convivan.
Estadísticas del PMI indican que la aplicación de métodos tradicionales de dirección de proyectos va en aumento, con crecimientos mayores a 20% por año, sin señales de estancamientos o decrecimiento (y en mi opinión en muchas de estas implementaciones hay muy buenos resultados).
Hace unos días comentaba con otros profesionales de la Dirección de Proyectos las diferencias entre elo enfoque tradicional y los métodos ágiles, y uno de los puntos que discutíamos era, si las prácticas tradicionales de dirección de proyectos dan resultados, entonces ¿Qué aportan los métodos ágiles?
En mi opinión, me parece que los métodos ágiles no son sólo una manera de gestionar proyectos de desarrollo software, los cuales pueden ser gestionados con las prácticas tradicionales (PMBoK Guide del PMI). Los métodos ágiles requieren la adopción de enfoques particulares de dirección de proyectos para su ejecución.
El alcance de los métodos ágiles va más allá de considerar solo las actividades del equipo de desarrollo, cambia la manera en que los patrocinadores (sponsors), usuarios y otros involucrados (stakeholders) se comprometen con el proyecto.
El enfoque de la dirección de proyectos ágil, también emplea procesos integrales de planificación, ejecución y control para su éxito, y aunque en nada se contrapone con el uso de documentos como el acta de constitución (project charter), o la declaración del alcance (usados en la gestión de proyectos tradicional) para comunicar externamente, los procesos internos para ejecutar un proyecto ágil son bastante diferentes a los del enfoque tradicional.
En la segunda parte de este artículo, hablaremos del reto que representan los proyectos de Software para la dirección de proyectos, según se menciona en un White Paper del PMI.
El reto de los proyectos de software para la dirección de proyectos
Los proyectos de desarrollo de software, presentan un desafío extraordinario para el enfoque tradicional de dirección de proyectos (PMBoK Guide). Primero, el software es intangible y difícil de explicar bien; raramente el mismo sistema es construido dos veces, lo que complica hacer una analogía con alguna funcionalidad existente. Esto puede llevar a "dificultades en la evaluación", dándose incompatibilidades en la interpretación de los objetivos y requisitos orginales del cliente.
En segundo lugar, los proyectos de desarrollo de software son complejos y representan actividades de alto riesgo. A diferencia de muchos proyectos basados en construcción, desarrollar software en lenguajes que evolucionan rápidamente complica tener un proceso definido y repetible. El desarrollo del software es a menudo un proceso de investigación y desarrollo tecnológico sin precedentes. Tratar de crear planes con tareas detalladas para los desarrolladores de software es probable que nos lleve a desarrollar planes frágiles que pronto serán abandonados, o a los que se les tendrá que dedicar demasiado tiempo para actualizarlos.
Un enfoque que ha surgido como una técnica para vencer las dificultades arriba mencionadas es el desarrollo iterativo, el cual agrega puntos de evaluación y revisión de productos tangibles (prototipos) a lo largo del proyecto; promueve la colaboración cercana entre los equipos de desarrollo y usuarios; y permite que se hagan ajustes posteriores a los productos entregables, logrando que el sistema evolucione hacia los requisitos reales del negocio
Cuando a los usuarios se les da la oportunidad de refinar sus requerimientos basándose en los prototipos proporcionados por el equipo de desarrollo, se logra reducir las diferencias entre lo originalmente establecido y las necesidades reales de la empresa, lo que se traduce en valor real para la organización.
El enfoque ágil permite que se hagan ciertos cambios aún en etapas avanzadas del proyecto, dándole una “modificabilidad extrema”, es decir, permite en el proyecto agregar nuevos requerimientos o que estos evolucionen, entregando así el máximo valor posible a la empresa, ya que se reconocen sus necesidades cambiantes.
¿Por qué los métodos ágiles funcionan en los proyectos de desarrollo de software?
1.- Reconocen que es importante hacer una validación de requerimientos en el proyecto, desde el inicio y a lo largo de todo su cliclo de vida; apoyándose de un prototipo que va evolucionando.
2.- Emplean esquemas de priorización de requerimientos, que favorecen las modificaciones e intercambios contra los requerimientos originales, permitiendo la entrega de aplicaciones y sistemas que proporcionen ventajas competitivas al negocio.
3.- No intentan hacer una micro-gestión de los desarrolladores, a través de planes con tareas específicas, en lugar de eso, usa un enfoque orientado al logro del objetivo, utilizando las habilidades del equipo para resolver las complicaciones que se presenten en el proyecto.
Los procesos de la Dirección de Proyectos Ágiles
La siguiente figura sirve de guía para conocer los elementos básicos de los procesos de ejecución y control en la Dirección de Proyectos usando métodos ágiles:
Exhibit 1 – Agile Control and Execution Processes
1.- Lista priorizada de requerimientos o características que serán construidas
El patrocinador o el usuario representante del proyecto prioriza todos los requerimientos del proyecto de acuerdo a su importancia o valor estratégico.
2.- Lista de requerimientos para construir el primer prototipo
A partir de esta lista inicial, se hace una segunda selección de requerimientos para ser desarrollados, tomando a los de mayor prioridad.
3.- Ciclo de desarrollo del prototipo
Los requerimientos y características elegidas pasan a través de un proceso de análisis, desarrollo, pruebas y evaluación durante un período de tiempo corto que comúnmente puede tomar de 2 a 4 semanas (es decir, pasan por una iteración).
En cada iteración, se van agregando más características y mayor funcionalidad al prototipo, desde su construcción inicial hasta que se tiene el producto entregable final.
4.- Ciclo de evaluación de riesgos y comunicación
Dentro de las 2 a 4 semanas que dura la iteración, se realiza una breve reunión diaria en la que los integrantes del equipo se responden lo siguiente:
En qué han estado trabajando desde la reunión anterior
En qué estarán trabajando hoy
Si tienen algún problema, tema o impedimento para lograr avances
A través de esta breve reunion diaria, los involucrados del proyecto (stakeholders) conocen los avances, los miembros del equipo aprenden de en lo que los demás están trabajando. Incluso las barreras y riesgos son rápidamente derrumbadas y mitigadas por el Director del Proyecto.
5.- Lecciones aprendidas
Los métodos ágiles al igual que los tradicionales también realizan retrospectivas. En proyectos que usan métodos ágiles, en cada iteración los integrantes del equipo se preguntan "qué se hizo bien"?, "qué no se hizo bien"?, y se hacen "Recomendaciones para el futuro" las cuales son tomadas en cuenta para la planeación de la siguiente iteración.
Mucha gente cree que estas técnicas parecen moderadamente útiles, pero no reemplazan los rigores del enfoque tradicional de gestión de proyectos. Sin embargo, la adopción del enfoque ágil en realidad representa elementos clave de un cambio a un conjunto actual de teorías de dirección.
En resumen, el enfoque de los métodos ágiles en proyectos de desarrollo de software es que el equipo se encarga de crear valor a la empresa a través de la transformación de los requerimientos en un sistema funcional; y el rol del Director del Proyectos es asegurar la entrega de ese valor removiendo las barreras o impedimentos al equipo del proyecto.
El enfoque tradicional de la dirección de proyectos
Se dice que la visión de los proyectos de la guía PMBoK es dominada por el concepto de transformación (Taylor), recomienda que en las fases iniciales del proyectos se haga una descomposición del proyecto en piezas más y más pequeñas usando técnicas como crear el WBS.
Se enfoca principalmente en la planeación. El tema principal es que si se planea lo suficiente, se da seguimiento comparando contra el plan, y se toman acciones correctivas cuando el trabajo del proyecto se desvía de lo planeado, se tendrá éxito. Si las cosas salen mal, entonces problalemente no dedicaste tiempo suficiente a la planeación, y al entendimiento de los requerimientos y riesgos del proyecto. Estas recomendaciones son particularmente problemáticas para los proyectos de desarrollo de software donde los requerimientos iniciales son pobres y las combinaciones tecnológicas representan los principales riesgos de producción (construcción de software).
La guía PMBoK promueve la planeación como el punto central del rol del director de proyectos, e implica que comunicar las tareas planeadas debe ser a través del WBS. El control se hace comparando los avances contra el plan del proyecto, y cuando es necesario se toman acciones correctivas. A este modelo de control se le conoce como el modelo del termostato. Es decir, parte del supuesto, de que se tiene un plan correcto en el que se establece un desempeño estándar deseado, el estándar de desempeño es medido con el resultado del proyecto, y si se tiene una variación entre el valor medido contra el estándar deseado de desempeño, entonces se toman acciones correctivas en el proceso para que el estándar de desempeño sea alcanzado (cumplir con el plan).
Los métodos ágiles desen ser usados en conjunto con las mejores prácticas de la guía PMBoK (PMI), para una mejor ejecución y control de los proyectos de desarrollo de software.