<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: What&#8217;s Wrong With This Picture?</title>
	<atom:link href="http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/</link>
	<description>Bruce Silver's blog on business process management</description>
	<pubDate>Wed, 07 Jan 2009 18:23:52 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tyner Blain</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-384</link>
		<dc:creator>Tyner Blain</dc:creator>
		<pubDate>Tue, 16 Jan 2007 05:36:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-384</guid>
		<description>&lt;strong&gt;BPMN Compensation Event Correction...&lt;/strong&gt;

One of our readers (thank you!) pointed out that another blogger was critiqueing one of our earlier business process modeling notation (BPMN) diagrams. Turns out we made a couple mistakes. Here&#8217;s a more detailed look at the compensation end event...</description>
		<content:encoded><![CDATA[<p><strong>BPMN Compensation Event Correction&#8230;</strong></p>
<p>One of our readers (thank you!) pointed out that another blogger was critiqueing one of our earlier business process modeling notation (BPMN) diagrams. Turns out we made a couple mistakes. Here&#8217;s a more detailed look at the compensation end event&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BPMS Watch &#187; What&#8217;s Wrong With This Picture - Part 3</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-221</link>
		<dc:creator>BPMS Watch &#187; What&#8217;s Wrong With This Picture - Part 3</dc:creator>
		<pubDate>Wed, 20 Sep 2006 03:30:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-221</guid>
		<description>[...] Even though I made a point of not embarrassing the author in print, the creator of Figure 3 in my original What&#8217;s Wrong With This Picture post takes me to task for not contacting him discreetly with my correction.  Welcome to the blogosphere, my man.  Anyway, he posts his own correction, basically repeating my explanation provided here. [...]</description>
		<content:encoded><![CDATA[<p>[...] Even though I made a point of not embarrassing the author in print, the creator of Figure 3 in my original What&#8217;s Wrong With This Picture post takes me to task for not contacting him discreetly with my correction.  Welcome to the blogosphere, my man.  Anyway, he posts his own correction, basically repeating my explanation provided here. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BPMS Watch &#187; What&#8217;s Wrong With This Picture? Part 2</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-218</link>
		<dc:creator>BPMS Watch &#187; What&#8217;s Wrong With This Picture? Part 2</dc:creator>
		<pubDate>Thu, 14 Sep 2006 20:31:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-218</guid>
		<description>[...] Last week I posted several examples of illegal and nonsensical BPMN that you can find online in popular free tutorials and BPMN tools.  If you believe that the notation is too hard for business analysts to use, you might consider instead that widely propagated disinformation such as this is mostly to blame.  Of course you can teach people to use it, including the part where it represents the biggest advance in process modeling, handling of business exceoptions. [...]</description>
		<content:encoded><![CDATA[<p>[...] Last week I posted several examples of illegal and nonsensical BPMN that you can find online in popular free tutorials and BPMN tools.  If you believe that the notation is too hard for business analysts to use, you might consider instead that widely propagated disinformation such as this is mostly to blame.  Of course you can teach people to use it, including the part where it represents the biggest advance in process modeling, handling of business exceoptions. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Brennan</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-216</link>
		<dc:creator>Kevin Brennan</dc:creator>
		<pubDate>Wed, 13 Sep 2006 13:36:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-216</guid>
		<description>OK, thanks.

Error #1 is what I had understood as the problem (maybe I didn't express it clearly enough). #2 and #3 I had noticed but didn't worry about mostly because the original was a somewhat contrived example (the original site even said that #3 was intentional, if implausible). That said, you're probably right to call them out separately as it actually is important for analysts to think about what's in the boxes, not just whether the lines are correct.

#4 is the really interesting one, at least to me--that's something that people coming from other process notations are unlikely to realize, because joins tend to be pretty informal.While I'd have avoided the problem by redoing this flow, I could easily see myself making a similar mistake on another process diagram before this was pointed out to me.</description>
		<content:encoded><![CDATA[<p>OK, thanks.</p>
<p>Error #1 is what I had understood as the problem (maybe I didn&#8217;t express it clearly enough). #2 and #3 I had noticed but didn&#8217;t worry about mostly because the original was a somewhat contrived example (the original site even said that #3 was intentional, if implausible). That said, you&#8217;re probably right to call them out separately as it actually is important for analysts to think about what&#8217;s in the boxes, not just whether the lines are correct.</p>
<p>#4 is the really interesting one, at least to me&#8211;that&#8217;s something that people coming from other process notations are unlikely to realize, because joins tend to be pretty informal.While I&#8217;d have avoided the problem by redoing this flow, I could easily see myself making a similar mistake on another process diagram before this was pointed out to me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bruce</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-214</link>
		<dc:creator>bruce</dc:creator>
		<pubDate>Wed, 13 Sep 2006 01:34:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-214</guid>
		<description>Kevin,
Well, you get the prize for trying, but those weren't the errors I had in mind. A compensation end event (the one after the gateway) would be appropriate in some cases... but only if there were some other action that could fail between the task to be compensated (Process Credit Card) and this event. But gateways are just evaluations of data expressions by the process engine... not typically things that can fail, generating a compensation end event. Compensation is intended to undo completed action 1 if action 2 (part of the same business transaction) fails. But here there is no action 2. This is error #1.

Error #2 is the naming (implied function) of the compensating task. A compensation for a credit card debit is a credit card credit. Reporting a fraud complaint may be part of the fault handling logic... but it is not compensation.

Error #3 is the business semantics of trying to process a credit card, and then regardless of whether the card is good or bad shipping the product. The compensation end event does not kill the other parallel thread, so the product is always shipped. Why would you ship a product if the credit card is bad?

That leads to error #4. If the credit card is bad, the AND-join can never complete since the thread through the gateway went to the compensation end event. This instance is deadlocked.

This example is basically messed up from the get-go. In a couple days I'll post a correct example of a process like this.</description>
		<content:encoded><![CDATA[<p>Kevin,<br />
Well, you get the prize for trying, but those weren&#8217;t the errors I had in mind. A compensation end event (the one after the gateway) would be appropriate in some cases&#8230; but only if there were some other action that could fail between the task to be compensated (Process Credit Card) and this event. But gateways are just evaluations of data expressions by the process engine&#8230; not typically things that can fail, generating a compensation end event. Compensation is intended to undo completed action 1 if action 2 (part of the same business transaction) fails. But here there is no action 2. This is error #1.</p>
<p>Error #2 is the naming (implied function) of the compensating task. A compensation for a credit card debit is a credit card credit. Reporting a fraud complaint may be part of the fault handling logic&#8230; but it is not compensation.</p>
<p>Error #3 is the business semantics of trying to process a credit card, and then regardless of whether the card is good or bad shipping the product. The compensation end event does not kill the other parallel thread, so the product is always shipped. Why would you ship a product if the credit card is bad?</p>
<p>That leads to error #4. If the credit card is bad, the AND-join can never complete since the thread through the gateway went to the compensation end event. This instance is deadlocked.</p>
<p>This example is basically messed up from the get-go. In a couple days I&#8217;ll post a correct example of a process like this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Brennan</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-212</link>
		<dc:creator>Kevin Brennan</dc:creator>
		<pubDate>Tue, 12 Sep 2006 18:06:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-212</guid>
		<description>For figure 3, there are a couple of things I can see (although I'm just starting to learn BPMN, so I'm not sure I have the syntax quite down yet).

If I'm following the spec correctly, there shouldn't be a compensation event after the gateway--the compensation on the Process Credit Card event is sufficient. A seperate event is only needed when you're rolling back more than one task, correct?

Without a seperate compensation event, there's also no need for the gateway event. The process should just continue with Ship Ordered Product.</description>
		<content:encoded><![CDATA[<p>For figure 3, there are a couple of things I can see (although I&#8217;m just starting to learn BPMN, so I&#8217;m not sure I have the syntax quite down yet).</p>
<p>If I&#8217;m following the spec correctly, there shouldn&#8217;t be a compensation event after the gateway&#8211;the compensation on the Process Credit Card event is sufficient. A seperate event is only needed when you&#8217;re rolling back more than one task, correct?</p>
<p>Without a seperate compensation event, there&#8217;s also no need for the gateway event. The process should just continue with Ship Ordered Product.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BPMS Watch &#187; BPMN and Business Rules</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-211</link>
		<dc:creator>BPMS Watch &#187; BPMN and Business Rules</dc:creator>
		<pubDate>Tue, 12 Sep 2006 03:27:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-211</guid>
		<description>[...] In his comment on my post What&#8217;s Wrong With This Picture?, FairIsaac&#8217;s James Taylor asks many of the right questions about BPMN and Business Rules.  I thought it deserved its own thread.  He asks, - how do I differentiate between decisions that are simple “Customer is New/Not New” and complex “Customer’s credit is good/bad”? One of these is about routing rules, one is about decision rules [...]</description>
		<content:encoded><![CDATA[<p>[...] In his comment on my post What&#8217;s Wrong With This Picture?, FairIsaac&#8217;s James Taylor asks many of the right questions about BPMN and Business Rules.  I thought it deserved its own thread.  He asks, - how do I differentiate between decisions that are simple “Customer is New/Not New” and complex “Customer’s credit is good/bad”? One of these is about routing rules, one is about decision rules [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Taylor</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-210</link>
		<dc:creator>James Taylor</dc:creator>
		<pubDate>Mon, 11 Sep 2006 22:44:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-210</guid>
		<description>Bruce
BPMN is interesting. Some rules related questions occur:
- how do I differentiate between decisions that are simple "Customer is New/Not New" and complex "Customer's credit is good/bad"? One of these is about &lt;a href="http://www.edmblog.com/weblog/2006/02/are_bpms_and_br.html" rel="nofollow"&gt;routing rules, one is about decision rules&lt;/a&gt;
- are there any subsets of the activity box to allow me to show decision services as activities more explicitly? Has this been discussed ever particularly in terms of allow &lt;a href="http://www.ebizq.net/blogs/decision_management/2006/06/dont_oversynchornize_processes.php" rel="nofollow"&gt;looser synchronization of rules and process&lt;/a&gt;?</description>
		<content:encoded><![CDATA[<p>Bruce<br />
BPMN is interesting. Some rules related questions occur:<br />
- how do I differentiate between decisions that are simple &#8220;Customer is New/Not New&#8221; and complex &#8220;Customer&#8217;s credit is good/bad&#8221;? One of these is about <a href="http://www.edmblog.com/weblog/2006/02/are_bpms_and_br.html" rel="nofollow">routing rules, one is about decision rules</a><br />
- are there any subsets of the activity box to allow me to show decision services as activities more explicitly? Has this been discussed ever particularly in terms of allow <a href="http://www.ebizq.net/blogs/decision_management/2006/06/dont_oversynchornize_processes.php" rel="nofollow">looser synchronization of rules and process</a>?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BPMS Watch &#187; Can Business Analysts Model Exception Handling?</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-207</link>
		<dc:creator>BPMS Watch &#187; Can Business Analysts Model Exception Handling?</dc:creator>
		<pubDate>Fri, 08 Sep 2006 19:55:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-207</guid>
		<description>[...] This is about business semantics, not programming.  Business analysts can understand intermediate events, exception flows, and compensation.  The problem to date has been a lack of quality training on BPMN supported by a clear methodology for translating process knowledge into diagram correctly.  The current state of market education on BPMN is really quite appalling.  (If you don’t believe me, look here .)  That’s why I’m putting together my own training materials on Process Modeling with BPMN.  Exception handling is too important to be tossed over the wall to the programmers.  Real training and a methodology can give process analysts the tools they need to define how exceptions should be handled in their critical business processes. [...]</description>
		<content:encoded><![CDATA[<p>[...] This is about business semantics, not programming.  Business analysts can understand intermediate events, exception flows, and compensation.  The problem to date has been a lack of quality training on BPMN supported by a clear methodology for translating process knowledge into diagram correctly.  The current state of market education on BPMN is really quite appalling.  (If you don’t believe me, look here .)  That’s why I’m putting together my own training materials on Process Modeling with BPMN.  Exception handling is too important to be tossed over the wall to the programmers.  Real training and a methodology can give process analysts the tools they need to define how exceptions should be handled in their critical business processes. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bruce</title>
		<link>http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/comment-page-1/#comment-206</link>
		<dc:creator>bruce</dc:creator>
		<pubDate>Thu, 07 Sep 2006 15:17:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/2006/09/06/whats-wrong-with-this-picture/#comment-206</guid>
		<description>Samarin,
I agree that &lt;i&gt;stylistically&lt;/i&gt; the first diagram (images 1 and 2) could have been better organized using subprocesses, with a simpler high-level view using the collapsed subprocess notation -- as you do in your example.  But I'm talking about actual &lt;i&gt;errors&lt;/i&gt; -- things that are either illegal per the spec or the semantics make no sense.</description>
		<content:encoded><![CDATA[<p>Samarin,<br />
I agree that <i>stylistically</i> the first diagram (images 1 and 2) could have been better organized using subprocesses, with a simpler high-level view using the collapsed subprocess notation &#8212; as you do in your example.  But I&#8217;m talking about actual <i>errors</i> &#8212; things that are either illegal per the spec or the semantics make no sense.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
