Monday, May 30, 2016

Process models; really helpful for process improvement?

"You have to model your AS-IS processes". How many guru's didn't tell us that? 
Oh yes, it is always nice to know what is going on in your processes at this moment.  I am not sure AS-IS process modelling will help you with that. 

Dynamics of Execution 
On twitter I regularly talk about ‘the dynamics of execution’. And that it’s hard to express those dynamics in a process model. 
Process models can act as a working instruction or as start for a design of an execution system, but if you use them in a process improvement project (and they are quite often used for that, I was told), I think they or often too far from reality. To far from reality to really understand why a process doesn’t perform.
In this story I’ll try to explain what I mean with the above. My thoughts about this were triggered when I had some conversations with people who are involved in hospital processes. They acknowledge process improvements should really be possible, but at a sudden point my brains started to boil when I tried to cover all the aspects that make up hospital processes.
In those environments you have to think about:
  • The (sometimes upfront unknown) process through which the customer (patient) ‘flows’
  • The availability of equipment, rooms and other facilities (the logistics)
  • Availability of care specialists
  • Planning and time that connects everything together
These are the aspects I mean when I talk about ‘the dynamics of execution’. No clue how to get that in process models, but I will attempt.  

It’s not my ambition to come up with a new modeling method or some kind of new ‘Manifest for process modeling', but my goal is to make clear:
  • What I mean with ‘Dynamics of execution,
  • Why I think it is important to be aware of those dynamics
  • Why it is hard to express in process models as I see them often.
But, to keep it a little light, I will not use hospital examples, but the good old Pizzeria.
What process models often look like
Many process models I’ve seen look something like:


  (I know, no formal BPMN. Complaints can be send to info@procesje.nl)
This is a very understandable process model (although; actually it’s only the workflow of a process) and can serve very well to explain to an employee or customer what happens when a pizza is ordered.
This could even be the start of the design for a future process if you think this is the best way to process pizza orders.
In my opinion, models like above are only suitable for
  • Things like working instruction (this needs to be done when a new order comes in)
  • Designing systems to support processes ‘as they should run’ (Of course, to make it technically work a lot of objects need to be added)
  • Making auditors happy
But when this would be a model of the current process, it is worthless to determine why the process is performing well or not. It doesn’t tell me why orders are delivered too late or why pizzas burn in the oven.
To find out, you have to add information to the process model. Maybe then you can tell something useful about the causes of bad process performance. And based on that, implement some possible improvements.
 Extension with ‘who is doing that job?’
To make clear who is executing a step in a process, you often see swim lanes added. In that case the workflow is ‘matrixed’ with the ones who execute those steps. For the above model, it could look like this:

               But, what’s the added value of this if you want to understand why the process doesn’t perform? Not so much, I think.
You can see who (in theory) is responsible for each step, but you don’t see, for example:
  • How many chefs are available at what moment?
  • How much time do people spend on executing the steps?
If you want to say something about the performance of the process, these aspects should be visible in the model. I’ll try that a little later, but another thing that is important for understanding the performance of a process, is the amount of cases it has to deal with.
1 pizza order a week is not the same as 100 a day. Also this dynamic behavior should be made clear.
 Process mining/Simulation techniques
With Processs mining or simulation technology, you can visualize cases flowing through the process.
The ‘balls’ (as a representation of cases) try to make this clear:


 These kind of techniques might give you an idea of bottlenecks in a process. But be aware that bottlenecks are only symptoms.  To understand what causes these symptoms , you need to dive deeper into the process.
In the above picture, you see that 3 orders are being registered, but only one is being prepared. This causes a waiting line. How is that possible?
When you look at hospitals, most of the time it is caused by limited resources.
A surgeon can only do one surgery at a time. And when she is doing surgery, she can’t do consultations. In that case the throughput of patients is limited by the number of employees.  You hardly see this aspect of reality in process models. So, in one or another way it would be cool if you could enrich process models with executor-availability.
 Executor-availability in a process model
When I was thinking about how to add the availability of executors in a process model , I thought it should be some kind of matrix of swim lane vs number of executors vs step.
Assume that there are 3 waitresses, 1 chef and 2 deliverers in the ‘Deliver pizza’ process.  The model could look something like this (just made it up, it’s not about the model, remember?)
(there is a little typo in the picture I still need to fix; one of te Waitress 2  should be Waitress 3)
Combined with cases
When you combine the above model with balls (pizza orders), maybe it becomes a little bit more clear why there are bottlenecks in the process.

As you can see; at this moment, no new orders can be registered because the 3 available waitresses are already working on an order.
Besides that, you see something that is really hard to express in a model; there is only 1 chef, who has to execute 3 sequential steps for an order. When he is packing, he can’t prepare another pizza. How could you visualize this dependency?
Maybe by using some colors to express that they share one executor?


