<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tyner Blain &#187; Process Flow</title>
	<atom:link href="http://tynerblain.com/blog/category/process-flow/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog</link>
	<description>Software product success.</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:38:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>The Impact of a Hidden Decision</title>
		<link>http://tynerblain.com/blog/2008/10/08/hidden-decision-impact/</link>
		<comments>http://tynerblain.com/blog/2008/10/08/hidden-decision-impact/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 03:20:11 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Business Rules]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Process Flow]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[business process analysis]]></category>
		<category><![CDATA[business process optimization]]></category>
		<category><![CDATA[hidden business rules]]></category>
		<category><![CDATA[hidden decisions]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=725</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F10%2F08%2Fhidden-decision-impact%2F", "style": "big", "title": "The Impact of a Hidden Decision" }); Business rules are often hidden in processes as hidden decisions.  Once you discover that hidden decision, how do you communicate the impact of exposing and managing the decision? Hidden Decision In our previous article on hidden business rules and enterprise decision management, [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F10%252F08%252Fhidden-decision-impact%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22The%20Impact%20of%20a%20Hidden%20Decision%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F10%2F08%2Fhidden-decision-impact%2F", "style": "big", "title": "The Impact of a Hidden Decision" });</script></div>
<p><img class="alignnone" title="hiding again" src="http://photos.smugmug.com/photos/389895783_nZ9LB-L.jpg" alt="" width="250" height="200" /></p>
<p>Business rules are often hidden in processes as hidden decisions.  Once you discover that hidden decision, how do you communicate the impact of exposing and managing the decision?</p>
<p><span id="more-725"></span></p>
<h2>Hidden Decision</h2>
<p>In our previous article on <a title="hidden decisions" href="http://tynerblain.com/blog/2008/09/23/hidden-business-rule-example/">hidden business rules</a> and enterprise decision management, we looked at a process that had a hidden decision.</p>
<p>First, take a look at the process with the decision still hidden:</p>
<p><img class="alignnone" title="decision hidden in business process" src="http://sehlhorst.smugmug.com/photos/379161161_Rk7DQ-L.gif" alt="" width="434" height="574" /></p>
<p>Here&#8217;s the process (with the decision exposed) from that article:</p>
<p><img class="alignnone" title="process with hidden decision" src="http://sehlhorst.smugmug.com/photos/379161208_6FwGv-L.gif" alt="" width="396" height="600" /></p>
<p>The decision that was hidden was an implicit decision &#8211; &#8220;Pick One?&#8221; &#8211; for which the answer was always &#8220;No.&#8221;  After making this discovery, and communicating with your team, you then have to decide if you are going to make the decision explicit.  Making the decision explicit will involve defining the business rules for how to make the decision, and (if done in software) implementing the decision, or the ability for a person to make the decision.</p>
<h2>Impact of a Decision</h2>
<p>The diagrams above allude to the fact that there is money to be made in the process, in the &#8220;Continue Automated Process&#8221; step.  We need to provide a better understanding of how / when money is made.  A slight expansion of the process flow above (replacing the &#8220;Continue Automated Process&#8221; with a couple steps, looks like the following:</p>
<p><img class="alignnone" title="process with decision impact" src="http://photos.smugmug.com/photos/389905079_vFAZo-O.gif" alt="" width="450" height="805" />[<a title="larger version of business process with hidden decision" href="http://photos.smugmug.com/photos/389905095_heoaB-O.gif">click for larger version</a>]</p>
<p>The last step introduces a real-world decision: &#8220;Sell products?&#8221; and only when the answer is yes does the process &#8220;Earn Revenue.&#8221;</p>
<p>If you&#8217;re analytically minded, you can apply percentages to each branch of each decision, and add everything up to figure out an answer.  That might be reasonable for a simple example like this one, but it can become too complex with a more complicated process.</p>
<p>There&#8217;s an easier way.  And since the goal is to <em>communicate</em> the impact to someone, you want an easier way.</p>
<h2>Truth Tables and Decisions</h2>
<p>A truth tables is a tried and true artifact for describing combined sets of decisions.  You can use it effectively to extract information from a decision-heavy process diagram.  Consider the following application of a truth table to the process above:</p>
<p><img class="alignnone" title="complete truth table" src="http://photos.smugmug.com/photos/389892821_FLJPK-L.jpg" alt="" width="450" height="157" /> [<a title="complete truth table" href="http://photos.smugmug.com/photos/389892784_Vz5V6-L.jpg">larger version</a>]</p>
<p>Each of the decisions in the process flow has a column.  Each row represents a unique path through the flow.  Each cell contains the result of the decision, for that path.  Note that when a path does not involve a decision, there is no value in the cell.</p>
<p>That provides a comprehensive view of the process, which you could build upon.  However, in this case, you are focusing on the impact of the hidden decision (&#8220;Pick One&#8221;).  The following paths, from the truth table, involve that decision:</p>
<p><img class="alignnone" title="hidden decision in truth table" src="http://photos.smugmug.com/photos/389892796_hUbg7-L.jpg" alt="" width="450" height="157" /> [<a title="larger hidden decisions in truth table" href="http://photos.smugmug.com/photos/389892709_We9ps-L.jpg">larger version</a>]</p>
<p>Ignoring the other paths, and re-organizing, you find the following:</p>
<p><img class="alignnone" title="hidden NO" src="http://photos.smugmug.com/photos/389892829_fUfj8-L.jpg" alt="" width="450" height="49" /> [<a title="larger hidden no" href="http://photos.smugmug.com/photos/389892771_dC6Lw-L.jpg">larger version</a>]</p>
<p>50% of the time, when &#8220;Many&#8221; results are found in the first decision in the process, <em>if</em> you pick one of the results, you will earn revenue.</p>
<p><img class="alignnone" title="hidden yes" src="http://photos.smugmug.com/photos/389892809_cWoTK-L.jpg" alt="" width="450" height="66" /> [<a title="larger hidden yes" href="http://photos.smugmug.com/photos/389892758_HQbmB-L.jpg">larger version</a>]</p>
<p>When you do not pick one, 20% of the time, the customer (or user) abandons the process.  For the users that do not abandon the process, you earn revenue 50% of the time.  Taking both into account, you earn revenue only 40% of the time.</p>
<h2>Adding Up the Impacts</h2>
<p>When there are &#8220;Many&#8221; results from search, you can improve the performance of this part of your process by 20% &#8211; specifically, you increase revenue by 20%.  But only if you always &#8220;Pick One&#8221; of the many results. You can extend this analysis to determine the percentage of None/One/Many outputs from the search at the start of the process, and determine an overall impact on the process.  If search returned many results 10% of the time, you can increase revenue (overall) by 1% by always picking one of those results.  That gives you the business justification to <a title="roi calculation tips" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">calculate ROI </a>on exposing the hidden decision.</p>
<p>The end result is that you have a simple way to communicate the impacts (truth table) in the language of stakeholders (ROI).</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+The+Impact+of+a+Hidden+Decision+http%3A%2F%2Fbit.ly%2FftuPGt+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/10/08/hidden-decision-impact/&amp;t=The+Impact+of+a+Hidden+Decision" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/10/08/hidden-decision-impact/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hidden Business Rule Example</title>
		<link>http://tynerblain.com/blog/2008/09/23/hidden-business-rule-example/</link>
		<comments>http://tynerblain.com/blog/2008/09/23/hidden-business-rule-example/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 04:26:17 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Business Rules]]></category>
		<category><![CDATA[Process Flow]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[enterprise decision management]]></category>
		<category><![CDATA[hidden business rule example]]></category>
		<category><![CDATA[hidden business rules]]></category>
		<category><![CDATA[process flow example]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=704</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F09%2F23%2Fhidden-business-rule-example%2F", "style": "big", "title": "Hidden Business Rule Example" }); A business process is not just a sequence of steps.  A business process is a series of decisions and actions.  Some decisions are obvious and can be actively managed.  Some decisions are hidden, and until you discover them, you can&#8217;t manage or improve them.  [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F09%252F23%252Fhidden-business-rule-example%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Hidden%20Business%20Rule%20Example%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F09%2F23%2Fhidden-business-rule-example%2F", "style": "big", "title": "Hidden Business Rule Example" });</script></div>
<p><img class="alignnone" title="hidden" src="http://sehlhorst.smugmug.com/photos/379162662_SF7Ev-L.jpg" alt="Little girl hiding by covering her face" width="250" height="167" /></p>
<p>A business process is not just a sequence of steps.  A business process is a series of decisions and actions.  Some decisions are obvious and can be actively managed.  Some decisions are hidden, and until you discover them, you can&#8217;t manage or improve them.  Here is a real-world example of the discovery of a hidden enterprise decision.</p>
<p><span id="more-704"></span></p>
<h2>Enterprise Decision Management</h2>
<p>Over the past couple of years, I&#8217;ve collaborated with and become friends with <a title="Neil and James' book" href="http://www.smartenoughsystems.com/">James Taylor</a>, an enterprise decision management guru.  He and Neil Raden wrote <em>the</em> book, <a title="smart enough systems at amazon" href="http://www.amazon.com/dp/0132347962?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0132347962&amp;creative=373489&amp;camp=211189"><em>Smart (Enough )Systems</em></a> , you should get it if you don&#8217;t already have it.    It is sitting on my desk right now, and every time I pick it up I have to mark another page with a post-it note so I can find that good idea again later.  If you aren&#8217;t convinced, listen to this <a title="smart enough systems interview" href="http://tynerblain.com/blog/2007/06/25/smart-enough-systems/">interview with James</a> about their book.</p>
<p>James and I developed <a title="rules and requirements in software at ibrf" href="http://tynerblain.com/blog/2007/09/06/10th-ibrf/">a presentation, <em>Getting It Right: Rules and Requirements in Software</em></a> last fall for the International Business Rules forum.  Below is a slideshare of a shortened version of the presentation, delivered to the Austin IIBA this spring.</p>
<div id="__ss_479352" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Getting It Right" href="http://www.slideshare.net/ssehlhorst/getting-it-right-479352?type=powerpoint">Getting It Right</a><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=getting-it-right-20080619-1214103759615632-8&amp;stripped_title=getting-it-right-479352" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=getting-it-right-20080619-1214103759615632-8&amp;stripped_title=getting-it-right-479352" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View SlideShare <a style="text-decoration:underline;" title="View Getting It Right on SlideShare" href="http://www.slideshare.net/ssehlhorst/getting-it-right-479352?type=powerpoint">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/tyner">tyner</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/blain">blain</a>)</div>
</div>
<p>A large portion of that talk was dedicated to discovering hidden business rules within use cases.  The reason we dedicated so much time to rules discovery is that the first step to managing decisions across your enterprise is to discover and <a title="isolating rules from requirements" href="http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/">isolate those decisions</a>!  In this article, we will look at an example of a decision hidden within a simple business process.</p>
<h2>A Simple Business Process</h2>
<p>The following is a simple real-world business process.  The details of the steps in the process have been modified to clarify this example.</p>
<p><img class="alignnone" title="Simple customer search process" src="http://sehlhorst.smugmug.com/photos/379161150_BRKJ6-O.gif" alt="" width="310" height="574" /></p>
<p>The process flow example above depicts an automated process that involves searching internal systems for an existing customer (record).  There are three possible outcomes from the search, shown above from left to right: no results are returned from the search, a single result is returned, or multiple results are returned.  When no results are returned, a new customer (record) is created, and the automated process continues.  When a single result is returned, that customer is used and the process continues.  When multiple results are returned, a new customer (record) is created and used, but the automated process is interrupted and a manual intervention is required before the process can continue.</p>
<p>This third path confused me when it was initially presented to me this way by the subject matter expert who explained the process to me. The business creates a new customer (record) even when multiple results are found because they don&#8217;t have time to determine which result is the right one, within the automated process.  They would rather create a duplicate customer (record), continue with the automated process, and clean up the mess later.  That&#8217;s much better than losing a sale (a very real risk because of delays due to manual oversight.</p>
<p>As part of this <a title="elicitation techniques for rules and requirements" href="http://tynerblain.com/blog/2007/09/13/elicitation-techniques-2/">elicitation session</a>, I applied a variation on <a title="active listening tips" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">active listening</a> by talking to the diagram above (on a whiteboard) and enhancing it.</p>
<h2>Impacts and Decisions</h2>
<p>One technique that is effective in reaching agreement, generally, is to inspire the other person to &#8220;have your idea&#8221; so that it becomes their idea.  Once I understood the process above, I realized that there was an implicit decision in the process.  Instead of making the statement &#8211; &#8220;you have a hidden decision in your process&#8221; and then hoping the business stakeholder (also in the room) would care, I chose to start with the impact.  Presenting the impact of a hidden decision first might expose that decision and trigger acknowledgment of the hidden decision by the stakeholders.  The following diagram shows how I first modified the flow on the whiteboard.</p>
<p><img class="alignnone" title="impact of decision on process flow" src="http://sehlhorst.smugmug.com/photos/379161161_Rk7DQ-L.gif" alt="" width="434" height="574" /></p>
<p>The subject matter experts had told me that when there is a manual intervention in the otherwise automated process, the process is sometimes abandoned.  Imagine customers walking away from an online sale because (for some reason) the sale cannot be completed without an unexpected delay.  I represented this with the &#8220;Abandon Process?&#8221; decision in the flow.  This decision was never drawn before, because it is the customer&#8217;s decision, and it can not be controlled by the business.</p>
<p>I also pointed out that the business makes money only through the last step in the process, &#8220;Continue Automated Process.&#8221;  My goal was to accentuate that this abandonment decision has a very real value.  The stakeholder and subject matter experts agreed &#8211; this was something they had told me previously.  But they had never drawn it directly within their process.</p>
<p>As it turns out, this did not trigger any additional insights.  It did however, set the stage for describing the relevance of the hidden decision.</p>
<h2>The Hidden Decision</h2>
<p>After setting the stage, I updated the process flow diagram to expose the hidden decision.</p>
<p><img class="alignnone" title="Example of a hidden decision in a process flow" src="http://sehlhorst.smugmug.com/photos/379161208_6FwGv-L.gif" alt="" width="396" height="600" /></p>
<p>The hidden decision is the decision of picking one of the many search results (top right corner of the diagram).  Your first response may be that the business is not picking any of the results.  My response is that choosing <em>none</em> of the provided results is a choice, just as picking any one of them would be.</p>
<p>This view of the process highlights that <em>if</em> the business could automatically choose a &#8220;best&#8221; result when searching returns multiple results, the business would avoid the risk of abandoned processes due to manual oversight.</p>
<p>With the current process, the business stakeholder acknowledged that the hidden business rule is &#8221; pick none of the results 100% of the time&#8221;.  With current project schedules, there is nothing that can be done about that in time for the immediate software release (of the software that embodies this process).</p>
<p>Before our meeting was over, the business stakeholder added determination of future-state business rules to define the &#8220;how do we pick one?&#8221; decision to the deliverables for the next release.</p>
<h2>A Smart (Enough) Decision</h2>
<p>James and Neil (I would guess) will tell you that ideally, the decision (should we pick one, and which one should we pick) should be informed by the process.  A feedback loop can be created where we identify the customers (the people who might abandon the process), and determine statistically which ones are most likely to abandon the process.  For those people, it is especially important that we be able to &#8220;pick one&#8221; from a set of search results, thus completely avoiding the opportunity to abandon the process.  For those people who are unlikely to abandon the process, the &#8220;pick one&#8221; decision is less important.</p>
<p>If it were easy to &#8220;pick one&#8221;, we would consider changing the way search is handled to never return multiple results.  In this real world example, that is not an option (I&#8217;m intentionally not sharing the reasons, to avoid disclosing too much).  The only option in this case is for the business to respond intelligently (enough) when presented with multiple search results.</p>
<h2>Conclusion</h2>
<p>This process flow example has two primary outcomes &#8211; generate profits, or don&#8217;t generate profits.  The first modification of the process flow makes that possibility explicit.  That allows for an analysis to determine if there are any hidden decisions in the flow (there are) that impact the outcomes of the flow.  There may be other hidden decisions, but they do not impact the profitability of this process, so they were not explored.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Hidden+Business+Rule+Example+http%3A%2F%2Fbit.ly%2FfHOKh6+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/09/23/hidden-business-rule-example/&amp;t=Hidden+Business+Rule+Example" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/09/23/hidden-business-rule-example/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Requirements for Enterprise Architecture: First Look</title>
		<link>http://tynerblain.com/blog/2007/12/03/architecture-requirements/</link>
		<comments>http://tynerblain.com/blog/2007/12/03/architecture-requirements/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 05:30:27 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Business Process Modeling]]></category>
		<category><![CDATA[Process Flow]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[application requirements]]></category>
		<category><![CDATA[architecture requirements]]></category>
		<category><![CDATA[designing architectures]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements and design]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/12/03/architecture-requirements/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F12%2F03%2Farchitecture-requirements%2F", "style": "big", "title": "Requirements for Enterprise Architecture: First Look" }); Traditional requirements happen after a multi-system architecture has been defined. But what about the requirements that feed into that architecture? The requirements that drive the enterprise architecture decisions in the first place? We haven&#8217;t talked about those before. Setting The Stage The [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F12%252F03%252Farchitecture-requirements%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Requirements%20for%20Enterprise%20Architecture%3A%20First%20Look%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F12%2F03%2Farchitecture-requirements%2F", "style": "big", "title": "Requirements for Enterprise Architecture: First Look" });</script></div>
<p><img alt="the hague" title="the hague" src="http://www.smugmug.com/photos/228482567-L.jpg" /><br />
Traditional requirements happen after a multi-system architecture has been defined.</p>
<p>But what about the requirements that feed into that architecture?  The requirements that drive the enterprise architecture decisions in the first place?  We haven&#8217;t talked about those before.</p>
<p><span id="more-606"></span></p>
<h2>Setting The Stage</h2>
<p>The typical enterprise software requirements project ecosystem looks something like the following:</p>
<ol>
<li>An existing application exists within a network of (logically) interconnected applications that collectively comprise an enterprise architecture.</li>
<li>Business processes exist, each of which utilizes one or more of these applications to achieve tangible business objectives.</li>
<li>Some of these applications have user interfaces, and therefore have users who are trying to achieve the goals associated with the business processes.</li>
</ol>
<p>Within that environment, the typical enterprise software requirements project looks very familiar:</p>
<ol>
<li>There are new processes, or capabilities that are desired by the business.</li>
<li>An enterprise architect has decided that these capabilities will be embodied into one or more of the existing applications.  The end result is that each application has a &#8220;defined scope&#8221;, and a set of goals.</li>
<li>The requirements project for each application under development is initiated with these objectives and boundaries.</li>
</ol>
<p>What if you are tasked with defining the ecosystem, instead of defining a product within a pre-defined ecosystem?  How would you go about it?</p>
<ul>
<li>The architect makes design decisions about what each system in the architecture does.</li>
<li>The developer makes design decisions about what each class in the application does.</li>
</ul>
<p>Isn&#8217;t this just design, <em>writ large</em>?  Why should business analysts or product managers be involved?  This is just an implementation activity on steroids.</p>
<h2>What We Are NOT Talking About</h2>
<p>There is a very good article at IBM that defines architectural requirements as application requirements that <em>have significant impact on the architecture of a single application</em>.  That is not what we are talking about.  <a title="architectural requirements" href="http://www.ibm.com/developerworks/rational/library/4706.html">Here&#8217;s a link</a>, since that is a good article &#8211; if that&#8217;s what you were hoping to read today.</p>
<h2>The Lifecycle of Creating Software</h2>
<p>In <a title="requirements documents from different perspectives" href="http://tynerblain.com/blog/2006/05/11/requirements-documents-one-mans-trash/"><em>One Man&#8217;s Trash</em></a>, we looked at the life cycle of developing a software product from the perspective of the contributors to that product.</p>
<p><img title="requirements life cycle from different perspectives" alt="requirements life cycle from different perspectives" src="http://sehlhorst.smugmug.com/photos/69105260-M.png" /><br />
Our analysis was of a single product &#8211; not an application that has to live in an ecosystem with other products.  <strong>That analysis  showed four layers of solving the problem, but only one meta-layer of solving the problem</strong>.</p>
<p>In the uselessly big picture view, there are multiple layers of &#8220;requirements&#8221; and &#8220;design&#8221; throughout the life cycle.  When defining requirements within the &#8220;single software product&#8221; scope we wrote about before, most of the following is actually a distraction.</p>
<ol>
<li>Companies and individuals have money to invest, and they have goals associated with those investments.</li>
<li>They will choose a mix of investments, where that mix is designed to achieve a set of objectives.
<ol>
<li>Manage volatility</li>
<li>Generate ROI (where the return is utility, but is easiest to simplify as a financial return)</li>
<li>Mitigate risk</li>
</ol>
</li>
<li>Within the constraints imposed by that mix strategy, they design a portfolio.  That portfolio delegates roles to individual investments.  Investment 1 is responsible for generating a high return at a high risk.  Investment 2 is responsible is designed to hedge investment 1, mitigating risk while reducing overall return.  Investment 3 may be responsible for generating a smaller, but highly reliable return.  Each investment thus has a scope and a set of goals.</li>
<li>If one of those investments is in a company, it now has a scope and a set of goals &#8211; and a large company will develop its own portfolio of investments &#8211; choices in how it allocates funds internally.  One of those investments may be a choice to operate in a particular industry, where those operations are defined by a set of goals and constraints.  [Note - conglomerates may have additional, recursive sets of layers 1 through 4, as they manage a portfolio of companies.]</li>
<li>Those operations may manifest as a set of business processes, initiated by people using software, and supported by other systems internally.  The choice to use people, or software, and how to organize the systems is one of design.</li>
<li>Once that design choice is made, each individual piece of software has a defined scope &#8211; a set of responsibilities within the larger architecture.  And those responsibilities become goals and constraints within the context of a set of contracts between the systems.  <strong>The entire chart above lives within this one step in the bigger picture</strong>.</li>
</ol>
<p>When managing software requirements in the typical enterprise software project, this scope and these goals is already defined.  Here are a couple examples of an application being defined within an enterprise architecture:</p>
<ul>
<li>A company needs to employ direct sales reps to sell their products.  The company has a software application that the reps use to <strong>sell the products</strong>, and that application is integrated with another system that manufacturing uses to <strong>fulfill the orders</strong>.  An accounting system also exists that is responsible for <strong>collecting funds due</strong> for each of the orders.  Sales reps have to be compensated for their work, and a compensation system is identified to <strong>calculate sales rep compensation</strong>.  It must be integrated with the existing systems and is responsible for determining how much the reps should be paid.  The compensation system must integrate with the payroll system that is responsible <strong>for paying the sales reps</strong>.</li>
</ul>
<p>Each of the applications (sales, fulfillment, payroll, collections, compensation calculation) has a defined role to play in the architecture.  A typical requirements project would be to define the requirements for the compensation system.  It helps to understand the ecosystem &#8211; the context in which this product has defined responsibilities &#8211; but that is generally a constant, not a variable.  So, most requirements books, tools, and techniques are designed to operate with a presumption of a fixed set of goals and scope. The goals and scope of the product usually need to be discovered and validated, but they are perceived as immutable &#8211; at least within the timeframe of the project.</p>
<p>&#8220;Standalone software product&#8221; product management operates under essentially the same principles &#8211; the company is assumed to have a strategy, a target market, goals and a scope for the product.  Requirements work for a standalone product is similar to the requirements work for an enterprise application that &#8220;knows its place&#8221; within an enterprise architecture.</p>
<p>But what about the requirements that drove the enterprise architect to choose an approach that involves separate applications for sales, fulfillment, collections, payroll, and compensation?  These are architecture requirements</p>
<h2>Defining Architecture Requirements</h2>
<p>We know <a title="structured requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">how to define and manage requirements</a> within a predefined environment.  Start with goals, and work our way down to &#8220;design.&#8221;  Other people on the team will start at design, and continue through development, test, deployment, and adoption.  This is a pretty comfortable environment.  It is also an effective environment.  When a problem involves the interaction of multiple systems, an efficient way to tackle that problem is through decomposition.  Just as an investor decomposes a portfolio into individual investments, a company will decompose enterprise software into multiple discrete systems.  And a developer will decompose a single system into multiple classes (or multiple modules, each made of</p>
<p>And we know the importance of requirements &#8211; the most successful teams don&#8217;t go immediately from goals and constraints to development.  Multiple studies demonstrate the cost-effectiveness of using requirements effectively to prevent mistakes in implementation.  It stands to reason that we are missing an extremely large opportunity if we don&#8217;t apply equivalent rigor to the architectural decisions that lead to the definition of those goals and constraints.  So how do we go about defining the requirements that feed into the architecture?</p>
<p><strong>Here&#8217;s a <a title="enterprise architecture essay" href="http://www.enterpriseunifiedprocess.com/essays/enterpriseArchitecture.html">really good article by Scott Ambler</a> </strong>that provides a more detailed perspective, and practical guidance for enterprise architects.  The rest of this article is geared towards business analysts who find themselves supporting enterprise architects pursuing a path like the one Scott describes.</p>
<p>The first step is to identify the business processes &#8211; <em>all</em> of the business processes that are relevant.  Using our example, these are the compensation-management processes, sales and fulfillment processes, payroll processes, and collection processes.</p>
<p>Part of defining these processes is identifying the <a title="stakeholder analysis" href="http://tynerblain.com/blog/2007/03/13/visualize-stakeholder-analysis/">stakeholders</a>.  We&#8217;re dealing with a much larger scope here &#8211; so <a title="stakeholder value analysis" href="http://tynerblain.com/blog/2007/10/25/stakeholder-value-matrix/">valuation of the different stakeholder goals</a> becomes much harder.  It is easier to prioritize &#8220;sell bundled products&#8221; versus &#8220;sell customizable products&#8221; than it is to prioritize &#8220;pay sales reps&#8221; versus &#8220;fulfill orders.&#8221;</p>
<p>A very high level view of the processes is enough to do an first iteration of an architectural design. This is also sometimes called a straw man architecture, or candidate architecture.  Notice that we said &#8220;first iteration.&#8221;</p>
<p>The next step &#8211; and arguably, it is a concurrent step &#8211; is to define the boundaries between those systems.  Where / when does the order placement system (first system) transfer responsibility to the fulfillment system (second system)?  And what does the first system have to provide to the second system for fulfillment (and possibly collections and compensation) systems to do their jobs?  And how must those systems respond?  What information must they provide to meet user requirements?  What information must they provide to satisfy audit requirements or regulatory rules?</p>
<p>While this looks like design, I would argue that this is also <em>feasibility</em> analysis.  The architects are <em>designing</em> the enterprise architecture &#8211; or the system under development.  But that system is also an <em>input</em> into the requirements processes for each of the individual applications in the architecture.  The scope of each individual application is defined by the system boundaries.  The goals for each individual application are a direct result of the responsibilities that are identified by mapping the business processes to the individual applications.</p>
<p>Now we have a candidate architecture, a set of identified business processes, and a mapping of those processes onto that architecture &#8211; defining the responsibilities of each system.  This yields a feasibility analysis by the architects.  They will take this assessment (and any identified gaps), and modify the architecture &#8211; adding or removing systems, changing responsibilities, and otherwise iterating on the candidate architecture.  Then they will review and iterate again &#8211; until there is a feasible design &#8211; just as developers will invest in the design of an application until there is a feasible solution to meet the application requirements.  And this process should involve collaboration with stakeholders, and revisiting (or even redesign) of business processes with the candidate architectures in mind.</p>
<h2>Conclusion</h2>
<p>Developing architecture requirements (and architectures) is an iterative layering exercise. As much as it isn&#8217;t &#8220;our job&#8221;, our contributions to defining the architecture requirements will not only serve to verify the feasibility of the architectural approach, but they will provide clarity about the role of each application in the architecture.  And that clarity of purpose sets the stage for a more effective &#8220;traditional&#8221; requirements process for that application.</p>
<p>This will also cause a significant reduction in requirements churn later &#8211; as flaws at the inter-system level will be identified and resolved before application requirements get underway in earnest.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Requirements+for+Enterprise+Architecture%3A+First+Look+http%3A%2F%2Fbit.ly%2FergjYo+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/12/03/architecture-requirements/&amp;t=Requirements+for+Enterprise+Architecture%3A+First+Look" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/12/03/architecture-requirements/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How To Draw an Asynchronous Process</title>
		<link>http://tynerblain.com/blog/2007/11/19/asynchronous-processes/</link>
		<comments>http://tynerblain.com/blog/2007/11/19/asynchronous-processes/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 03:28:45 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Process Flow]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[UML Modeling]]></category>
		<category><![CDATA[asynchronous process]]></category>
		<category><![CDATA[asynchronous sequence diagram]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[process flows]]></category>
		<category><![CDATA[uml sequence diagrams]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/11/19/asynchronous-processes/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F11%2F19%2Fasynchronous-processes%2F", "style": "big", "title": "How To Draw an Asynchronous Process" }); Documenting processes is something most business analysts have to do. The goal of documenting the process is to communicate requirements. By establishing a shared understanding of the process, you can establish the context for the requirements. Easy processes are easy to draw [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F11%252F19%252Fasynchronous-processes%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22How%20To%20Draw%20an%20Asynchronous%20Process%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F11%2F19%2Fasynchronous-processes%2F", "style": "big", "title": "How To Draw an Asynchronous Process" });</script></div>
<p><img alt="drawing" title="drawing" src="http://www.smugmug.com/photos/223396990-M.jpg" /></p>
<p>Documenting processes is something most business analysts have to do.  The goal of documenting the process is to communicate requirements.  By establishing a shared understanding of the process, you can establish the context for the requirements.  Easy processes are easy to draw and understand.  When documenting a more complex process, you need to provide the same clarity and consistency.  In this article we show how to document asynchronous process steps to maximize the clarity of the documentation.</p>
<p><span id="more-602"></span></p>
<h2>Speak in Your Reader&#8217;s Language</h2>
<p>The diagrams you choose to use represent a graphical language for communication.  It is really no different than choosing a language in which to write your textual requirements.  You need to choose a graphical language that the consumers of your document understand.</p>
<p>You can <a title="intro to bpmn" href="http://tynerblain.com/blog/2006/07/18/foundation-series-business-process-modeling/">use BPMN (business process modeling notation) to document your processes</a>, and be quite precise in your description of the process.  However, if the team you are communicating with does not know BPMN, it may not be the most effective way to communicate.  You are faced with a trade-off.  You have to either use a language (process flow charts) that is easily understood but hard to extend, or use a language that is precise in interpretation &#8211; but only to people who know the language.</p>
<p>Here&#8217;s a solution that uses diagrams that are better known than BPMN, leveraging process flow charts and UML sequence diagrams.</p>
<h2>Asynchronous Process Definition</h2>
<p>An synchronous process is one where two objects or systems talk to each other.  The first system sends a message to the second system <em>and waits for a response</em>.  An asynchronous process is one where two objects or systems talk to each other &#8211; but the first system does not wait for a response from the second.</p>
<p>Imagine making a bank deposit.  If you go to the bank, hand your money to the cashier, and wait for a deposit slip, you have just participated in a synchronous process.  You did something, and waited for the cashier before doing something else.</p>
<p>Now imagine driving through a toll booth.  You drive up to the toll booth, roll down your window, and throw your money into the collection basket.  You wait for the machine to count the money, the light turns green, and you drive on.  This is also a synchronous process.</p>
<p>Now imagine that you are in a hurry.  You roll down your window as you approach the toll booth.  You slow down, and as you drive by, you throw the money into the collection basket, and accelerate.  You don&#8217;t wait for the light to turn green &#8211; you trust that you had put enough money in the basket and you move on.  The machine still counts the money, and the light still turns green &#8211; but you didn&#8217;t wait for it.  You continued to do what you were doing &#8211; driving in a hurry.  You just participated in an asynchronous process.</p>
<h2>Drawing an Asynchronous Process</h2>
<p>Consider a simple asynchronous process &#8211; ordering a hamburger at Wendy&#8217;s.</p>
<p>Wendy&#8217;s has an interesting process for serving &#8220;made to order&#8221; burgers quickly.  They cook a small number of hamburgers in advance, and keep them warm for a short period of time.  If someone orders a burger, they take one of the already cooked burgers, and assemble it with the custom toppings.  They also put another raw burger on the grill to replace the one they just sold.  The challenge for the grill cook at Wendy&#8217;s is to have enough burgers ready that no one has to wait &#8211; while not having so many burgers precooked that any of them dry out before you order.</p>
<p><img title="asynchronous process flow" alt="asynchronous process flow" src="http://sehlhorst.smugmug.com/photos/223395905-O.jpg" /></p>
<p>The labels in the boxes above are generic, but it could be used to describe ordering a burger at Wendy&#8217;s.  The box &#8220;calling process&#8221; represents you ordering a burger.  The cashier processes the request, and then the flow splits into two parallel paths.  The grill cook immediately prepares your hamburger, and simultaneously starts cooking a new hamburger to replace the one he just used.</p>
<p>After your burger is prepared, the process returns to you &#8211; you get your burger and go eat.  You don&#8217;t wait for the new hamburger to finish cooking.</p>
<p>A process diagram doesn&#8217;t normally do a very good job of communicating that a process is asynchronous.  We&#8217;ve had good success in using a modified box &#8211; with a small clock in the lower right corner &#8211; to indicate that a process is asynchronous.  You could infer that the &#8220;delayed activity&#8221; is asynchronous because the flow moves directly from the &#8220;immediate response&#8221; to the &#8220;return&#8221; symbol.  But in a good diagram, you don&#8217;t have to infer.</p>
<p>Sometimes, it helps to create an alternate view of the same process.  This additional view can make it easier for the consumers of your diagram to understand the process.</p>
<h2>An Asynchronous Sequence Diagram</h2>
<p>Another way to diagram processes is with UML sequence diagrams.  Scott Ambler has an excellent article explaining <a title="how to read a sequence diagram" href="http://www.agilemodeling.com/artifacts/sequenceDiagram.htm">how to read a sequence diagram</a>.  The same burger ordering process could be drawn with the following sequence diagram.</p>
<p><img title="Asynchronous sequence diagram" alt="Asynchronous sequence diagram" src="http://sehlhorst.smugmug.com/photos/223395953-O.jpg" /></p>
<p>The diagram above uses the same generic labels again, but still applies to our example of ordering a hamburger at Wendy&#8217;s.  Inside the &#8220;par&#8221; bounding box, you get the immediate response (preparing your burger), and in parallel, the delayed activity (cooking a replacement hamburger).  Note that, in the diagram, you don&#8217;t have to wait for the response from the delayed process.  You get to eat your burger before the new one has completed cooking.</p>
<h2>Summary</h2>
<p>Asynchronous processes don&#8217;t come up often when learning about diagramming techniques.  But you find them all the time in the real world.  One of the easiest ways to speed up a process is to find steps that take a long time, and figure out how to do them asynchronously.  You don&#8217;t wait for paperwork to be processed when signing up for an insurance policy &#8211; the coverage is effective immediately.  You don&#8217;t wait for a loan application to be processed before driving off in your new car.  Once the loan is approved, you get the keys.  Many different software and manufacturing processes take advantage of queueing (like the Wendy&#8217;s example) to allow for faster &#8220;real time responses&#8221; to requests.</p>
<p>Being able to draw and discuss asynchronous processes is a good skill to have in your repertoire when documenting requirements in the real world.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+How+To+Draw+an+Asynchronous+Process+http%3A%2F%2Fbit.ly%2Ffg8ECE+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/11/19/asynchronous-processes/&amp;t=How+To+Draw+an+Asynchronous+Process" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/11/19/asynchronous-processes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Product Managers and Information Flow</title>
		<link>http://tynerblain.com/blog/2007/08/14/product-managers-and-information-flow/</link>
		<comments>http://tynerblain.com/blog/2007/08/14/product-managers-and-information-flow/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 04:01:21 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Process Flow]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[information flow]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[sdlc]]></category>
		<category><![CDATA[software product management]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/08/14/product-managers-and-information-flow/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F08%2F14%2Fproduct-managers-and-information-flow%2F", "style": "big", "title": "Product Managers and Information Flow" }); Product managers are often described as the hub or center of a software development organization. Saeed Khan takes umbrage with this under-appreciative image in an awesome article about information flow, product managers, and the SDLC. Hat Tip I love that the community of [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F08%252F14%252Fproduct-managers-and-information-flow%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Product%20Managers%20and%20Information%20Flow%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F08%2F14%2Fproduct-managers-and-information-flow%2F", "style": "big", "title": "Product Managers and Information Flow" });</script></div>
<p><img alt="communication tower" title="communication tower" src="http://sehlhorst.smugmug.com/photos/184077983-M.jpg" /></p>
<p>Product managers are often described as the hub or center of a software development organization.  Saeed Khan takes umbrage with this under-appreciative image in an awesome article about information flow, product managers, and the SDLC.</p>
<p><span id="more-557"></span></p>
<h2>Hat Tip</h2>
<p>I love that the community of great people writing about product management and business analysis has grown so richly over the last couple of years.  Yet again we get to thank someone else for pointing us to a great article.  Steve Johnson (<a title="vote for steve johnson" href="http://businessofsoftware.org/softwareidol.aspx">vote for him</a>) points us to the <a title="On product management" href="http://onproductmanagement.wordpress.com/"><em>On Product Management</em></a> blog in a recent article.  They&#8217;ve quietly amassed over 50 articles in the last three months, and we, thanks to Steve, found one we loved today.</p>
<h2>Information Flow</h2>
<p>In one of a <a title="being a great product manager" href="http://onproductmanagement.wordpress.com/2007/08/14/how-to-be-a-great-product-manager-boxed-set-with-bonus-features/">series of articles on being a great product manager</a>, Saeed discusses the importance of the product manager not only in creating information, but in <a title="information enablement" href="http://onproductmanagement.wordpress.com/2007/08/09/how-to-be-a-great-product-manager-part-5/">getting the right information to the people who need it</a>.  Here&#8217;s how you know you want to read the article.  First, scan it.  Then click on the two diagrams.  The first one shows the network of roles in a typical large software company, showing the more significant information flows between them.  The second diagram shows a detailed heatmap of the amount of information flowing through any particular role as a function of where the product is within the SDLC.</p>
<p>As soon as you see these two diagrams, you will immediately walk away with the appreciation that Saeed speaks with perspective, experience, and insight.  Now you know you want to read the rest of the article in depth.</p>
<h2>Enabling, Not Documenting</h2>
<p>One thing I really like about Saeed&#8217;s article is that he positions part of the role of the product manager as enabling other people on the team to be more effective.  Product managers don&#8217;t make all the decisions, don&#8217;t do the product implementation, and don&#8217;t do the tactical selling activities.  Other people do.  What product managers do is enable them to do it better, by providing them with the right information.</p>
<p>In <a title="demo malfeasance" href="http://onproductmanagement.wordpress.com/2007/06/24/and-another-thing-software-demos-need-serious-help/">another good article</a> from the same blog, Alan tells about the tragic demo from a company pitching software to product managers &#8211; and discussing the features, not the value.  Unlike in that demo, Saeed is focused on the value of information flow within an organization.  He doesn&#8217;t talk about the artifacts that are created (if any), he focuses, particularly with the heatmap, on how different roles are involved in different stages of the SDLC.</p>
<p>The article makes good points, and the heatmap drives home that there&#8217;s rigor behind the assertions.  And as the first article I read from this blog, I&#8217;m extremely excited to read more.  I would like to see (and will now have to think about) how different roles need information with an agile product development lifecycle.  These are the types of inward focused assessments that help us get better at product management, and help our teams achieve greater software product success.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Product+Managers+and+Information+Flow+http%3A%2F%2Fbit.ly%2FgWEjo9+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/08/14/product-managers-and-information-flow/&amp;t=Product+Managers+and+Information+Flow" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/08/14/product-managers-and-information-flow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

