Patrones de Proceso BPM

22
“PATRONES DE PROCESO BPM” Traducción: Florencia Agüero Derechos de autor: Dan Atwood

description

 

Transcript of Patrones de Proceso BPM

Page 1: Patrones de Proceso BPM

“PATRONES DE PROCESO BPM”

Traducción: Florencia Agüero

Derechos de autor: Dan Atwood

Page 2: Patrones de Proceso BPM

Patrones de Proceso BPM: Diseño repetible para Modelos de Procesos BPM.

Introducción

El modelado de procesos de negocio riguroso y hábil es comúnmente pasado por alto, pero es el aspecto clave para desarrollar con éxito las soluciones de BPM. Antes de BPM, los procesos a veces sirven como especificaciones que en algunas ocasiones son utilizadas para desarrollar soluciones de software. Los procesos de negocios juegan un papel mucho más importante en BPM. Hoy en día  proveen:

Soluciones: los procesos BPM ahora sirven como ambos, la memoria y el código fuente. Los procesos modelados se convierten en las soluciones reales desplegadas. A medida que se realizan cambios en los procesos, los cambios en el negocio, se mantendrán automáticamente en sincronía.

Entendimiento común: procesos proveen una herramienta de comunicación simple entre los usuarios finales, analistas de negocios, desarrolladores y gestión. Los diferentes grupos ahora tienen un papel activo y un desarrollo “comprar en” y la propiedad de la solución.

Los analistas de negocio y los desarrolladores nuevos en BPM a veces luchan con el arte de descubrir, modelar, comprender y explicar los procesos de negocio. Los patrones de procesos BPM proporcionan un tiempo de prueba y simple técnica para acortar la curva de aprendizaje y mejorar la productividad y la calidad de los procesos diseñados.

Un enfoque práctico de proceso de diseño

Uno de los problemas que los patrones de proceso tienen es que se confunden con otros patrones de software. El desarrollo de software orientado a objetos (OO) se benefició en gran medida en 1995 a partir de los 23 patrones definidos en el libro seminal de Gamma "Patrones de diseño: elementos reutilizables de software orientado a objetos". Cada uno de los patrones que definen OO vino con una explicación clara de la intención del patrón, la motivación y los usos conocidos. Los desarrolladores de software OO ahora podían pararse en los hombros de gigantes.

Desde entonces, los desarrolladores de software y los arquitectos se han beneficiado de otros tipos de patrones, como la mensajería de software, la interfaz gráfica de usuario (GUI) de diseño y de arquitectura de aplicaciones. Esta rica historia es una buena y mala noticia para la adopción de patrones de diseño de proceso. Al igual que con la mayoría de las buenas ideas, la mala noticia es que en los últimos 10 años, los patrones han sido a veces en términos exagerados como una cura para todo. El miedo se arrastró adentro porque OO, la mensajería de

Page 3: Patrones de Proceso BPM

software y los patrones de arquitectura de aplicación son esotéricos e intimidantes para aquellos de nosotros que no se han versado en estos campos.

La buena noticia es que 10 años de experiencia han demostrado que no puede haber soluciones prácticas específicas de contexto de patrones a recurrentes problemas de diseño del mundo real. A diferencia de otras tecnologías, los patrones de diseño son relativamente fáciles de entender, aprender y aplicar de inmediato.

Procesos de Diseño de Patrones

Los patrones de procesos son ejemplos que muestran cómo conectar actividades juntas para resolver un problema común. Los procesos son como autopistas. Como hemos aprendido a conducir, finalmente nos acostumbramos al tiempo de encendido / apagado rampas de autopistas, a la señalización, a los puentes y a las curvas. Cada país, estado y ciudad asegura que sus ingenieros sigan y prueben especificaciones. Debido a la construcción de carreteras es bastante consistente de ciudad en ciudad, las autopistas se construyen más rápido por menos costo. Los accidentes de tráfico se reducen porque los conductores rara vez se sorprenden por los anchos no estándares de carril, los divisores de tráfico, los radios de giro y las rampas. Los patrones de diseño de proceso son las especificaciones para las rampas, los puentes y las carreteras de encendido / apagado de los procesos.

Al igual que el enfoque adoptado por el mundo OO, la identificación de patrones de diseño de procesos y la documentación estaba bien servido por el artículo "Los patrones de flujo de trabajo" de van der Aalsts. Poco a poco la construcción de la complejidad, los patrones de procesos se dividen en seis categorías:

Page 4: Patrones de Proceso BPM

