Aplicación de Metodologías de Desarrollo de Software Ágiles en Sistemas MES

Comparte

Aplicación de Metodologías de Desarrollo de Software Ágiles en Sistemas MES

Tradicionalmente, el mundo del desarrollo de software está comprendido por un sin número de paradigmas, metodologías y conceptos enfocados en construir productos de calidad que estén dentro de las tres típicas restricciones mencionadas en las principales guías de gestión de proyectos: alcance, tiempo y costo.

Los proyectos de desarrollo de software se caracterizan por una alta incertidumbre, en donde casi nunca se cumplen las proyecciones de cronograma, incluso al haber hecho una adecuada fase de análisis del caso de negocio. Esto puede deberse a que los aplicativos construidos a menudo se basan en la necesidad de un cliente que no sabe claramente lo que quiere, o que peor aún, sabe lo que quiere pero esto no es lo que el negocio, el proceso o sus mismos compañeros necesitan.

Dependiendo de la naturaleza del proyecto, éste se puede ejecutar bajo un enfoque tradicional de gestión de proyectos catalogado como “esquema en cascada” pasando por todas las fases del desarrollo de software (análisis, diseño, desarrollo, pruebas e implementación) para obtener un entregable, o se puede ejecutar bajo un enfoque ágil, el cual procura tener entregables incrementales de valor al cliente en lapsos cortos de tiempo.

Proyectos de sistemas MES

Volviendo al tema de las incertidumbres, todas estas variables y situaciones nombradas anteriormente se materializan también en los proyectos de desarrollo de software que buscan construir sistemas para apoyar el proceso de transformación de materias primas en productos terminados, es decir, los llamados Sistemas MES (Manufacturing Execution System). Fabricantes mundialmente conocidos enfocan sus productos en piezas de software preestablecidas que son transformadas en aplicativos MES funcionales a través de complejas relaciones e interacciones entre ellas.

En proyectos de sistemas MES, los gerentes se enfrentan a riesgos de gestión para cumplir con la demanda de resultados visibles y utilizables en corto tiempo, basados en la premisa del uso de componentes de otros aplicativos (reusabilidad), así como en el uso del Know-How de la compañía. Es en este punto es donde adquiere relevancia el concepto de desarrollo ágil de software para poder cumplir con la premisa de valor “a tiempo”.

La adopción de metodologías ágiles permite fragmentar el trabajo global en pequeños conjuntos de tareas, los cuales se ejecutan a través de sprints que generan un entregable útil para los usuarios finales, y que van complementando las entregas anteriores con base en un enfoque iterativo y con retroalimentación continua.

Al aplicar un paradigma ágil, no se espera a que el aplicativo esté 100% funcional. Se entregan módulos que van siendo sometidos a interacción con el usuario final y en paralelo se ajustan según los requerimientos, con el fin de disminuir riesgos de mal funcionamiento. Esto último cobra mucha más importancia en el desarrollo de sistemas MES, ya que el mal funcionamiento de estos aplicativos puede detener plantas de producción que pueden significar miles (o millones) de dólares en pérdidas para los clientes. Es por eso que, al utilizar un enfoque ágil, se reduce el riesgo de aparición de este tipo de situaciones ya que los artefactos de software se exponen a la validación oportuna del cliente, brindando la oportunidad de corregir a tiempo los hallazgos que tengan lugar.

Como todo, el aplicar metodologías ágiles en proyectos MES no es una camisa de fuerza. Nuevamente, esto depende de la naturaleza del proyecto. Habrá iniciativas en donde al cliente no le genere valor tener entregables incrementales, sino que prefiera tener un gran “big bang” al final del proyecto. Sin embargo, la gran mayoría de estos proyectos se agilizan por el buen control del riesgo y el manejo de las expectativas del cliente. Todo depende, al final de cuentas, de las habilidades del equipo de trabajo, en donde el gerente de proyectos debe conocer al detalle la necesidad real del cliente, y el equipo de desarrollo debe estar comprometido con la entrega oportuna y con calidad de aplicativos de valor.