04 mayo 2017

Metodología de Gestión de Proyectos Tradicional y de Desarrollo ágil

En el libro “Gestión de proyectos en el mundo real” de los autores Bonnie Biafore y Teresa Stover”, se aborda de manera clara y sencilla las dos metodologías de gestión de proyectos más comunes, como son la gestión de proyectos tradicional en cascada y la gestión de proyectos de desarrollo ágil, iterativo o de planificación continua-incremental. Algunos de los párrafos más significativos se reproducen más adelante.

Independiente de la metodología de que se trate, seguirá la estructura estándar definida en la guía PMBOK (Project Management Body of Knowledge) del Project Management Institute (PMI), desglosando la gestión de proyectos en cinco grupos de procesos básicos: iniciación, planificación, ejecución, seguimiento y control (monitorización) y cierre. El cómo y cuándo es lo que diferencia unas metodologías de otras.

 En el caso de proyectos sencillos y claramente definidos, lo más lógico es avanzar en los cinco grupos en la manera en que se describe en la imagen anterior (Tradicional), mientras que en el caso de otros proyectos más complejos o menos definidos, los procesos pueden tener que repetirse varias veces (Iterativa o Desarrollo).


GESTIÓN DE PROYECTOS TRADICIONAL EN CASCADA

El enfoque tradicional de gestión de proyectos, también denominado en cascada, se refiere a la forma en que los grupos de procesos fluyen unos detrás de otros: iniciación, planificación, ejecución del plan, seguimiento y control hasta la finalización completa del trabajo, y por último el cierre del proyecto.

El enfoque en cascada funciona bien cuando el objetivo y la solución del proyecto son claros. Es necesario saber lo que hay que hacer para poder pasar de una fase a otra del proceso de gestión de principio a fin. Cuanta más información se tiene, mejor funciona la gestión en cascada.

A continuación se describen algunas de las características de la metodología tradicional de gestión:

> Simplicidad: Los proyectos que son simples o familiares son los mejores candidatos para el enfoque en cascada porque se conocen todos los datos necesarios para realizar el proyecto.

> Nivel de riesgo bajo: El riesgo es sinónimo de incertidumbre, así que a menos riesgo más seguridad. Por ejemplo, si se ha ejecutado antes proyectos similares, podrá estar razonablemente seguro de que los requisitos están completos. Conoce los riesgos y los errores a evitar y sabe cómo afrontarlos si se presentan.

> Tecnología familiar: Conoce los fallos técnicos y sabe cómo resolverlos. Los miembros de su equipo son productivos porque ya están familiarizados con la tecnología.

> Recursos experimentados: Si los miembros del equipo ya han trabajado antes en proyectos similares, conocerán el trabajo y la tecnología y serán, por tanto, más productivos. Además, sabrán qué problemas pueden aparecer y qué hacer para evitarlos.


GESTIÓN DE PROYECTOS DE DESARROLLO ITERATIVO, ÁGIL O DE PLANIFICACIÓN CONTINUA-INCREMENTAL

Los proyectos cuya solución no está claramente definida, lo cual ocurre habitualmente, requieren un enfoque diferente. Cuando no se conoce la solución, no se puede elaborar un plan conjunto para todo el proyecto. La solución se tiene que ir identificando poco a poco, a medida que se va avanzando en el proyecto. Las metodologías de gestión de proyectos de desarrollo iterativo, ágil o de planificación continua emplean iteraciones para ir desvelando la solución gradualmente.



En el enfoque iterativo, se planifica el resultado iteración por iteración como se muestra en la imagen anterior. Así, el cliente, por un lado, recibe el valor comercial antes y, por otro, proporciona sus opiniones y comentarios en cada paso de la solución, lo cual contribuye a ella.

Las metodologías llamadas de desarrollo iterativo y ágil demandan, además, mayor interacción entre los agentes. El cliente debe implicarse más estrechamente que en los proyectos tradicionales, debido a que la solución se va manifestando con el tiempo. El proyecto necesita los comentarios del cliente para proporcionar la solución que necesita.

Los equipos de proyecto suelen ser más pequeños, más especializados y sus miembros suelen colaborar de forma más estrecha y con menos supervisión.

Dadas las iteraciones que se ilustran en la figura anterior, algunos de los grupos de procesos de gestión de proyectos operan de un modo ligeramente distinto que en el caso tradicional:

