Frank Weyand's picture

The BPM tool of the future: how should it look like?

This sounds like an easy question, but I believe it's not: what are the reasons why you like to use a BPM tool?
Is it just (re-)documentation? Is it to get an overview, what's going on in your company? Do you just want to model data structures?
Or are you a developer and like to model UML class diagrams to generate code?
Do you want to model technical processes, which should be able to be executed in a BPMN engine?

You probably can go ahead with many, many questions more.
But I think, a BPM tool, you can do much more for you. Generally, you just maintain data. This could be used, well, however you want it.
Why should a BPM tool not provide, let's say, groupware functionality? Sending messages, doing improvement proposals...
What about project planning? And if we can define the relations between project steps, why don't we can also plan responsible resources?

So this is some kind of vision of a BPM tool I'd like to discuss with you.

Prerequisites

Logically, a professional BPM solution is based on a repository. This repository is based on a generic structure, which means it does not have specialized data structures for special use cases. Generally, all data can be expressed via objects having attributes. The corresponding applications based on that repository are able to use these structures to handle the data they need.

The way the user works with the tool

Many BPM tools are based on a graphical editor, but there is no reason why there shouldn't be able to use every kind of capturing method: lists, tables, forms...
As example, if the user wants to maintain a requirement, it could be possible to directly edit a forms describing the requirement including efforts/budget, responsible persons and priority etc...
The tool should provide, in optimal case, a powerful "query engine": finding results of a certain query should take milliseconds. But also started from data seen in a model/search result//form, the tool tells me where this data is used, how and by whom. So I can "wander around" the data and build a complete net of "data chain" in a - in optimal case - graphical way.

Completeness of data: from the abstract overview to concrete real life data

The BPM tool fulfills all aspects of handling processes: starting from the upmost abstract overviews (let say, process landscapes, and knowledge trees) down to the technical aspects: BPMN and UML models and technical executable processes as well.
Also, additional "real life" models, like project plans, but also person-related messages can be found.

The applications: completeness of functionality (modeling, calculating, executing, measurement)

"Applications"? Yes, since we've got a generic repository, and a graphical user interface being able to manage the data, we could build a lot of applications based on the repository. We could design processes and execute them. Not only the modeling GUI can be used, but also form, which also can be defined by the user. I can also define queries based on the repository, which are provided by a report and directly edited in this report.

But that is still not the end of the line. Since the BPM tool has a generic repository, why couldn't that be used to extend the repository itself?
Let's say, I want to write an application which needs to use a certain data model. So I could create the meta model (well, by modeling it) and after "releasing" it, I would be directly able to create records according to that data model. Since the BPM tool provides users, groups to manage the user rights and provides access privileges, and since the BPM tool is programmable, by writing code or model a process, it serves as a complete platform for every kind of application.

Process Measurement

If a BPM software allows not only planning and designing processes but also the execution, it is quite logically, that, in addition to the mandatory possibilities to simulate and calculate planned processes, it is also obligatory to measure running processes to compare the efficiency of planned processes and the once executed in real-time.

An overall example

Well, the formerly discussed issues where a bit theoretically... here is an example how working with a BPM tool could be like.

In the morning, I log into the BPM tool.
I received the task in my inbox to implement a little process, let's say the creation of a process to specify requirements.
So I start to model a process in the BPM tool. I also create the data model: I design the structure and relations of records (the meta model) I need for that process.
Defined by the information, I can set time spans and costs to the activities. This allows me to execute a simulation, which is like "debugging" a process. Also, I am able to calculation costs, times and more.
I design the forms to be used in that process and create, based on my abstract process a technical process. Or better: the system transforms that from the source into the target notation.
I commit the process, the form and the meta model and deploy it on the execution engine.
After setting the process life, the process measurement tells me how efficient the process really is.

BPM or ERP?

Since the scenario described above includes abstract planning and execution of processes, is it still a BPM software or rather an ERP system?

Well, the BPM tool described has maintenance functionalities for users and user rights, is programmable using coding or "visual coding" using models, uses a repository providing search functionalities... so the question is: what is the difference?
If you have such a BPM tool with a generic repository and the possibility to create your own functionalities (or enhance it by buying some), it becomes more and more a generic ERP system.
But in addition to write coding, you can create processes by modeling. And you've got the whole scenario with planning, calculation, simulating processes, which helps you to find errors in the processes and can save you a huge amount of money. That really sound to me like something the world is waiting for.

Is this too much?

According to me, it is not. BPM means business process management, and that's what all of us is doing every day: we're in business, we are "living" in processes, and we are managing them to get our work done.

The question is not: "what can I do with a powerful BPM" software. It is: "Is there something I can't do?"

And that includes the whole stuff: planning, testing and, well, execution and quality management... the whole cycle of process management in just one tool.
Some kind of "dream" of mine is: in the morning, I come into the office, log in into a BPM tool, work... and in the evening, I log out. And: I had fun doing my work.