What is Dynamic Process Optimization
Monday, June 26th 2006 | Ismael Ghalimi
This is the sixteenth edition of our weekly BPM 2.0 post. Today, I will try to explain what is dynamic process optimization. A couple of years ago, the tagline for a now-defunct BPM company was “Go ahead. Change.”, and the ability to make rapid changes to processes has always been heralded by vendors as one of the major benefits offered by BPM. Dynamic process optimization is all about taking this idea a step further.
One could define agility as being the speed at which changes can be applied to business processes that have been deployed into production. According to such a definition, things link Zero Code and One Click Deploy should play a critical role in fostering agility withiin an organization. Nevertheless, no matter how easy we make it to go from design to testing, then from testing to staging, and then from staging to deployment, the BPM process lifecycle becomes an agility impediment when real-time changes are required.
In order to work around such limitations, dimensions along which processes are the most susceptible to change must be extracted from the core process lifecycle. Parameters and variables that drive process execution must be externalized, and the lifecycle of such variables must be either totally decoupled from the lifecycle of the business process they relate to, or at least merely synchronized with it.
This is true for business rules — as was discussed at length in comments to this past article, but it is also true for binding rules invoked to bind abstract process and service interfaces to their matching implementations, as well as user interface parameters used for internationalization, localization and personalization purposes. In order to support real-time changes to be applied to business processes, it should be possible to change such parameters and variables at runtime, without having to redeploy the processes themselves.
The challenge then becomes about how to provide simple-enough user interfaces that can let business users make such changes at runtime, while enforcing strict privacy and security rules, and capturing a reliable audit trail for such interventions along the way.
Down the road, the most forward-thinking developers will want to close the loop and design processes that will change such parameters on their own, based on information gathered at runtime by the BAM infrastructure, and without any human interventions. To some, it will sound like science fiction. To others, it will look very similar to what genetic algorithms have been used for in many mission-critical production systems for the past ten to fifteen years.
Who said BPM was boring?
Entry filed under: BPM 2.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


















