Blog Sequal

lunes, 20 de junio de 2011

La Validación Ágil

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.

viernes, 3 de junio de 2011

Soft Skills

Saber Escuchar puede ayudarnos en los proyectos más de lo que creemos

Como Director de Proyectos, crees que te comunicas de manera efectiva?

Leí el capítulo completo de la Gestión de la Comunicación del Proyecto del PMBoK Guide, hice el Plan de Comunicación del proyecto, pero no fue suficiente, el plan es de gran ayuda, pero en lo que debo trabajar es en mejorar mis habilidades de escucha esas las debo ejercitar cada día en cada proyecto en el que participe.

A lo largo de mi experiencia en diversos proyectos pensaba que me comunicaba bien, pues creía que hablaba bien, decía lo que quería decir y creía llegar a acuerdos con mis colaboradores, clientes o socios. Pero ahora que pienso en esto, me doy cuenta que he cometido muchos errores y no he tenido la habilidad de escuchar efectivamente a muchas personas.

En la actualidad, muchos líderes de proyectos reconocen que les es difícil escuchar de manera efectiva lo que otros dicen, y que también tienen problemas para hacerse escuchar como quisieran.

Tom Peters, en su libro En busca de la excelencia, liderazgo e innovación menciona que los Directores actuales no saben escuchar a sus colaboradores ni a sus clientes y de ahí su bajo rendimiento.

Una investigación publicada en el libro Los 7 hábitos de la gente altamente efectiva de Stephen Covey menciona que la efectividad en la comunicación está integrada de la siguiente manera: 7% se debe a las palabras, 35% al tono de voz utilizado, y el 55% depende de la actitud y comunicación no verbal (lenguaje corporal).

Para un Director de Proyectos, y sobre todo para uno certificado como PMP por el PMI es indispensable saber comunicarse y sobretodo Saber Escuchar. El PMI en su publicación del Marco de Trabajo para el Desarrollo de Competencias del Director de Proyectos, menciona a la comunicación como una las principales competencias personales a desarrollar, y menciona específicamente: Saber escuchar activamente, entender y responder a los interesados (Stakeholders).

Lo que no dice el PMBoK Guide acerca de la comunicación efectiva
Algunos puntos clave que todo Director de Proyecto, Líder de Proyecto, o cualquier profesional que tenga a su cargo un equipo de trabajo debe considerar cuando se comunica son:

1.- Entender que las personas requieren ser apreciadas y comprendidas, necesitan ser escuchadas
2.- Desarrollar su sensibilidad para escuchar con los oídos, con los ojos y con el corazón
3.- Escuchar empáticamente, es decir, escuchar actitudes no verbales (sentimientos y emociones).

Al escuchar empáticamente, abordamos la realidad que está dentro de la cabeza y el corazón de la otra persona, y eso nos lleva a escuchar para comprender sin juzgar.
La esencia de escuchar empáticamente no consiste en estar de acuerdo con la otra persona, sino en comprenderla profundamente, tanto en lo emocional como en lo intelectual.

Un sentimiento que no encuentre la oportunidad de ser expresado en una conversación, se convertirá en resentimiento. Si este sentimiento no se expresa, nuestra comunicación con cualquier persona se verá bloqueada.