I think it is not that intuitive, so maybe another way could be by saying that the work of the chef is some kind of block, which can only contain one case at a time:

As you can see, it’s a dynamic aspect of a process that is hard to express in a model. But, it’s an important one to see why a process isn’t performing.
In fact it is some kind of on/off switch between activities; when one is executed, the others are idle.
People are not the only scarce resource
In hospitals the assignment of scarce specialists is not the only challenge. Also the limited availability of facilities like medical equipment or operation rooms has a big influence on the performance of processes.
You can have 10 surgeons, but if you only have 1 operation room, that will be the constraining factor.
In administrative processes you can think about systems (or better; licenses) of which only a few are available. Also these constraints should be visible in the model. At the pizzeria it might be the case that there is only one car to deliver (and still 2 deliverers). I tried to visualize this in the following model:


To understand this, you need the ‘dynamic balls’ that represent the pizza orders. They are cut in half now, because for one order, a car and a delivery person is needed.
This also shows unbalance in the process. There is a deliverer too much or a car too less. This means an opportunity for more revenue or less costs (depending on how many pizzas are sold every day)
The above picture looks a little like a petri-net as some of you might have seen before.   
And when I assume that the restaurant has an oven where 3 pizzas can be baked at the same time, that part of the process could look like this:

And again, this shows the problem of only having 1 chef. He cannot put a pizza in and remove one from the oven at the same time (although, I’ve seen some chefs…).
This creates a risk of burning pizzas because the chef has no time to remove them from the oven in time.
And that brings me to another aspect that has a big influence on the performance of processes (as experienced by customers); planning and time.
Planning and time
The above picture showed the important aspect of time; when a pizza stays in the oven too long, it burns. This is very much related to planning.
Of course it only shows up in the real execution of processes and that’s why it is important, I think. What makes it a little more complex is that you also have to take the availability of employees into consideration.
During the weekend, the pizzeria might have 3 Deliverers, while there is only one during week days.  Let alone the fact that they might have a bad day so now and then.
So the process (and probably it’s performance too) can change from day to day. This dynamic aspect will never show up in a traditional process model.
And that is also the case in a hospital. Assume that there are 2 surgeons, but only one operating room. While one surgeon is doing surgery, the other one can do consultations with patients. Making these kind of planning aspects clear in a process model; quite a challenge. Let me try…

Conclusion so far
Process models as I see them often, have a certain purpose, but don’t always help to understand the causes of bad process performance.
To get a little bit more understanding of process performance, you also have to know:
  • Number of cases flowing through the process (balls)
  • Resources
  • Dependency between resources
  • Aspects of planning (for example availability of employees)
Many aspects, but necessary in my opinion. If you want to show this all in process models, you need to add dimensions like time, cases and resources).
And that is even too simple. Because in real life there are more aspects like the availability of information, external parties that want you to be compliant, etc.
In this little story I tried to explain some aspects of real life dynamics. I also tried to express this in models. But as told, that was not my goal. Besides that, it’s also not so easy, as you’ve seen.
I tried to make clear is whether or not models, as they are made usually, are really that valuable for improving processes.
Or would it be better to improve the process little by little while it is executed. So little adjustments after evaluating each (finished) case.
Because in the end, the dynamics of execution will appear most of the time during…execution.
Do you recognize these dynamics of execution and how do you cope with them during your process improvement projects?
Happy Processing!

3 comments:

  1. Excellent article - I also put the standard notation aside and focus on depicting/communicating the real challenges the process have and how it can be solved. Keep up the writing.

    ReplyDelete
  2. In CPM, we get to know precisely what the performance times at each step are, what the idle time is between steps, who are performing the steps, how many handoffs there are, what data was available for making decisions, what incremental data was added by the performers.

    The resource allocation model knows precisely what resources are in use, and has the added capability of auto-extending the start times for steps based on demand vs projected use.

    Given all of this for once-through initiatives, why can't the ACM/BPM method be adapted to some reasonable extent (given the typical deficiency of not knowing downstream step performance times)?

    We did hospital apps for 20 years using auto-schedulers to find next-best appointment for a patient with a need to see a specialist. We did the same for home visits, where we had in one case, 150 people traveling around several USA counties (important here to have geo-automation).

    Very nice article - I particularly enjoyed ". . .no formal BPMN". I am not a fan of notations/languages.

    Seems to me one gets much better/faster results when a facilitator uses a platform where he/she can, at random, pick a stakeholder who has never seen the platform and successfully gets that stakeholder to build, compile, roll-out and model a process with minimal hand-holding.

    ReplyDelete