I am giving the keynote at camunda’s BPMcon conference tomorrow, and since I arrived in Berlin a couple of days early, camunda invited me to attend their community day today, which is the open source community meeting. Nice to see such a great turnout — 70 or 80 people? — and I definitely wasn’t the one to travel the furthest to get here, since today’s opening presentation is from Rob Parker of Australia Post. Australia has a lot of the same issues as Canada when it comes to nation-wide services such as post, since we both have a lot of geography and not a lot of population: this means that a lot of services have to be delivered at a fiscal loss to sparsely-populated areas, with specific rules about what percentage of the population has to be within a certain distance of a postal outlet.
Post offices in particular are hard-hit by digital disruption; Australia Post has seen their letter delivery service decline by 1 billion articles (and the related revenue), even though the number of addresses to cover has increased. However, they have seen their parcel delivery business increase, even though this is a competitive business with courier companies. They’re also offering a number of other products, such as electronic bill payment, digital mail delivery and even passport interviews, which has driven them to create a more integrated multi-channel/multi-product architecture to be able to quickly bring new products to market. They’re using camunda BPM for their order management processses, both for customer orders and service fulfillment orders. Customer order processes support the various customer channels, then drive out one or more service order processes to fulfill a customer order.
They decided to use BPM in order to externalize processes from applications, making for more agile development and better reusability. They picked camunda because they wanted “just enough technology”: that is, they wanted to add process management to their existing Java application development environment, not rewrite all of their apps in a proprietary, monolithic BPMS app dev environment. camunda BPM is used to implement the multiple service order processes that might be kicked off by any given customer order, with their overall architecture handling the communication between the two order management layers: the customer order layer as a consumer for the service order layer producer.
Parker went into a lot of detail of how they have implemented this architecture, putting their BPM usage into the context of their overall technical architecture, and walked through the general process model for their service order that instantiates a dispatcher process for each customer order, which in turn instantiates a subprocess for each line item in the order. They really want to implement all of this in camunda, but are still using TIBCO for the dispatching process while they work out some of the sticky bits such as how subprocess cancelations are propagated to the parent process. They are also having some challenges with handling process versions, considering that they run 7×24: they need a mapping table that takes these temporal anomalies into consideration, so that the process version in use may be tied to the order date for longer-running order processes. They also created a business dashboard by modifying Cockpit, the camunda IT operations dashboard, to remove all of the “dangerous” operations while exposing the work in progress, and adding some additional functions such as searching by a business key.
Parker ended up with their outcomes, some expected, some less so: basically, BPMN 2.0 is really working for them both for business-IT collaboration and model-driven development; this level of business-IT alignment means that error handling can be shared, with business handling business errors, and IT handling IT errors. They found that developers became productive very quickly since they were just adding some tools to their existing familiar Java application development environment, although some had to be gently reminded to use the BPM capabilities instead of writing code.
It was great to see the reactions and interactions of the camunda team during the presentation: Australia Post is a “do-it-themselves” open source user of camunda, and as Parker discussed some of the shortcomings, they were obviously taking some notes for future work. The presentation finished with him being presented as an award for the non-camunda person who contributed most to the community forum discussions, suggesting that you get out of open source what you put into it.
I love camundaBPM, I think it is one of the better and most flexible BPM engines out there. As a result, we have chosen it as the core of our upcoming BPaaS platform.
But I am struggling with their modeler, which is nowhere near the quality and user-friendliness of other similar modelers (say WebRatio):
1/ there’s a lot of untraceable errors (the log is sparse, you really have to dig into the XML to get a hunch);
2/ validation of the model is not a complete rundown of errors and warnings and it is difficult to trace them back to the modelling mistakes;
3/ the modeler crashes if you have a couple of significant errors in it (which is not unusual);
4/ I’d like to see some data modelling integrated in it – a process model without a data model cannot lead to significant execution benefits down the road.
I know I shouldn’t ask for more from OSS, but I feel the modeler is like a POME for a BPM engine and it has to work well in order to build trust into the engine.
As soon as we finish setting up our stack and writing our first Java classes to plug into camundaBPM, we will show up into the community contributions as well.
But overall I feel the engine is the most developer-friendly BPM engine out there.
Hi Bogdan, thank you for this feedback! I am CEO of Camunda and just want you to know:
We’ve been struggling with the BPMN Modeler for years now, and invested several man years in improving it. I think it’s way better than what you get with other OSS BPM products, but still not on the level of user friendlyness and stability that you and us need it to be.
But it’s an Eclipse Plugin, and IMO that’s the root cause. So please keep an eye on http://BPMN.io , because we’re working hard on the next generation of developer friendly BPM. I can’t reveal any more details right now, but if you follow our blog (http://blog.camunda.org/) you will be notified as soon as there is sth. to try out etc.
Good luck with your BPM efforts, and I look forward to meeting you in our Community 🙂
best
Jakob
Hi Jakob,
thanks for the reply, yes I am following camunda everywhere 🙂
here’s to a long and fruitful relationship – you guys are on to something!
br,
Bogdan
(btw, WebRatio is Eclipse too and it doesn’t crash)
> (btw, WebRatio is Eclipse too and it doesn’t crash)
Haha, touché 🙂
> here’s to a long and fruitful relationship
Cheers 🙂