SOA analyst Beth Gold-Bernstein of ebizQ posts about her quest for a BPMN tool to support her effort, together with Brenda Michelson. to create a “service design method.”

Our goal is to take a pragmatic business driven approach to incremental (ie ? project driven) SOA design and implementation. We plan to use standard modeling techniques and tools where ever feasible. The status of this project is that we have now defined the process and design artifacts, and our next task is to model out a case study and see if it holds water and to find the holes….  I argued that it was time for business and IT to start speaking the same language, and we should start off with BPMN right from the start.

She then describes how she downloaded Tibco’s free BPMN tool and tried – unsuccessfully – to get it to do what she wanted.  I had the same problem when I was looking for a hands-on tool for my BPMN training.  Tibco, Savvion, various Visio stencils… the free ones just didn’t do what I wanted, either.  And my goal was simpler than Beth’s — it was just to explain how to use BPMN!!

The two big gotchas for Beth were also non-starters for me as well: lack of support for intermediate events, and the inability to explode collapsed subprocesses into their full detail in a separate (but linked) diagram.  I’ve written at length about the first problem (Step Up to Full BPMN), a not-uncommon omission in BPMN tools from BPMS vendors whose process engine can’t handle intermediate events and transaction compensation. 

The second problem is one I discovered as I was trying to adapt a best-practice top-down modeling methodology to BPMN, in which you start with a high-level (‘handoff’) diagram, and then drill down to expose more detail.  (Beth frames the problem in terms of service reuse, but for me it was a modeling methodology issue.)  You want to retain the ability to expose the process diagram at different levels of detail, without redrawing it at each level (as would be required, for example, using BPMN’s inline expanded subprocess notation).  Also without the need to have 30 feet of wall space to tape up the diagrams.  I wanted to be able to drill down in the tool to see the detail, not walk around a room.

For me there was a third issue, not mentioned by Beth: the ability to do simulation analysis in a practical way.  Simulation is not a part of BPMN, but it is a feature of most process modeling tools, even free ones like Tibco and Savvion.  It wasn’t until I tried to teach people how to get meaningful analysis out of simulatin that I discovered what you really need to do it, elements missing in most low-end tools.

I found a tool that met my needs — Process Modeler for Visio from itp commerce of Switzerland.  At $690, it’s not free, but not prohibitively expensive either.  It’s the one I’m using in my BPMN training, now in beta.  Here’s why I like it:

1.  Full BPMN.  Intermediate events, compensation, message flows, standard and user-defined attributes…  Sure, there are lots of drawing tools that do this, but a process model is more than a drawing.  The tool needs to understand the process semantics behind the shapes and attributes… in order to perform simulation, generate BPEL, and simply produce valid BPMN.

2.  Layered on Visio.  OK, that’s not free, either.  But it’s the de facto diagramming tool standard.  It makes the drawings easy to manipulate, and they look great.  On balance a plus.

3.  Expandable at multiple levels.  You can draw a collapsed subprocess at the top level diagram.  In one click you can create a new “process level” that takes by default the name of the collapsed subprocess, and lets you diagram that subprocess on another sheet, hyperlinked to the top level.  So you can drill down in the diagram to see detail at any level.  This is more than a drawing navigation aid.  The simulation engine, the BPEL generation, etc all understand the linking, so it really acts as a single process model.

4.  Simulation parameters.  Every tool supports some notion of task resource assigment and resource costs, task duration, and gateway probabilities.  But if you’re going to support events for exception handling, you need things like the probability of an event occuring, and the time it occurs.  To do cost analysis, you need to separate a task’s active time (consumes resources and resource cost) from wait time (does not).  Process Modeler does these things.

5.  Simulation output.  Every tool gives you some canned metrics and charts out of the box.  What I discovered is these are rarely what you really want.  You need the ability to create custom metrics and charts, and for that you need the raw instance data.  Process Modeler dumps its simulation output to Excel, along with the usual canned metrics and charts, but also gives you instance data, down to the activity level, and even Excel named ranges that let you customize your performance analysis, and save the metrics and charts in a user-defined Excel template.  You need to be somewhat adept at Excel, but just array formulas and stuff like that, not VBA.  As I was developing the training, they even agreed to make some of my custom metrics and charts – time and cost histograms, for instance – part of their out-of-the-box Excel template.

6.  A team repository for process models.  I haven’t needed it yet, but for modeling in a corporate environment, it’s quite valuable. 

So even though BPMN is a standard, the tools that support it are not all the same.