Vishal Saxena, formerly lead BPMS developer at Oracle and Intalio and a member of the BPMN 2.0 technical committee in OMG, today showed me a demo from his new company Roubroo.  The interesting thing to me about Roubroo is the ease of modifying process definitions at runtime, either on a single instance or a set of instances, while strictly observing the semantics and rules of BPMN 2.0.   Difficulty with ad-hoc behavior is one of the biggest objections some users have about BPMN 2.0.  You shouldn’t really have to give up ad-hoc processes to use BPMN 2.0 (or vice versa), and Roubroo is a good example of how to marry the two.  Consider the diagram below of a loan origination process.  (Note: I would call the merge of parallel flows into Submit All Documents incorrect, a ‘multimerge’, but Vishal claims a join is implied.  We can agree to disagree on that; it is not that important to my point.)

This diagram is a runtime view of a particular instance.  The yellow border around Citizenship Status (and other tasks) means ‘completed’.  The red borders around Property Inspection and Notarize Docs means ‘in progress’.  Let’s say at Submit All Documents the user realizes that for this instance, there should have been a Criminal Check in addition to the Citizenship Status check, and also a new future step is required, Archive Docs.  Roubroo can define and add those steps to the running instance, and inject a “token” back to the Criminal Check step – which actually comes before the current location of the token.

What happens under the covers is Roubroo creates a new version of the process definition and migrates the current instance, but the end user doesn’t need to see all that.  The backward token injection (while retaining all of the downstream token processing requirements of the BPMN 2.0 spec) is the hard part.  The UI for making these ad hoc changes seamless to the runtime end user (while guarding against end users doing damage to the process definition) still has some rough edges, but it does show a way to incorporate ad hoc activities and rework steps into executable BPMN 2.0.  Roubroo is not a complete BPMS.  It just provides the “Token Flow Engine” and associated tools for process design and runtime monitoring, working with partners to round out the solution.  An interesting start for a new BPM company.