viernes, junio 01, 2012

Modelar, prototipar, ejecutar y monitorear procesos de negocios con GXflow y GeneXus Evolution 2


Motivaciones

En general cuando estamos comenzando a embarcarnos en un proyecto nuevo cualquiera sea deberíamos preguntarnos por qué lo estamos haciendo cual es la motivación. Cuando hablamos de flujos de trabajo dentro de una empresa seguramente que lo primero que queremos es optimizar la forma en la cual trabajamos.

Entonces, debemos preguntarnos por qué es importante automatizar los procesos de la empresa.

Para hacer este ejercicio mental debemos enfocarnos en cómo estamos haciendo las cosas hoy de forma de comprender como ocurren los diferentes procesos en nuestras empresas para cumplir determinados objetivos. El hecho de enfocarnos en los procesos nos dará una mejor visibilidad de los mismos y podremos identificar posibles mejoras además de comprender el alcance de los mismos para evaluar si es posible automatizarlos. Con esto lograremos formalizar dichos procesos más allá del conocimiento que en general esta distribuido entre los diferentes actores de un proceso, de esta forma vamos a lograr reproducir la película desde el inicio hasta el fin viendo claramente cuales son las tareas y quienes deben realizarlas. Teniendo formalizados y automatizados los procesos de la empresa vamos a lograr que las cosas se realicen según lo pautado logrando la consistencia que nos va a permitir ahorrar tiempos muertos que muchas veces se da cuando hay que realizar el pasaje de una tarea a otra etapa pues son las personas quienes tienen que decidir como sigue el trámite en curso.

Desde el punto de vista de la empresa u organización podemos afirmar que seguro vamos a mejorar un indicador que a lo mejor suena algo intangible como es el stress de las personas que participan de los procesos. El hecho de tener bien definido como se deben hacer las cosas y que cada uno tiene claro el rol que debe cumplir pero además conoce como se desarrolla todo mejora enormemente la comunicación entre los actores y agilita mucho el pasaje de información en las distintas etapas. Algo que ayuda mucho en todo esto es tener la posibilidad en todo momento de saber en qué estado esta un proceso y quienes tienen las tareas en un momento dato. Todo esto redunda en un aumento de la productividad dado que se ahorra mucho tiempo de gestión y operativa en determinar como se debe continuar con determinado proceso y obviamente esto trae como consecuencia un ahorro en dinero. Otro tema importante es que se gana en control pues en cualquier momento podemos saber el status de los procesos y actuar proactivamente por ejemplo para delegar trabajo o reasignar tareas que aún no se han procesado.

El hecho de tener claro como están definidas todas las etapas de un proceso nos permite evaluar el impacto de cualquier cambio que se haga en el mismo ya sea un cambio para optimizar o un cambio obligado porque hay que agregar nuevas tareas por cambios en regulaciones. El hecho de poder medir este riesgo ante los cambios le da a la empresa mayor flexibilidad y de esta forma puede ir haciendo evolucionar sus procesos a los cambios que le dicten los mercados con los cuales interactúa. 

Desde el punto de vista del desarrollo la ganancia viene por el lado de que vamos a “declarar” más y programar menos, vamos a separar toda la lógica del control de flujos de nuestra programación lo cual hará que sea mucho más entendible lo que hacemos y por lo tanto mucho más fácil de mantener. Las reglas del flujo de negocio queda plasmadas en un “dibujo” que cualquier persona puede entender lo cual hace que también sea mucho más fácil incorporar personas nuevas al equipo de desarrollo dado que se facilita la tarea de pasaje de conocimiento. Ayuda mucho en la documentación de lo qué hace el sistema y además nos ayuda en la reutilización de programas, dado que programas que usamos desde otras opciones del sistema también pueden ser usados embebidos en los procesos de negocio.

BPM


Una vez que tenemos claro cuales son las motivaciones para formalizar y automatizar los flujos de trabajo la siguiente pregunta que debemos responder es qué debemos hacer para llevar esto adelante.

