This week I presented a lunch’n’learn about Oracle BPM 10g. The theme of the presentation was “This is why you should never use this product if you have a choice.”
Business Process Modeling (BPM) can have a lot of value to the business. It’s effectively a graphical Domain-Specific Language (DSL). Even when the implemented logic is complex enough that it takes programmers to create the BPM process, the analysts and business people can read it. The serious value of BPM in a very complicated application is the universal language: the processing steps each have names. The analyst or the support person can point to the chart and talk about what should happen. Since the process design is executable, it is never out of date. This communication tool is priceless.
When implementing BPM, there’s a choice of systems out there. My recent experience is with Oracle BPM 10g. These are the things we long for after two years of working with this product:
- Traceability. We need to see the history of an instance, what route it took through the process and what its variables contain.
- Flexibility. How hard is it to change a process? What restrictions are there? In Oracle BPM, there’s no merge and no locking mechanism, so we often discard changes and start over. Once a process is in production, activities can never be deleted or moved to another role, instance variables must remain forever, and various other restrictions that we can’t even define clearly.
- Stability. Oracle BPM just plain lies, returning nothing or an error on some queries.
- Testability. Testing in Oracle BPM requires lots of custom code and is entirely manual. There’s no automating it, and there’s no dropping an instance in where you need it; it has to start from the beginning.
So what’s a BPM-hungry company to do? What I’ve heard about Oracle 11g (the newer version, more closely integrated with SOA) is that it doesn’t fix the problems in 10g and is not production-ready. That’s hearsay. So far people are more impressed with Lombardi, which is now (unfortunately, for the price-sensitive) owned by IBM. For open-source, Mule has a workflow engine built in, which can serve as a form of BPM. What else is out there? Who works with a BPM system that they actually like?