Control básico. Ramificación avanzada. Estructural. Varias instancias. Estado basado. Cancelación.

Controles básicos de los patrones

Patrón de Secuencia.

Este es el más común y obvio de todos los patrones. Cuando los analistas de negocios comienzan a modelar la forma en que funcionan las cosas hoy en día (Proceso "As-Is") por lo general la mayor parte del proceso se parece a actividades  ensartadas en una serie. Las instancias (artículos individuales de trabajo que fluyen a través del proceso) paso a través de las actividades  una por una. Aunque la mayoría de los procesos contienen al menos un patrón de secuencia, una práctica recomendada durante el recorrido de la sesión del proceso es cuestionar el uso de este patrón antes de que se convierta la producción BPM (debería ser).

1. Si las actividades se realizan una después de la otra, la cantidad de tiempo que se necesita para llevar a cabo las tres actividades  puede ser bastante largo. Las actividades  pueden ser capaces de hacer simultáneamente en paralelo (discutido más adelante en el patrón División Paralela).2. Cada actividad puede tener otras transiciones (líneas) que sale de ellos para manejar diferentes reglas de negocio. Por ejemplo, durante el proceso de caminar a través de preguntar, "¿qué pasa si verificación de crédito del cliente falla?"3. El tercera pregunta que debe plantearse cuando vea este patrón es "¿Todos los gerentes de cuenta realmente necesitan ver todos los pedidos para ser revisados?". La razón de que esto es un tema importante de discusión durante un paseo de proceso se debe a que la mayoría de las implementaciones de BPM utilizan una cola compartida por defecto. Todos los gestores de cuentas serían de hecho ver todos

Page 5: Patrones de Proceso BPM

los pedidos a menos que el administrador de cuentas específico asignado a la orden fue designada aguas arriba de la actividad de Revisión del Pedido.

Patrón de Elección Exclusiva.

Todas las actividades en el proceso deben ser examinadas para ver si puede haber más de una transición de abandono. Como por ejemplo, las hojas de una actividad, que normalmente sale a través de una y sólo una transición de salir de la actividad.

La Notación de Modelado de Procesos de Negocios (BPMN) estándar que se muestra aquí utiliza la actividad condicional (diamante con una "X") para representar el principio del patrón de Elección Exclusiva.

Page 6: Patrones de Proceso BPM

Patrón de Combinación Simple.

Page 7: Patrones de Proceso BPM

El poder de los patrones en un proceso se vuelve más claro cuando un patrón se combina con otros para formar procesos. La Combinación Simple es uno de los muchos ejemplos de esto.

Cada vez que un patrón exclusivo de elección se produce, en algún lugar de un proceso habrá casi siempre un patrón de combinación simple. Éste combina varias transiciones de nuevo en una sola actividad.

División Paralela y Patrón de Sincronización.

Si partes del proceso actual "As-Is" parecen un patrón de secuencia, evaluar el proceso para ver si se puede mejorar utilizando una división paralela y el patrón de sincronización.

La división paralela y el patrón de sincronización aceleran el proceso por el que tiene la instancia de viajar todos los caminos paralelos a través de él al mismo tiempo. El orden de las actividades de ejecución no es importante en este patrón.

Ramificación avanzada y Patrón de Sincronización.

Patrones de Elección Múltiple y Sincronización Combinada

Las transiciones condicionales juegan un rol importante e interesante en el Patrón de División Paralela.

Page 8: Patrones de Proceso BPM

La transición media de ir al descubre la actividad de crédito se cambió a una transición condicional. Ahora la instancia fluirá a la actividad “Comprobar Crédito” durante el tiempo de ejecución sólo si el orden es una orden de crédito. Dado que las otras dos transiciones “Revisar Orden” y “Comprobar Inventario” siguen siendo incondicionales, estas dos actividades siempre serán ejecutadas.

Hay 3 transiciones que llegan a la actividad “Sincronizar” en la derecha. El comportamiento por defecto es que la instancia no continúa más allá de la actividad Sincronizar hasta que alcance todas las transiciones válidas que dejan la actividad dividida. Este punto (diamante con un "-") de clasificación se denomina actividad de unión o empalme. Una vez más, supongamos que la orden no se está prestando el uso del crédito. Durante el tiempo de ejecución, el servidor BPM detecta automáticamente esto y sabe que tiene que esperar sólo 2 de las 3 transiciones que llegan a la actividad de sincronización (las transiciones provenientes del “Comprobar Inventario” y “Calcular Carga de Envío”) antes de continuar. Si la orden se está pagando por el crédito, la actividad de sincronización esperará automáticamente para las tres transiciones en tiempo de ejecución.

