17 September, 2010

Painting processes

While digging the Internet I went through a blog with a discussion about Compensations in BPMN. This is a clear description of what I consider an anti-pattern in modelling. These persons are disguising if the given example is corrent for modelling compensation in credit card processing. There are replies in the thread that propose alternative models and explain with plenty of details why a model is wrong and why another one is correct. It's mentioned for example that there is not an undo, that the logic is wrong because one entity is reached after another.
The tebate is interesting at first, except that it lacks a key concept: the model has never been exectuted actually! Essentially in the blog people argue the correctness using hipotesys but no one has ever had the idea of executing it, "let gives some input and see how it behaves". As we have done for decades with code that implements algoriths like binary seach, bubble sost, linked list, we'd execute it in order to test it, and to find  which inputs break the algorithm and then we can try to fix it and propose alternatives.
This is a nice demonstration IMO that modelling is still treated essentially like painting boxes and lines in a canvas. But hey, BPMN is a computable specification with well defined behaviours, we might be able now execute it in Intalio, JBoss, BizAgi for example like any other code. If it behaves has planned that it's correct, othervise not.
After all, a model is a code and a code is a model, we shall treat it in the same way.

0 comments: