Have you ever spent days writing documentation that is just too long for anyone to read? A picture is worth a thousand words and that is exactly where business process modelling comes into play. Understanding your business and the operations it performs is very important. If you want to improve at this, then you might be interested in business process modelling.
Before I show you some examples and my experience with business process modelling, let’s start with a definition. Business process modelling is the analytical representation, or simply put, an illustration of an organization’s business processes. Modelling processes is a critical component for effective business process management. To easily understand this definition, let me give you an example of a very simple business process model for payment.
Given the example in above picture, for each box or task, you would create an implementation in Java - or any other programming language. Then you would assign that implementation to the appropriate task and handle the branching logic in the model itself.
During my work with business process modelling, I have realized that it is a perfect tool to use on the larger projects where business analysts and developers work together. Business analysts can use the modelling tools to draw the processes and developers can then implement all the tasks in their technology of choice and connect the implementation in the same tool. In addition to that, these models are easily understandable by all team members and stakeholders and are pretty much self-explanatory. Another benefit for me as a developer is that it simplifies the process of debugging since you can see exactly at which point on the diagram the process has failed. If you have multiple components and logs in your application, it is very simple to identify which application log to look at.
During my career, I have used two BPMN engines: Camunda and Flowable. I used Camunda BPMN on a huge project where we basically took all the customs tax laws and made an application out of it. And Camunda was really a perfect choice for this. Since business processes for tax are pretty complex it would be very messy to implement the whole business logic in Java. While using the BPMN engine, it was very convenient to separate application logic from the pure logic of decision making inside the process model. All BPMN engines allow you to monitor the process state in a pretty user interface, but Camunda also allows your viewing the errors coming directly from Java implementation. It also allows you to retry the failed process from the user interface. While Camunda uses a desktop application to draw the business processes, Flowable uses a web interface.
Unfortunately, Flowable doesn’t allow you to view error messages and retry the execution directly from the user interface. I used Flowable on a project in the satellite domain and my experience with it was very similar to the experience I had with Camunda. I especially liked that Flowable modeller is a web application that allows you to redeploy models on a Tomcat server that is bundled within Flowable itself, so there is no need for any additional configuration. In general, my experience with BPMN engines has been great, but as with most technologies, there are some downsides to it.
From what I’ve seen on the projects, it usually takes multiple iterations to draw a diagram which actually allows for implementation. On the other hand, that is not such a bad thing since there is an improvement with each iteration. Another downside - and this one can be a deal-breaker - is that it’s costly to implement in the beginning. If you are lucky enough to have developers already experienced with BPMN engines, that’s great; otherwise, you will have to invest in their education and training which costs money and time. The only question remaining is whether all the benefits it brings are enough to compensate for its downsides, and in my opinion, they are.
Instead of just documenting processes and hoping that people read them, why not document and run the processes in the same system? There’s a benefit to simplifying your business processes, no matter how simple or complex they may be. There is a wide variety of BPMN engines on the market of which you can choose the one that suits your business needs the most – so why not utilize them?
For more information on how BPM works in practice, we'd also invite you to continue reading this article.