> Planificación: Se puede desarrollar un plan de alto nivel para el proyecto, pero nunca tendrá el mismo nivel de detalle que un plan de proyecto tradicional. Los planes van siendo cada vez más detallados con cada iteración del proyecto.

> Ejecución: El equipo de proyecto es más pequeño y más autónomo. El trabajo se ejecuta iteración por iteración.

> Seguimiento y control: Se sigue monitorizando el progreso y aplicando correcciones, en su caso. No obstante, la frecuencia de distribución de los informes suele ser mayor debido a la corta vida de las iteraciones.

Cierre: Hay un proceso de cierre en cada iteración y uno final para cerrar el proyecto.


DESARROLLO ÁGIL INCREMENTAL EN PROYECTOS DE SOFTWARE

Como ejemplo, podemos observar las ventajas y debilidades que podría tener la gestión de un proyecto de software gestionado bajo la metodología ágil incremental.

Ventajas

•  En este modelo los usuarios no tienen que esperar hasta que el sistema completo se entregue para hacer uso de él. El primer incremento cumple los requerimientos más importantes de tal forma que pueden utilizar el software al instante.

• Los usuarios pueden utilizar los incrementos iniciales como prototipos y obtener experiencia sobre los requerimientos de los incrementos posteriores del sistema.

• Existe muy pocas probabilidades de riesgo en el sistema. Aunque se pueden encontrar problemas en algunos incrementos, lo normal es que el sistema se entregue sin inconvenientes al usuario.

• Ya que los sistemas de más alta prioridad se entregan primero, y los incrementos posteriores se integran entre ellos, es muy poco probable que los sistemas más importantes sean a los que se les hagan más pruebas. Esto quiere decir que es menos probable que los usuarios encuentren fallos de funcionamiento del software en las partes más importantes del sistema

Debilidades

•  La entrega temprana de los proyectos produce la creación de sistemas demasiados simples, que a veces se ven monótonos a los ojos del usuario que lo recibe.

•  La mayoría de los incrementos se harán en base a las necesidades del usuario. Los incrementos se estipulan antes de la entrega del proyecto, sin embargo hay que ver cómo se maneja el producto, para ver si necesita otros cambios además de los estipulados con anterioridad. Este problema no se ve frecuentemente, ya que la mayoría de las veces los incrementos estipulados suplen satisfactoriamente al usuario.

• Los incrementos no deben constar de muchas líneas de código ya que la idea de los incrementos es agregar accesorios concretos al programa principal (o funcional). Llenar los incrementos de muchas líneas de código provocaría que se perdiera la objetividad o base de lo que se trata en el desarrollo incremental específico.

• Requiere de un cliente involucrado durante todo el curso del proyecto. Hay clientes que simplemente no estarán dispuestos a invertir el tiempo necesario.

• El trato con el cliente debe basarse en principios éticos y colaboración mutua, más que trabajar cada parte independientemente, defendiendo sólo su propio beneficio.

• La entrega de un programa que es parcial pero funcional puede hacer vulnerable al programa debido a la falta de robustez en su sistema, provocando que agentes ajenos puedan interferir con el correcto funcionamiento del programa en sí.

• Infunde responsabilidad en el equipo de desarrollo al trabajar directamente con el cliente, requiriendo de profesionales sobre el promedio.

• Sufre fuertes penalizaciones en proyectos en los cuales los requerimientos están previamente definidos, o para proyectos "todo/nada" en los cuales se requiere que se completen en un 100% el producto para ser implementado (por ejemplo, licitaciones)

• Otro punto muy importante es asegurarnos de que el trabajo se pueda cumplir tomando en cuenta los costos que podamos usar en nuestros propios recursos.


RESUMEN

La clave de la metodología de Desarrollo ágil, iterativo y creciente (o incremental), es diseñar un modelo inicial que permita el rediseño y la ampliación de funcionalidades. Aplicando esta metodología, se reducen los riesgos finales y se avanza en los proyectos indeterminados, satisfaciendo los requerimientos priorizados del cliente, de forma creciente.

La metodología de Desarrollo ágil, se diferencia de las metodologías tradicionales o de cascada, principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad.

Los valores originales de la programación extrema vinculada a la metodología de Desarrollo ágil son: simplicidad, comunicación, retroalimentación (feedback), coraje y respeto.

No hay comentarios:

Publicar un comentario

Introduce tu comentario...