Ismael,
To me this is the most interesting post yet. In the world of supply chain we talk about the speed of execution and the speed of change. We say a supply chain is agile when it can rapidly and effectively react to unplanned and unanticipated change.
Couple that with the ever shortening lifecycle of most products and you’re looking at two dimensions of agility: (1) how agile is your process as designed (also called robustness), and (2) how rapidly can you improve the process to effectively accomodate changing demand patterns, new business models, etc.
Christopher Meyer is the guru of seed and his seminal work is a book called Fast Cycle Time — How to Align Purpose, Strategy, and Structure for Speed. He introduces definitions for “1st generation of speed” for rapid execution — he calls it “straight line speed” and compares it to a dragster race, and “2nd generation speed”, or speed of change, and compares it to a Formula 1 race.
That being said, continuous process improvement is (or should be) an on-going endeavor focused on two different issues: (1) reduce variation around the mean of the process KPIs — with methods such as TQM, ISO, Six Sigma, etc., and (2) shift the mean towards the optimum as defined by the process objective function (profit growth, quality yield, etc.).
This latter one is where dynamic optimization makes a big difference in process improvement methods such as non-linear programming, evolutionary operation (EVOP), variational analysis, etc., which are being used by operations analysts to optimize processes.
I am still a student of BPM, but I can see a not too distant future where optimization techniques, statistical analysis methods, and ever-evolving BPM concepts and methods can join together to continuously optimize processes on-line and in real time.
The future is very bright indeed!
This is a topic close to my heart.
For some time now I’ve been considering and refining ideas in this space. Please forgive any mistakes in biochemistry — you can only push an analogy so far. Broadly speaking I envision the modularization of processes into “molecular” units — a molecule being composed of one or more “atomic” actions (such as an interface with another system wrapped in a transaction). These “molecules” are then bound together in a framework (such as the ACGT elements in DNA) which represents the end to end process.
So far, so very ordinary.
What I like to envision is that at run time the “DNA” splits and recombines (either with itself or other strands) based on its environment. This splitting — in effect deciding which molecule(s) will be executed next and whether other DNA strands will be involved — would be determined using rules-type technologies operating on current/past states and environmental inputs and impacts.
I’ve thought this through in more detail than can be described here (e.g. involving some other attributes for which the analogy breaks down) and am formulating some ideas and requirements for a “process operating system” (i.e. orchestrating and running process fragments in a similar fashion Unix manages programs).
If we do this well, we can make processes operate like people, optimizing execution based upon the world around them — or not, depending on your coworkers ;-) — using “judgement” to select which process activities can be done at any time.
There’s a whole new wave of problems out there we can address with an approach like this.
How do you avoid BPCancer? ;-)
As I see it a “Stochastic Processes Inhabitation Environment” is far from being called a bright future. If we must make the analogy to biochemistry, one must define very refined and grainular process entities that interact in a well-defined stochastic environment.
Externally as well as internally.
Interesting view Harel.
As I mentioned the analogy could only be pushed so far. I agree entirely that a well defined, granular breakdown of processes is needed — that’s precisely why I used terms such as atoms and molecules. I also agree that the environment itself needs to be bound, although how strictly is open to debate — complexity vs. usefulness arguments arise here.
The rationale behind my approach is that real life business processes are stochastic by nature. Just look carefully at how you perform your work today — unless it’s extremely boring and repetitive (i.e. a prime target for replacement by a robot), I’d suggest that you could not predict accurately the exact sequence of your actions more than an hour ahead, if that — you could however predict some likely outcomes and behavioural trends, both in the medium/long term (targets) and in the short term (reactions to events arising). You could also have a reasonably accurate guess at how you (and others) would react to changing environments.
It is this behaviour which I’m endeavouring to emulate so that process management can move into more complex areas. I agree it’s an area with limitations which we should respect — I for one would not want to “psychoanalyze” the judgement, motives and behaviour of an AI-based BPM system! And if that statement doesn’t indicate an analogy pushed well beyond the bounds of common sense, I don’t know what would ;-)
Bad move Andy, you’ll have the BPMS failing to meet deadlines, having days off to watch the football, and demanding massive pay rises at this rate!
You also forgot the demand for us to add a swimlane labelled tea/coffee!
I would assume that they could do that for themselves! But are you sure that it would be tea or coffee that they would want?
And they call *me* a geek…
Having an optimized process is great, but you might consider the effects on management systems, such as BSC.
I think your statement: “Parameters and variables that drive process execution must be externalized, and the lifecycle of such variables must be either totally decoupled from the lifecycle of the business process” could be an interesting approach to a BPM challenge.
In the idealized world of BPM 2.0, there are levels of KPIs that measure corporate metrics. In business intelligence, or business activity monitoring, organizations want to identify areas of low performance. To do this you might progressively drill into the details of an underperforming business area. When a process change creates a new segment to be monitored, your BAM tools should be able to monitor the new performance segment. If this data is burried within code, then adding the BAM dimension would be manual.
Do you really need to have such intelligent business processes? Is the intelligence a part of the process, or should it reside elsewhere? Externalizing process parameters is the correct step to take, by providing a source of information for feedback that other processes can leverage.
I see processes, in terms of BPM, as the touch point of everything else in a system, so I would (in biological terms) look at it more as the nervous system. Currently the real intelligence (the brain) is done by people, the enterprise systems (or bodily functions) by applications. The external parameters act like the sensors in the body, the process feeding back to the decision making component (the brain). This means that the function (or at least partial function) of the brain cannot be covered by some other participants.
Currently, I see several candidates; Simulation; Business Rules; Expert Systems and Artificial Intelligence. But I still see them as participants and not business processes. In his book “Business Process Management: A Rigorous Approach”, Martyn Ould describes three process types: worker processes. management processes to manage the worker processes. and strategic processes to measure the performance of the system over time. This type of approach, using suitable process patterns to construct complex systems that rely on dynamic processes and the like, would seem like a good staring point.
Still, that’s not to say that these components could not be process based. It’s more a case that in the world of BPEL, you have other more pressing issues, like performance and so on. It also depends on the need for performance and other issues, perhaps other resource limitations, taken in the context of the business objective that requires a particular functionality.
I always look at current technologies as the stepping stones that lead to next-generation concepts, rather than try to use them for things that would be better done in another way. I’m sure the design of appropriate patterns will be one of the stepping stones to get there.
Both Andrew Baldwin and I are giving thoughts to this space, but there are a number of challenges between here and there.
Bob,
I am far from being an expert on the subject, but I heard an interesting theory that suggests that intelligence is distributed throughout the whole human body, so that it is present in everything, from the brain, to the stomach, to the skin, and it acts holistically in response to various stimuli.
Any thoughts on that?
-Ryan
A good starting point would be Principles of Neural Science (Kandel et al.).
Explicit steps in the wrong direction:
“…decision making component (the brain)…”
Macro: lobes. Micro: modalities?
“proposes that intelligence is distributed throughout the whole human body.”
Handicapped people might find it a little bit offensive…
I have a few comments on the subject.
Well, that’s one for the old brain juices on a Friday morning!
Just by coincidence, a couple of days ago on the old “idiot’s lantern” there was a program on that subject. I missed all but the last few minutes. I gather that heart transplant patients have “memories” or take on attributes of the donor. The one man I saw suggested that he had become poetic, where he had no previous inclination. Based purely on that (an inadequate sample), I would suggest that anyone who had a life changing event might just start to savour the poetic things in life.
However, where process is concerned, I do believe in memory or function transference, as you should be able to safely move processes from one system to another. I would dispute that current technology, in the form of BPEL, would be transferring intelligence. For the transfer to be safe, you don’t want the process to interact strongly with the system other than to feed back to the process. The type of process I’m thinking of here is deliberately mobile and transitory, to do a search say.
It is like using an electrical stimulus applied to the arm for diagnosis purposes. It makes the hand twitch, the person remembers the event (audit trail), but the hand does not twitch in the absence of the stimulus. It certainly knows nothing of the readings on the diagnostic equipment.
That does not mean that you might find a system with distributed intelligence of some use. Just don’t let it anywhere near any national defense system…
Trackback this post | Subscribe to the comments via RSS Feed
Leave a Comment