<?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: Why Separate Rules from Requirements</title>
	<atom:link href="http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/</link>
	<description>Software product success.</description>
	<lastBuildDate>Sun, 12 Feb 2012 19:10:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>By: marquinhosarm</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-589441</link>
		<dc:creator>marquinhosarm</dc:creator>
		<pubDate>Fri, 07 May 2010 02:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-589441</guid>
		<description>&lt;span class=&quot;topsy_trackback_comment&quot;&gt;&lt;span class=&quot;topsy_twitter_username&quot;&gt;&lt;span class=&quot;topsy_trackback_content&quot;&gt;By @sehlhorst: Why Separate Rules from Requirements http://bit.ly/TqND&lt;/span&gt;&lt;/span&gt;</description>
		<content:encoded><![CDATA[<p><span class="topsy_trackback_comment"><span class="topsy_twitter_username"><span class="topsy_trackback_content">By @sehlhorst: Why Separate Rules from Requirements <a href="http://bit.ly/TqND" rel="nofollow">http://bit.ly/TqND</a></span></span></span></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Locke</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-514809</link>
		<dc:creator>David Locke</dc:creator>
		<pubDate>Mon, 17 Aug 2009 05:41:27 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-514809</guid>
		<description>In reply to AlanAJ, you wouldn&#039;t end up with a system that was composed solely of business rules. 

A radio receiver receives a signal composed of some carried content, and a carrier wave. The carrier wave has a fixed frequency and modulation. The radio removes the carrier wave from the signal,and then outputs the signal to the speaker. 

Software does the same thing. In the &quot;Hello World&quot; program, the text &quot;Hello World is the carried content. The rest of the code is carrier. We&#039;ve written this program in a wide variety of programming languages and technologies. In the end, regardless of the various implementations, the program just display &quot;Hello World.&quot;

Carrier and carried is a generic characteristic of all media with software being a media. 

In code, we make decisions in the carrier as well as in the carried. In business rules technology, the carrier is the responsibility of the programmer, and the rules are left to business managers. The carrier decisions can be left to the requirements. The carried decisions will constitute the business rules of the application. 

It might be beneficial to treat the carrier decisions as rules, since they are volatile, but it will be critical that the carried decisions be business rules. 

The real savings with business rules technology is that the manager will no longer need programmer support to change a business policy. With business rules technology, a manger change the policies driving their organization quickly, so the business will be more responsive to real world business drivers.</description>
		<content:encoded><![CDATA[<p>In reply to AlanAJ, you wouldn&#8217;t end up with a system that was composed solely of business rules. </p>
<p>A radio receiver receives a signal composed of some carried content, and a carrier wave. The carrier wave has a fixed frequency and modulation. The radio removes the carrier wave from the signal,and then outputs the signal to the speaker. </p>
<p>Software does the same thing. In the &#8220;Hello World&#8221; program, the text &#8220;Hello World is the carried content. The rest of the code is carrier. We&#8217;ve written this program in a wide variety of programming languages and technologies. In the end, regardless of the various implementations, the program just display &#8220;Hello World.&#8221;</p>
<p>Carrier and carried is a generic characteristic of all media with software being a media. </p>
<p>In code, we make decisions in the carrier as well as in the carried. In business rules technology, the carrier is the responsibility of the programmer, and the rules are left to business managers. The carrier decisions can be left to the requirements. The carried decisions will constitute the business rules of the application. </p>
<p>It might be beneficial to treat the carrier decisions as rules, since they are volatile, but it will be critical that the carried decisions be business rules. </p>
<p>The real savings with business rules technology is that the manager will no longer need programmer support to change a business policy. With business rules technology, a manger change the policies driving their organization quickly, so the business will be more responsive to real world business drivers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Primatek Consulting Blog by Eric Charpentier &#187; Blog Archive &#187; On Business Rules and Requirements</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-460225</link>
		<dc:creator>Primatek Consulting Blog by Eric Charpentier &#187; Blog Archive &#187; On Business Rules and Requirements</dc:creator>
		<pubDate>Wed, 19 Nov 2008 16:49:57 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-460225</guid>
		<description>[...] Why Separate Rules from Requirements by Scott Sehlhorst [...]</description>
		<content:encoded><![CDATA[<p>[...] Why Separate Rules from Requirements by Scott Sehlhorst [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Taylor's Decision Management</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-162005</link>
		<dc:creator>James Taylor's Decision Management</dc:creator>
		<pubDate>Wed, 10 Oct 2007 17:59:21 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-162005</guid>
		<description>&lt;strong&gt;Requirements, business process and business rules...&lt;/strong&gt;

Roeland had an interesting post this week on the need for a new approach to requirements and BPM&#039;s role in that. He outlined the three classic causes of problems with projects (Lack of User Input, Incomplete Requirements &amp; Specifications, Changing......</description>
		<content:encoded><![CDATA[<p><strong>Requirements, business process and business rules&#8230;</strong></p>
<p>Roeland had an interesting post this week on the need for a new approach to requirements and BPM&#8217;s role in that. He outlined the three classic causes of problems with projects (Lack of User Input, Incomplete Requirements &amp; Specifications, Changing&#8230;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-158311</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Sat, 29 Sep 2007 04:03:13 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-158311</guid>
		<description>Thanks all for the comments!</description>
		<content:encoded><![CDATA[<p>Thanks all for the comments!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SNJ Tech Consulting</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-150569</link>
		<dc:creator>SNJ Tech Consulting</dc:creator>
		<pubDate>Sat, 15 Sep 2007 03:24:55 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-150569</guid>
		<description>Hi there. Great post. Too many analysts get caught up in business rules and design, confusing themselves and the business.

Cheers, 

http://www.snjtechconsulting.com.au/</description>
		<content:encoded><![CDATA[<p>Hi there. Great post. Too many analysts get caught up in business rules and design, confusing themselves and the business.</p>
<p>Cheers, </p>
<p><a href="http://www.snjtechconsulting.com.au/" rel="nofollow">http://www.snjtechconsulting.com.au/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tommmaso Bargiacchi</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-149026</link>
		<dc:creator>Tommmaso Bargiacchi</dc:creator>
		<pubDate>Wed, 12 Sep 2007 16:31:43 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-149026</guid>
		<description>That&#039;s why we&#039;ve created BLEX (Business Logic Express), it&#039;s a visual language that allows to declare rules, actions and tests.

Belive me, when you start using something like this, the green line is growing even faster and there is no reason to hide businness logic in the code.

&quot;All the variables are constants, all the constants are variable&quot;</description>
		<content:encoded><![CDATA[<p>That&#8217;s why we&#8217;ve created BLEX (Business Logic Express), it&#8217;s a visual language that allows to declare rules, actions and tests.</p>
<p>Belive me, when you start using something like this, the green line is growing even faster and there is no reason to hide businness logic in the code.</p>
<p>&#8220;All the variables are constants, all the constants are variable&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AlanAJ</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-148966</link>
		<dc:creator>AlanAJ</dc:creator>
		<pubDate>Wed, 12 Sep 2007 14:40:31 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-148966</guid>
		<description>In this comment, AlanAJ is a link to this website:  http://c2.com/cgi/wiki?BusinessRulesMetabase</description>
		<content:encoded><![CDATA[<p>In this comment, AlanAJ is a link to this website:  <a href="http://c2.com/cgi/wiki?BusinessRulesMetabase" rel="nofollow">http://c2.com/cgi/wiki?BusinessRulesMetabase</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AlanAJ</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/comment-page-1/#comment-148964</link>
		<dc:creator>AlanAJ</dc:creator>
		<pubDate>Wed, 12 Sep 2007 14:37:45 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comment-148964</guid>
		<description>Yes, there are benefits from separating business rules from other requirements, just as there are benefits from separating out data requirements, GUI standards and workflow (to name but three other types of requirement).  And the costs of separating them out tend to be negligible (so long as nobody gets into prolonged discussions about how to separate them).

I&#039;m not sure that it allows you to write better software, faster.  But I would suggest that it allows you to start writing it sooner.  This is a good example of the benefits of an iterative approach.  Once the design decision has been made about how a business rule will be implemented, some of the details (and it should be clear which ones) can be left to be finalised later in the development process, so they are removed from the critical path.  It is a good rule of thumb that the longer it takes the stakeholders to define their business rule for you, the more likely it is to change... and sooner rather than later.

Another good rule of thumb, though, is that the more you abstract the implementation of business rules, and the more you try to make it easy to maintain them, the higher your costs will be... initially.  So I would quibble with your otherwise excellent graph.  I think the general case should be that the maroon line begins by leading the green line (a small &lt;i&gt; decrease &lt;/i&gt; in time to deploy) and the green line crosses it later.  How much later will depend on the extent to which, for the green line, there was worth-while investment in enabling the future timescales to be shorter.  So the bigger the initial delay, the less time is required for each iteration and the greater the &quot;acceleration&quot;. 

In conclusion, I would note that you omit one very good reason for abstracting &quot;all&quot; rules, rather than only the more volatile ones.  This is that making a distinction based on volatility would imply a design decision.  (From a theoretical standpoint, I don&#039;t believe it is actually possible to abstract all rules, since you would, if successful, end up with only rules.  So from a practical standpoint:  How do you recognise what not to abstract?) 

Interested readers might like to consider divergent opinions here:
&lt;a href=&quot;http://c2.com/cgi/wiki?BusinessRulesMetabase&quot; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Yes, there are benefits from separating business rules from other requirements, just as there are benefits from separating out data requirements, GUI standards and workflow (to name but three other types of requirement).  And the costs of separating them out tend to be negligible (so long as nobody gets into prolonged discussions about how to separate them).</p>
<p>I&#8217;m not sure that it allows you to write better software, faster.  But I would suggest that it allows you to start writing it sooner.  This is a good example of the benefits of an iterative approach.  Once the design decision has been made about how a business rule will be implemented, some of the details (and it should be clear which ones) can be left to be finalised later in the development process, so they are removed from the critical path.  It is a good rule of thumb that the longer it takes the stakeholders to define their business rule for you, the more likely it is to change&#8230; and sooner rather than later.</p>
<p>Another good rule of thumb, though, is that the more you abstract the implementation of business rules, and the more you try to make it easy to maintain them, the higher your costs will be&#8230; initially.  So I would quibble with your otherwise excellent graph.  I think the general case should be that the maroon line begins by leading the green line (a small <i> decrease </i> in time to deploy) and the green line crosses it later.  How much later will depend on the extent to which, for the green line, there was worth-while investment in enabling the future timescales to be shorter.  So the bigger the initial delay, the less time is required for each iteration and the greater the &#8220;acceleration&#8221;. </p>
<p>In conclusion, I would note that you omit one very good reason for abstracting &#8220;all&#8221; rules, rather than only the more volatile ones.  This is that making a distinction based on volatility would imply a design decision.  (From a theoretical standpoint, I don&#8217;t believe it is actually possible to abstract all rules, since you would, if successful, end up with only rules.  So from a practical standpoint:  How do you recognise what not to abstract?) </p>
<p>Interested readers might like to consider divergent opinions here:<br />
<a href="http://c2.com/cgi/wiki?BusinessRulesMetabase" rel="nofollow"></a></p>
]]></content:encoded>
	</item>
</channel>
</rss>

