Program or Process: How do you decide?
- October 9, 2008
- 1 Comments
A business unit commissions a solution that involves people, decision points, multiple paths and real-time visibility. Sounds like a business process, right? Sounds like a perfect fit for Business Process Management; more specifically, a BPMN rendering and a BPMS tool to implement and execute the vision.
Some key aspects in this solution are:
- Business Decisions
- Multiple paths sometimes in parallel
- Point to point orchestration
These are all aspects that support and imply a BPM solution.
Now, what if I needed a similar solution, but minus the people? What if I had a batch or back-office solution that did not involve people other than an occasional exception path? What if this batch solution was expected to process thousands of transactions daily? Would this still be a BPM solution or would it be a software program designed specifically for this purpose? I have heard many, even in the BPM field; argue that such a batch solution may not be suited for a BPMS implementation. That BPMS tools are not geared for this type of high-volume fast paced execution required of such a batch oriented solution. However, to that I say why not?
You see, just because “People” are not necessarily involved in activity steps within the process, the process is no less a business artifact than those which do involve people. Now surely I’m not advocating that every program written could otherwise be a BPM solution, but I am saying that many of these so-called batch solutions do indeed involve business decisions, multiple paths, and multiple point-to-point system-to-system communications; all of which require sophisticated orchestration and most certainly should have adequate real-time metrics. These solutions are often augmented and evaluated for efficiency and accuracy just like that of people oriented BPM solutions. Often these batch solutions do need to handle exception paths which may involve people. Should the program kick-out on exception to some other process solution? And if so, how do the solution owners manage the big picture of the process flow? More times than not, these batch solutions must maintain state in some manner. They must be prepared to handle system failures and contingencies. Is this all to be written rigidly into a program somewhere with very little visibility?
I also find that many BPM enthusiasts tout automation as one of the goals of BPM in a march towards efficiency. I agree with that sentiment, but once a process has been improved upon to the point of automation, is it no longer a process? Should it then be re-factored into a compiled program of sorts? I think not; for automation left unattended is a dangerous thing. An automated solution still requires checks and balances, reported metrics, and proof that the efficiency gains expected are realized; and what about improvements, new products that adjust the automation, new regulatory requirements that incur change in the solution? Even when fully automated, the business process still remains in the fore front.
Software programs and compiled, efficient code certainly has its purpose, and after all, these BPMS tools wouldn’t run without it, but when it comes to business visibility, orchestration, state management and multiple touch points; whether people are involved or not, Process Management solutions are quite applicable. And as these program interfaces become more and more modular through an SOA discipline, the orchestration and process management of those modules and services at run-time becomes increasingly important. So I challenge the BPMS vendors to stay focused on the process vision, but don’t stop at Mortgage Apps, Claims Adjudication, and Book Order solutions …… think further, faster, and with greater depth than ever before; I want to manage all my business solutions through a well defined, visible, and deployed process!