Discriminador múltiple y N de M se unen a Patrones

El patrón de división y sincronización en paralelo se puede ampliar para ofrecer cierta flexibilidad en cuanto a las transiciones mariscales en una actividad llamada “Gateway Complex” (diamante con un "*").

Page 9: Patrones de Proceso BPM

Si la verificación de crédito de una orden de falla, probablemente no hay necesidad de esperar a las transiciones procedentes de cualquiera de las actividades “Calcular Cargo de Envío”, “Comprobar Inventario”. Si la verificación de crédito falla, un indicador se puede establecer en la Comprobación de ña actividad de crédito de modo que una vez que alcanza la actividad Sincronizar la instancia se libera inmediatamente. Si esto ocurre, el BPM Server quita automáticamente los casos que quedan atrapados en el “Comprobar Inventario” y “Calcular Envío” y la instancia inmediatamente continúa a través del resto del proceso.

Patrón de Combinación Múltiple

Cualquier rama que salga de la actividad de división (diamante con un "+") en un patrón de división y sincronización paralela se puede fusionar de nuevo en una sola transición antes de que llegue a unirse la actividad.

Page 10: Patrones de Proceso BPM

La actividad “Calcular Cargo de Envío” sirve como la actividad de combinación única, y todas las transiciones van a través de esta actividad antes de continuar con la actividad de sincronización.

(Imagen)

Patrones Estructurales:

Patrones de Ciclos Arbitrarios.

Al descubrir un proceso "As-Is", a veces escuchamos "Actualmente, nosotros, estamos en condiciones de pasar de una actividad a cualquier otra actividad en el proceso". Es tentador para llevar adelante el diseño "Should-Be". Los usuarios finales a veces se dan cuenta que van a seguir trabajando. El trabajo realizado contra la corriente en el proceso no tiene que ser hecho particularmente bien o completamente comprobado, ya que puede siempre ser "arreglado" más adelante mediante la devolución de la instancia de vuelta en sentido ascendente.

Page 11: Patrones de Proceso BPM

Las transiciones que se dirigieron de nuevo aguas arriba, deben ser examinadas cuidadosamente debido a que:

- Los casos tardan más tiempo para completar el proceso (las posibilidades de simplificación y mejora del proceso se reducen).

- Esto podría indicar un problema upstream de raíz que debe resolverse.

- Esto desalienta la ejecución de mejores prácticas consistentes y organizadas de los procesos que BPM pretende habilitar. Este patrón de proceso es más democrático que un proceso.

Patrón de Colaboración

A veces hay razones de negocio válidas para enviar la instancia de la copia de seguridad corriente. Los patrones colaborativos son bastante comunes en los procesos BPM.

Aquí la instancia continua en un bucle hasta que el agente adquisitivo decide que las negociaciones han terminado, ya sea porque tienen el precio más bajo posible o porque ellos decidieron comprarle a otro licitador.

Patrón de terminación Implícita

Page 12: Patrones de Proceso BPM

Esta actividad final o de terminación es generalmente vista como un único embudo fuera del proceso. La actividad de terminación puede luego ser usada como el punto de combinación (Imagen) para muchas ramas de transición en el proceso.

El patrón de “Terminación Implícita” provee una alternativa para forzar transiciones directamente a la actividad de terminación/final. Esto, algunas veces, es necesario porque un proceso puede ser que necesite alcanzar la actividad final para muchas actividades en un proceso.

El ícono “conector” (círculo con una flecha) mostrado en (Imagen) representa la actividad final y previene el desorden antiestético de dibujar a través de todo el ancho del proceso,

Patrón de Múltiples Instancias

Todos los patrones discutidos a este punto tratan con una sola instancia a lo largo de la vida de un proceso. Supóngase que cada instancia del proceso que maneja un lote de seguros reclama. Algunas veces, las instancias de los lotes contienen 40 reclamos y, a veces, contienen 4000.

Page 13: Patrones de Proceso BPM

Patrones de Múltiples Instancias sin Sincronización

Este patrón toma un por lotes y procesa cada ítem individualmente sin preocuparse acerca de sincronizarlos de vuelta en el proceso. Es usualmente modelado como se muestra en la (Imagen).