Uno de los temas importantes a tener en cuenta es qué metodología vamos a usar para llevar adelante el proyecto de formalización y automatización de los procesos de negocio. Para esto recomiendo el ciclo de vida que propone la disciplina Business Process Management (BPM).

Hay que tener claro que cuando hablamos de BPM no estamos hablando sólo de tecnología, sino de una forma de encarar los proyectos donde el foco se pone en los procesos. Donde se propone un ciclo de mejora continua el cual propone a través del modelado de las actividades y procesos lograr un mejor entendimiento del negocio, con lo cual muchas veces se presenta la oportunidad de mejorarlos. Luego la etapa de automatización de los procesos la cual reduce errores, asegurando que los mismos se comporten siempre de la misma manera y dando elementos que permitan visualizar el estado de los mismos. Una vez que tenemos procesos automatizados la etapa de administración de los procesos nos permite asegurarnos de que los mismos estén ejecutándose eficientemente y obtener información que luego puede ser usada para mejorarlos. Es a través de la información que se obtiene de la ejecución diaria de los procesos que se puede identificar posibles ineficiencias en los mismos y de esta forma optimizarlos. De esta forma volvemos al inicio de este ciclo donde cambiaremos nuestros modelos en procura de mejorar los procesos.

Para ayudarnos a encarar esto contamos con un conjunto de herramientas dentro de la familia de productos GeneXus.

Por un lado tenemos el modelador de procesos Business Process Modeler integrado dentro del ambiente de desarrollo de GeneXus. Este modelador nos ofrece la posibilidad de dibujar el flujo de trabajo de una manera gráfica que nos acerca al lenguaje de los usuarios del negocio y así poder entender mejor su realidad. Además este modelador esta basado en el estándar de notación gráfica BPMN y ofrece la posibilidad de exportar o importar diagramas de otras herramientas a través de XPDL

Tenemos a GeneXus en sí mismo como la herramienta que nos permite automatizar el desarrollo de nuestras aplicaciones BPM. Para quienes no conocen GeneXus es recomendable que vean una presentación enfocada en esta herramienta para comprender el alcance de la Suite.

Para la gestión y monitoreo de los procesos contamos con el GXflow Process Manager y el Inbox. Para el análisis y optimización de estos procesos contamos con GXplorer que nos permite explotar la información estadísticas generada por nuestras aplicaciones y nuestros datos históricos de cómo se dio la ejecución de los procesos.

Por último la capacidad de integrar todo esto a través de un portal haciendo uso de  GXportal para la construcción de portales.

Lo cual nos da una plataforma ágil, flexible y robusta para el desarrollo de aplicaciones basadas en BPM.

Les dejo un video que muestra casi todo el ciclo, desde el modelado , pasando por la etapa de desarrollo y prototipación y finalmente por la ejecución y monitoreo. Todo esto con la última versión de GeneXus y GXflow que es la X Evolution 2. (Les recomiendo verlo en modo full screen)

2 comentarios:

Pablo Dante dijo...

Hola buen día.
Le comento en pocas palabra...
Estoy intentando "reactivar"; por así decirlo, una KB que fue desarrollada en la Vers. 8 de Genxus y con GXFlow 7.5. Por error alguien abrió el PM en la Versión 8.5 de GXFlow. Y eso rompe por decirlo de una manera el modelo. Que si bien está funcionando en Producción no se puede mejorar por ese problema.
Yo estoy tratando, (en Prototipo), en una KB aparte hacer que funcione pero con GXFLOW 8.5.
Y si es posible necesitaría una mano o de que manera puedo resolverlo.
Eso es todo...
Muchas gracias por su tiempo.
Un saludo cordial.

Eugenio Garcia dijo...

Hola Pablo,
Por lo que comentas si no tienes un respaldo del modelo en versión 7.5 la mejor opción es migrar a la versión 8.5 para poder mantener el mismo proceso que ya tienes impactado en la base de datos de GXflow.
Lo mejor es que te contactes con el equipo de soporte para que te orienten o ayuden en los problemas que puedas tener al migrar de versión.

Saludos.