Metodologías ágiles para gestión de proyectos

Cada día vemos que controlar el desarrollo de un proyecto informático no es tarea fácil debido a que las tecnologías y la comunicación avanzan a pasos agigantados. A la calidad y eficiencia del producto y servicio proporcionado al cliente, se le debe unir la flexibilidad y rapidez en la entrega del mismo.

Para facilitar dicha tarea se utilizan las herramientas de gestión, las cuales permiten establecer una metodología de trabajo cuyos objetivos van encaminados a facilitar la planificación, evaluación y seguimiento del proyecto, optimizar el uso de los recursos, mejorar las comunicaciones entre cada una de las partes implicadas, y garantizar un producto final de calidad.

Aunque son bastante recientes (datan de los años 50), actualmente los desarrolladores de software nos encontramos con que las metodologías tradicionales son demasiado rígidas para las características del mercado tan cambiante en el que nos movemos. En muchos proyectos los objetivos del producto van surgiendo a medida que el cliente se da cuenta de que necesita algo nuevo, y en consecuencia el proyecto se ve afectado; o simplemente el cliente quiere sacar al mercado un nuevo concepto y desarrollarlo de forma continua a posteriori.

Es así como aparecen las llamadas metodologías ágiles, las cuales consideran que “el factor más importante en el desarrollo de software no son las técnicas y las herramientas que emplean los programadores, sino la calidad de los programadores” (Robert L. Class).

Las metodologías ágiles más populares

Las más conocidas son SCRUM y XP (Extreme Programming). Ambas están encaminadas a la programación de software, la comunicación clara, y un equipo de trabajo que desarrolle el software con el menor coste y defectos posibles, así como con la mayor productividad y retorno de la inversión. Además, en cualquiera de las dos el cliente adquiere más control sobre el trabajo y un mayor protagonismo durante el desarrollo de los productos. Sin embargo, no valen para lo mismo.

SCRUM es una metodología de Gestión, que se fundamenta en la entrega temprana de resultados tangibles y la adaptación continua mediante la iteración y las revisiones a las que acude todo el equipo de desarrollo. Se establecen reuniones diarias con el fin de exponer el trabajo terminado y el pendiente, así como los impedimentos que hayan podido surgir en la jornada anterior. Se llevan a cabo también reuniones pre y post proyecto para establecer una forma de trabajo y revisarla una vez haya concluido el proyecto, así como para crear un plan de mejoras en base a los resultados obtenidos. Por otro lado, el cliente debe solicitar los cambios a través de reuniones.

En cambio, XP es una metodología de Desarrollo que se preocupa por el aprendizaje de los desarrolladores, y promueve la simplicidad en el diseño del proyecto así como las iteraciones continuas entre el equipo de trabajo y el cliente y la reutilización del código desarrollado. Asimismo, acepta que los cambios sobre la marcha forman parte del proceso natural siendo incluso deseables para el desarrollo de los proyectos.

Algunos inconvenientes

No obstante, y como dice el refrán, “no es oro todo lo que reluce”. Estos métodos de trabajo también tienen sus inconvenientes, entre los que destacan los siguientes:

  • La mejora continua nos obliga a compartir en la jornada laboral varios proyectos al mismo tiempo (multitarea), lo que supone una reducción en la productividad final o, lo que es lo mismo, un déficit en esta forma de entender el desarrollo del software.
  • Llevar a cabo reuniones diarias, como se plantea en SCRUM, es una inversión humana que en algunos momentos es muy difícil de realizar, sacrificando así la tarea de planificación, importante para ver el proyecto en su conjunto.
  • Es esencial que el equipo de trabajo se encuentre físicamente en la misma área para poder maximizar la comunicación entre ellos, y que en dicho equipo la carga de trabajo esté balanceada para que una tarea no dependa exclusivamente de una persona en concreto. Así se consigue minimizar el riesgo de que el proyecto se retrase por si este miembro cae enfermo o está saturado de trabajo. Esto mismo es aplicable cuando se depende de otros equipos de trabajo.
  • El desconocimiento de una herramienta por no haberla utilizado con anterioridad o por tener nociones básicas aumenta la incertidumbre y el riesgo en la creación de un código simple, adecuado y en la mayor brevedad posible.
  • La existencia de plazos de entrega o ajustarse a un coste de proyecto ya definido hace que, a veces, por apuro o presión, se vayan dejando para el final tareas que no afectan al funcionamiento del proyecto, pero que, en definitiva, deben retomarse en algún momento. Este es otro factor que incrementa la incertidumbre.

Conclusión

Las dos metodologías expuestas anteriormente no son incompatibles entre sí, de hecho son complementarias y, por separado, no garantizarían el éxito de un proyecto.

No existen métodos, prácticas o modelos de trabajo que nos ayuden con garantía durante mucho tiempo. La clave está en actualizar el conocimiento como base para una gestión basada más en la experiencia y el criterio del programador que en los conocimientos teóricos o la aplicación de procesos establecidos.

El objetivo es llegar a ser capaces de responder a escenarios de trabajo cambiantes o con una gran incertidumbre para proporcionar al cliente un producto que pueda ser puesto en funcionamiento en el menor tiempo posible, y que seamos capaces de mejorarlo continuamente reduciendo el margen de error y los riesgos del proyecto.

The following two tabs change content below.

Fausto López

Soy una persona alegre, positiva, en formación continua, responsable e implicado en todo lo que hago. En lo personal soy muy familiar, me encanta bailar, ir al cine y viajar.

Latest posts by Fausto López (see all)

Compartir: