My introduction into the world of adaptive case management (ACM) feels like a huge relief. Without having to give up the benefits from structure and organization, ACM allows me to cater for the reality of the world in terms of exceptions, variations and the responsibility of experts to make decisions. ACM is a way of organizing a process – although perhaps the word process could be replaced by flow or conversation or interaction or project or any cluster of activities with a clear start and end. This cluster is called a case. Examples of cases are all around us:
- a tax payer’s yearly interaction with the tax authorities
- a hotel booking & stay – an example of this case is described in this follow up article
- a complaint procedure
- an organization’s interactions with a potential new employee
- a complex order
- a court case – from initial filing of a suit until the final ruling and perhaps the appeal as well
- a (regular) marketing event
- a repair job on a car
- my son’s birthday party
Note that some of these cases can be seen from different perspectives. The tax office will see the case differently from the citizen or the financial adviser. A court case can be seen from the perspective of the parties involved, the lawyers or the courthouse. Maybe at some point these various parties might share a common unified case instance. For the moment the situation is likely to be that for a specific interaction, there may be multiple case instances, each one living in the ACM engine of a specific party.
ACM acknowledges the fact that even though all instances of a certain case type are similar, they can also be very different. Not just in the content of the case but also in the way it is executed. Depending on the situation, certain steps that are usually executed are sometimes by-passed or the order in which steps are executed is very different from the normal pattern – if there even is such a thing as the normal pattern. Instead of defining upfront for all instances of the process/interaction/project/case how it is to be executed, ACM takes the agile view of the world and embraces change and variation. Without giving up all semblance of organization and coordination.
ACM provides structure. A number of elements that (potentially) play a role in a [type of] case is defined at design time. These elements are used by the ACM engine to guides stakeholders at run time and to ensure that non-optional steps are taken and mandatory rules are followed. Even though may aspects of a case can be flexible and determined to large degree by case workers and the contents of a case, that does not mean that freedom rules supremely and no conditions apply at all.
Elements that define the case include
- the milestones that can be reached in a case,
- the activities that can be executed over the course of the case,
- data that is associated with the case; in addition to structured data, it is common to also have documents associated with a case instance (that may be structured for human actors, but are less so to the system)
- stakeholders that are involved with the case and influence it in some way,
- events that may occur over the lifetime of the case,
- the possible outcomes of the case.
The glue tying much of these elements together is formed by the rules that determine when activities can or should be executed, how it is allowed to initiate an activity, when a milestone is reached and how the case data can be modified. These rules embody much of the business knowledge around a specific type of case. They bring the order in the chaos – and they limits the flexibility and freedom of the case workers. Very careful definition of these rules is crucial in order to provide the required structure (for productivity, quality, consistency) without needlessly (and frustratingly) restricting the professionals working on a case – and the other stakeholders interacting with it.
Activities in ACM are containers of actions – both human and automated. When the rules determine that an activity is available in a particular case (instance), the associated actions can be started – either automatically or instigated by a case worker. Some activities will always be available during [most of] the lifetime of a case instance, such as ‘add document’, ‘add comment’, ‘send email’.
Audit Trail or Case Event Log
Typically during the execution of a case (instance) a detailed log is maintained of all events that happen on the case. Any activity that is triggered, performed or withdrawn, any milestone reached or revoked, any comment or document added, any event occurring – everything is recorded. ACM tooling (such as Oracle BPM Suite) manages this audit trail and can reproduce – even after the case (instance) has been closed – a detailed overview of the history of the case.
ACM and BPM
It is quite common to have highly structured activities in a case that itself is extremely flexible and variable. Even though we may not be able to predict exactly how the interaction around a case takes place and what steps will be executed in which order before reaching a certain milestone, we may have a highly structured set of actions taking place inside a specific activity. For example: the case around a complex order of specialized goods can vary greatly before the exact order has been defined and agreement has been reached over the financial details but when it comes to picking and shipping the order, it is a very well known process that has to be executed. Or: a court case may require a variable number of actions before the case comes before a judge, but when it comes to the ruling – it is a structured process (even defined in legislation to some extent) that has be to executed. We know of course how to define and execute such structured processes: using BPMN and a BPM(N) engine. That is exactly what we frequently will do in ACM: implement activities through BPMN processes.
Using a combination of case together with one or more BPMN processes to implement various activities in the case is therefore quite common. When discussing or comparing BPM(N) and ACM, it should typically not be an either/or discussion, but a combination of the two.
In general BPMN is used for processes – small or large, but preferably not too large – that are highly structured with little variation and exceptions, with a set order of actions and events and without a large human input in terms of deciding what should be done. Processes governed by legislation or strict procedures regarding compliance or safety are good candidates for BPMN.
When the way the process will be executed is not exactly known and the human actors involved should have a lot of freedom in determining what should be done when, BPMN is not as good a fit. Modeling all variations, exceptions and a dynamic order is really a challenge in BPMN. That is where ACM shines – providing a clear scope and predefined activities as well as a common state (case payload), framework for events and rules for bringing the structure that is a given despite the flexible nature of the process.
My in depth introduction into ACM during the Oracle Fusion Middleware Partner Community event on Malta (February 2014) by Niall Commiskey (whose slides I have robbed for some of the illustrations overhead) has been revealing and inspiring. I feel relieved – that now we can combine the rigor of BPMN with the real world flexibility requirements I meet on a daily basis. The combination of ACM and BPMN will help us implement process automation in a natural way – not working against the resident experts but really facilitating them. In the near future, I hope to be writing more articles about ACM and the implementation Oracle currently makes available in BPM Suite 11g PS 6.
Follow up article that describes a sample case – hotel booking – in detail:The key ingredients of an ACM case – the Hotel Booking Case in terms of adaptive case management
Introduction to Adaptive Case Management, CMMN (the modeling notation standard for ACM) and the CMMN Web Modeler (not free) for visually designing cases – http://www.cmmnwebmodeler.com/
The ACM Poster from the Masons of SOA (the MSOA team) – outlining all elements of CMMN and there mutual relationships – http://www.opitz-consulting.com/fileadmin/redaktion/pdf/sonstiges/acm-in-practice_poster-a3_sicher.pdf. Also see Torsen Winterberg’s blog: http://torstenwinterberg.blogspot.nl/2013/10/download-our-new-poster-adaptive-case.html
The CMMN draft specification at OMG (the object management group): http://www.omg.org/spec/CMMN/
More background on what is/why and when Adaptive Case Management – Case Management: Contrasting Production vs. Adaptive: http://social-biz.org/2012/09/12/case-management-contrasting-production-vs-adaptive/