Is there a way to define the process of building process automation applications (or Workflow applications if you’re confused about which is which)?
In other words: is there a way to articulate the process of doing what is done with a product like IBM BPM/BAW, but without actually talking about just one product… What if you want to create a training class (not sales) that explains how to use any BPMS/Process Automation Platform: Pega, Appian, IBM BPM, Camunda, whatever.
As a preface: I’m talking specifically about design and modeling for execution and implementation. I’m not talking about the ten thousand foot sales deck highlighting all the wonderful characteristics of BPM, BPMS, continuous improvement, easy integrations, rules, cloud-ready, built-in AI, why this platform is the right choice, etc. Let’s assume you or your leadership have bought the product already and it’s been installed or enabled or tunneled or whatever had to get done to get to the point where the product is ready to be used by a developer.
When it comes to business process automation, there has to be some kind of consistency when we get down to how to implement a process automation solution.
And yes, we can talk about BPMN and iGraphix and BlueWorks and then drive into SIPOCs and KPIs and whatever other acronym you have or whatever else you want to talk about when it comes to process modeling and discovery. But modeling for discovery and modeling for execution and implementation are two very different things.
We have to agree on that first before we continue.
No matter how much you document an HR Onboarding process (which coincidently is every BPMS’ demo/default process, yet so many enterprises already have a massive HR solution so do we ever really implement HR Onboarding in a BPMS?), is your end-automation solution just those three activities: Create Req, Review Req, Post Req?
- You’ve got to data marshal something, right?
- You probably won’t just display a giant empty form with Candidate Name and Address, right? You’ll want to pull from your job posting system or HR position data or organization structure. You won’t do that inside the Human activity, right? You’ll want to do that before hand in a system activity…What does the integration look like?
- And you might want to make integration calls between those high-level Human Activities…maybe communicate with users (email, alert, etc) or other systems (events, messages, etc)…
- And then you have to handle exceptions in those human and system activities…
- Implement escalation or expiration timers…
- Handle events like CMIS or JMS
- Oh, and just that small task of designing and organizing your business/data objects somehow…
Before you know it your high-level Create > Review > Post process flow is cluttered with intermediate nodes and exception activities and ad-hoc activities and gateways and nested objects upon objects and Boolean flags that only get used once…Where did that Create > Review > Post BPMN diagram go again? It must be around here somewhere…
So where do we start?
Obviously BPMN and discovery process models are the best place to start: you have to know what activities get you from start to finish for a given process. And you have to be on the same page as your business partners. Luckily the graphical nature of process diagrams makes this an easy win. So go ahead and import that BPMN diagram into your BPMS. It is not wasted work. But be open-minded to the fact that this flow can and should change. You won’t lose the concept of your process; you’re just going to add detail to make it executable.
So let’s make this first topic short and simple and start there: a process model.
- Find out who does what when
- Find out how the process starts and what constitutes an end-state
- Find out what data is needed and where does it come from
I know that seems really simple, but take this chance to gather the high-level requirements for your process. Start in Sprint 0 with just some modeling and generic object design. Always ask yourself and your team: “what are we trying to accomplish here?” Because as soon as you get into the weeds of REST calls and CSS layouts and Task Names and SLAs, you might forget that.
So after the process model, what else do you need?
I’m going to start this series with a list and adjust from there. I can’t answer this question with a single post, sorry. But we’ll see what we discover along the way.
- User Experience: how will users participate in the process? Are you building UX inside your BPM platform (if it supports things like IBM BPM Client-Side Human Services and Coaches) or will your application rely on External UX solutions that need to integrate with an API?
- Integrations: what other systems does your process application need for inputs and outputs? SoR? Messaging? What is your SOA environment like: do you have an API gateway or catalog or robust microservices? Do you need to onboard to some sort of security framework when connecting to other systems?
- Persistence: where does your application store data: RDBMS, noSQL? Does it need to be maintained or auditable (like WORM)? What is your process data half-life?
- Support & Performance: what is your throughput? Where do you log? How does Production Support work? Are your process instances recoverable?
Feel free to leave your thoughts and comments about how to tackle this first process modeling step in the Process Automation application lifecycle.