Por ejemplo, dependiendo del número de reclamos en un trabajo, la actividad de división-n (diamante con “++”) analiza cada reclamo y cada reclamo es individualmente enviado sin sincronizar a la actividad del subproceso “Creación del Proceso”. Mientras el reclamo es enviado al subproceso, el contexto en el proceso “padre” mostrado en la imagen, permanece en el trabajo de lote original.

Para cada reclamo en el trabajo de lote, una nueva instancia es creada en el subproceso “Proceso de Reclamos Individuales”.

Aunque hay más que solo una transición dibujada saliendo de la actividad de división-n, el poder de este patrón reside en su habilidad dinámica de generar nuevas instancias basadas en algo conocido solo por el tiempo de ejecución (en este caso, el número de reclamos de seguro en un trabajo de lote).

Patrones de Instancias Múltiples y/o Conocimiento de Ejecución

Los procesos algunas veces necesitan un feedback (evaluación) de las instancias generadas por la actividad de división-n. En el ejemplo de la imagen, un agente de compras decide por el tiempo de ejecución cuántos proveedores serán permitidos ofertar. Este número es usado en la actividad de división-n para generar ese número de instancias en la actividad del subproceso sincronizado “Solicitud de Cotización del Proveedor”.

Como cada oferta del proveedor en el subproceso “niño”, la información de oferta es llevada de vuelta al proceso “padre”.

Page 14: Patrones de Proceso BPM

Cuando el mismo número de ofertas alcanzan la actividad de unión que fueron generados en el upstream de la actividad de división-n, la instancia continúa. Usa este patrón cuando haya una necesidad de retornar la información de vuelta la subproceso. En este ejemplo las ofertas de los proveedores individuales, son comparados y el contrato es otorgado al licitador más bajo en la actividad “Otorgar Contrato al Licitador más bajo”.

Patrones Basados en Estado

Los patrones basados en estado muestran como recibir notificaciones de eventos exteriores del proceso y cómo establecer el “Service Level Agreements” (SLA) para actividades en un proceso.

Patrón de Elección Diferida

Los procesos, algunas veces, necesitan esperar un evento exterior del proceso que ocurra antes de continuar. Estos eventos se disparan de:

Notificaciones de otros procesos que se ejecutan corrientemente Notificaciones de aplicaciones exteriores o páginas web

Esta fricción construida en el proceso es manejada usando una actividad llamada “Esperar Notificación” (sobre insertándose en una caja).

Page 15: Patrones de Proceso BPM

En el ejemplo mostrado en la imagen, la instancia en el proceso permanecerá en la actividad “Esperar a Proveedor Ok” hasta que haya sido notificada desde fuera del proceso. El evento causando la notificación envía información, en este ejemplo para dejar que el proceso sepa si el producto estaba en stock. Basado en esto, la instancia viajará a través de cualquiera de las dos: la transición condicional (Producto sin Stock) o la transición incondicional.

Patrón Hito

Algunas veces, una transición debida-due (transición con un reloj encima de ella) puede ayudar a mantener una instancia de proceso moviéndose. Piensa como si un Patrón Hito fuera un camino para establecer un SLA para una actividad individual. Si una instancia se sienta demasiado en una actividad, es automáticamente trasladada a través de la transición debida-due a una actividad siguiente.

Page 16: Patrones de Proceso BPM

En la imagen, el agente de compras otorgará el contrato al licitador más bajo si cualquiera de estas dos cosas ocurren:

1. Si no todos los proveedores han ubicado sus ofertas, la transición debida-due deberá esperar hasta después de una semana

2. Si el mismo número de ofertas alcanzan la actividad de unión que es generada en el upstream de la actividad de división-n.

Las transiciones debidas-due son a veces usadas cuando las actividades del subproceso de invocación o la actividad “Esperar Notificación” pueden causar cuellos de botella en los procesos.

Patrones de Cancelación

Una de las cosas rápidamente descubiertas cuando se entrega una solución BPM es la necesidad de cancelar instancias en actividades individuales y el proceso como un todo.

Patrón de cancelación de actividades

Las actividades individuales pueden crear cuellos de botella en el proceso.

Esto puede causar un problema en un proceso si la actividad causando el cuello de botella no puede ser accedida por los participantes de los procesos. En el ejemplo

Page 17: Patrones de Proceso BPM

de la imagen, “Recibir Notificación de Estado” no tiene interacción humana y está esperando a una notificación externa que quizás nunca llegue.

Añadir el Discriminador y el Patrón de Union N – fuera de – M, ayuda a resolver este problema para actividades individuales. La etapa superior dentro de la unión/división en este ejemplo, tiene la transición con una larga ejecución de la actividad sin interacción humana. La transición más baja fue añadida para:

