Process Is The Main Thing

@ Anatoly Belaychuk’s BPM Blog

On-the-Fly Process Modification

Another frequently asked question from a forum.

Question - When a business process template is modified (activity added/removed), what happens with process instances started by this template (previous version). What happens with analytics?

Answer - Most BPMS will finish running instances by following old template and will create new instances based on new teplate. It’s acceptable only if the template modification was planned. If - like it happens in most cases - the process became stuck because the template doesn’t have a desired gateway or a flow then you have nothing to do but abort the process instance and start it again by new template making the analytics inconsitent.

Yet there are systems allowing process scheme modification “on the fly”. Recommended reading:

  • article by Glen Smith from Appian explains why this functionality is important from methodology perspective. You can launch the process into operations faster if you don’t have to discover details of all possible exceptions.
  • Keith Svenson from Fujitsu notes that implementing process modification on the fly is hard to implement in a system that uses BPEL for excution. Fujtsu Interstage BPM lets you edit the scheme of a running instance the same way you edit a template; you can save the new instance scheme as a new version of the template if you wish.

Please refer to BPTrends report for the information about specific BPMS.

It’s hard to implement on the fly modification if a business process editor (modeler) is implemented as a desktop application which is the case for most systems. If a process instance stuck one should be able to correct scheme online promptly. Hence the modeler must be implemented as a thin client. Fujitsu Interstage for example has both desctop and online (java applet) modelers.

Oracle BPMS (aka BEA AquaLogic aka Fuego) took another way. The modeler pallette of this system has a special “magic” activity which can get control from any activity and/or pass it to any other acitivity. It solves the major part of the problem - absence of a desired flow on a scheme.

But you shouldn’t rely on a tool only - the process sheme should be designed the right way.

Let’s consider a long-term contract with a customer for example. We are going to deliver goods, obtain money and also renew contract’s terms and re-negotiate its conditions many times during several years. If we tried to implement it technically by a single process then for sure its scheme will be changed many times. Better solution is to create a long-living yet very simple process on the top level - a kind of a state machine keeping the state of our relations with the customer: “contract is beeing agreed”, “contract is in effect”, “contract is being agreed” etc. Every action starting from contract negotiations should be implemented by a workflow-like process. This workflow can be started if the contract is at some specific state and it can send a message to the contract process which will bring it from one state to another. Since the state machine is strictly passive one can modify a workflow scheme freely and/or create several alternative versions of e.g. delivery workflow.

02/09/09 | Notes | , , ,    

Comments (5)

  1. kmmbvnr 02/11/09 08:02 AM

    Нда самая распространная операция, в итоге оказыается боольшим гемороем…

  2. Кузин Сергей 11/05/09 01:28 PM

    Выходит, что одна из основных проблем - всё же неграмотное проектирование процессов.

  3. Anatoly Belychook 11/05/09 01:38 PM

    Согласен, проблема в том, что процессы проектируют не боги :)

  4. Владимир 02/13/10 04:35 PM

    хотел бы уточнить по поводу конечного автомата - не подскажете, в каких BPMS можно реализовать такую схему? или Вы имели в виду некое абстрактное описание (не исполняемую модель) смены статусов, которое просто структурирует набор собственно процессов?

  5. Anatoly Belychook 02/13/10 05:11 PM


    Пример схемы такого процесса приведен в моей статье в “Открытых системах”:, рис.4: По-хорошему, надо было бы раскрыть этот паттерн тут на блоге, тем более, что эта идея с тех пор получила некоторое развитие. Никак не соберусь. Впрочем, мы с коллегами собираемся рассказать об этом на семинаре, предположительно в апреле.

    Во всем, что я пишу, подразумеваются только исполняемые процессы. Но с другой стороны, когда я говорю о паттернах, никакую конкретную BPMS я не имею в виду. Предполагается, что и этот, и другие паттерны можно реализовать в любой “приличной” BPMS. Где-то легче, где-то сложнее, но можно.

    Хотите спросить, что такое приличная BPMS? Это такая BPMS, которая позволяет реализовать те паттерны, которые вам нужны :)

    А идеальной BPMS называется приличная BPMS, не позволяющая реализовать антипаттерны, которые вам не нужны :)

Comments are closed

Copyright © 2008-2024 Anatoly Belychook. Thanks to Wordpress and Yahoo.  Content  Comments