Let’s start with one simple definition:
A business process is a series of steps performed by a group of stakeholders to achieve a concrete goal.
Ok, if the series of steps are repeatable and standardized (sort of), then it sounds possible to reuse those steps depending on the goal in a process-oriented view.
A traditional BPM suite offers this view but in practice is difficult to design those steps from the beginning, considering all the possible reusable scenarios, because you also need to consider the state of the process and the alternative paths besides compensation. So in my case, we finished copying those steps and adapting them to the new process.
It is difficult to create purely black boxes in process automation, so one of the ideas that I have experienced is to use a ”Process of Processes” where you can isolate functionality in order to truly reuse it.
I know that for the purist guys out there this is not really BPM – and I agree ☺
There’s another way to do it and this idea came from some crazy CIOs that needed that flexibility in their businesses, and I would like to share this solution.
Building a ‘Process of Processes’
First you need a process orchestrator, this can be done with BPEL – or in our case we used a BPMN engine. The following image represents the process orchestrator:
The process orchestrator needs an input that contains:
List 1 = # of cycles (sequential)
List 2 = id’s of sub processes per cycle (parallel)
Each cycle can have (n) sub processes, which practically is a list of lists. This configuration can be passed as payload directly to the process orchestrator, or you can save this configuration in a database in order just to pass the name or the id of the process. Also you would need a user interface for create, retrieve, update or delete this process configuration.
For instance, in the next image you can appreciate an example of a typical credit process where activities are performed in parallel. If all of them finish correctly, the next cycle begins.
Using this process orchestration, you can trigger any subprocess, task or service call that are part of a cycle and can be completed in a parallel way. E.g. blacklist review or fraud review are common subprocesses that can be reused in other processes.
Of course, reaching this level of maturity in your business processes takes time and effort, but once you are there the benefits are:
- Immediate reaction to market changes
- Real reusability of common activities
- Governance through the whole business
I think the benefits are clear. If you don’t share this vision, you are going to continue handling the returns and reprocesses with a kind of “goto” (state machine) between activities or tasks, and you need to know from where the process token came from, apart from considering reusability between processes.
Apple’s Workflow app
An important note that supports this concept is that Apple recently acquired Workflow app. This is an automation tool that let´s you connect a sequence of steps (or they call them actions) seamlessly for a specific target. Just imagine this power under the hand of a CIO…
Is it fail-proof?
I know the most experienced colleagues are thinking about how to manage a business exception, how to handle SLA violation or KPIs, how to reprocess specific subprocess etc. Well, yes! You are right: this “process of processes” should be fail-proof, so if you are interested in a second part of this article, then please leave a comment. And even if you’re not, then still your feedback is highly appreciated!