1. Darle al empleado la chance de mirar las ordenes que están pendientes en la etapa superior

2. Permitirle al empleado la chance de cancelar cualquier orden que este pendiente en la etapa superior

Una vez que el empleado cancela una instancia, esta alcanza la actividad “Unión Compleja de Entrada”. La instancia es removida de la actividad “Recibir Notificación de Estado” y continua con el resto del proceso.

Patrón de Caso de Cancelación

Los clientes pueden llamar a cualquier hora y cancelar la orden entera no importa dónde la instancia esté ubicada en el proceso. Una manera incómoda de manejar esto es tener transiciones de cancelación en cada actividad del proceso hasta el Final.

Page 18: Patrones de Proceso BPM

En lugar de considerar el patrón que se muestra en la imagen. Aquí la actividad “Cancelación al Cliente” no aparece como parte del flujo del proceso. El ícono del rayo dentro de la actividad indica que la instancia de cualquier actividad del proceso puede ser interrumpida y dirigir inmediatamente esta actividad. Las notificaciones causan instancias en cualquier parte del proceso (Revisión del Pedido, Consultar el Inventario o Enviar Orden) para moverse inmediatamente y automáticamente a la actividad de “Cancelación al Cliente”.Las transiciones no necesitan ser dibujadas en este tipo de actividad.

Resumen Como las palabras se combinan para formar oraciones, los patrones de diseño de proceso se combinan para formar procesos completos. Estos patrones ilustran algunas de las mejores ideas sobre los procesos de negocio de modelado hoy. No importa que herramienta BPM o diagrama estándar se use, son soluciones universalmente aplicables a los problemas de los procesos complejos con los que los proyectos de BPM se encuentran a diario. Los nuevos analistas y desarrolladores de negocio de BPM son llevados a la velocidad más rápida, y una vez que los patrones se sientan cómodos con el equipo, se convierten en parte del vocabulario y la experiencia compartida. A los usuarios finales y los administradores les resulta más fácil de entender los procesos cuando se aplican los procesos de patrones de modelado de procesos consistentes y elegantes. Los patrones de procesos de negocios son una manera práctica, con un enfoque de tiempo para la traducción de especificaciones de los en soluciones BPM pendientes.

Apéndice: Resumen de los Patrones de Proceso BPM

Nombre Patrón DescripciónSecuencia Actividades ejecutadas una después de la otra en una

serie.

Elección ExclusivaDos o más transiciones representando diferentes reglas de negocio dejando una sola actividad condicional. La instancia sale a través de solo una de las transiciones.

Combinación Simple Combina muchas transiciones de vuelta en una solo actividad.

División Paralela & Sincronización

Acelera el proceso por el que tiene la instancia de viajar todos los caminos paralelos a través de las ramas en el patrón simultáneamente.

Elección Múltiple & Combinación de Sincronización

La instancia fluye desde todas las transiciones incondicionales divididas. La instancia también fluye a través de cualquier transición condicional que evalúe la “verdad” durante el tiempo de ejecución.

Discriminador & Unión N- fuera de - M

La instancia fluye desde las transiciones divididas. La instancia continúa cuando un cierto número alcanza la entrada compleja.

Combinación Múltiple Cualquier rama saliendo de la actividad de división puede

Page 19: Patrones de Proceso BPM

se combinada de vuelta en una sola transición antes de que alcance la actividad de unión.

Colaboración Una instancia continua en un bucle hasta que la transición condicional evalúa a algo como “falso”.

Terminación Implícita Las instancias pueden alcanzar la actividad final desde varias locaciones en un proceso.

Instancias Múltiples sin Sincronización

Genera dinámicamente nuevas instancias en un subproceso “niño” asíncrono.

Múltiples Instancias con Diseño y/o

Conocimiento de Tiempo de Ejecución

Genera dinámicamente nuevas instancias en un subproceso “niño” de forma sincrónica. El proceso “padre” recibe feedback de todos los procesos “niños”.

Elección Diferida Espera un evento externo para continuar.Hito Una instancia viaja a través de una transición debida-due

después de un tiempo especificado. Esto puede ayudar a prevenir cuellos de botella en un proceso.

Cancelar Actividad Una instancia atorada en una larga ejecución de una actividad es cancelada de la actividad para que pueda continuar con la siguiente actividad en el proceso.

Cancelar Caso Una instancia es cancelada del proceso entero no importa dónde esté en el proceso