<?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; Business Analysis</title>
	<atom:link href="http://tynerblain.com/blog/category/business-analysis/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog</link>
	<description>Software product success.</description>
	<lastBuildDate>Sun, 26 Feb 2012 15:00:36 +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>Who Are Your Customers &#8211; Comparing Products Part 2</title>
		<link>http://tynerblain.com/blog/2011/11/22/comparing-products-2/</link>
		<comments>http://tynerblain.com/blog/2011/11/22/comparing-products-2/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 14:45:54 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[comparing products]]></category>
		<category><![CDATA[persona]]></category>
		<category><![CDATA[persona development]]></category>
		<category><![CDATA[personas]]></category>
		<category><![CDATA[product comparison]]></category>
		<category><![CDATA[product specification]]></category>
		<category><![CDATA[software requirements specification]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1513</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F11%2F22%2Fcomparing-products-2%2F", "style": "big", "title": "Who Are Your Customers - Comparing Products Part 2" }); The first step to comparing products is understanding your customers.  This may seem counter-intuitive, but your product&#8217;s capabilities are meaningless unless you are comparing them from your customer&#8217;s point of view.  This article is part 2 in a series [...]]]></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%252F2011%252F11%252F22%252Fcomparing-products-2%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Who%20Are%20Your%20Customers%20-%20Comparing%20Products%20Part%202%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F11%2F22%2Fcomparing-products-2%2F", "style": "big", "title": "Who Are Your Customers - Comparing Products Part 2" });</script></div>
<p><img class="alignnone" title="Woman in Mask" src="http://sehlhorst.smugmug.com/Other/blog/i-h8W63Np/0/O/masked-woman-small.png" alt="" width="250" height="217" /></p>
<p>The first step to comparing products is understanding your customers.  This may seem counter-intuitive, but your product&#8217;s capabilities are meaningless unless you are comparing them from your customer&#8217;s point of view.  This article is part 2 in a series on comparing products.  Check out<a title="Comparing Products - Intro &amp; Overview" href="http://tynerblain.com/blog/2011/11/15/comparing-products-1/"> part 1</a>, then continue with this article on the first steps of comparing products.</p>
<p><span id="more-1513"></span></p>
<h2>Overall Product Comparison Process</h2>
<p>This is may be a long series.  Each article will start with a recap of the overall process.</p>
<p>Getting <em>useful</em> information from comparing products requires you to:</p>
<ol>
<li><a title="Comparing Products - Part 1 - Introduction &amp; Overview" href="http://tynerblain.com/blog/2011/11/15/comparing-products-1/">Introduction &amp; Overview (so that the step-numbers align with the article numbers)</a></li>
<li><strong>Identify your customers. </strong>(This article)</li>
<li><a title="Comparing Products - Market Problems" href="http://tynerblain.com/blog/2011/11/29/comparing-products-part-3-market-problems/">Articulate the problems they care about solving.</a></li>
<li><a title="Comparing Products - Important Problems" href="http://tynerblain.com/blog/2011/12/06/comparing-products-4/">Determine how important solving each problem is, relative to the other problems, for <em>your customers</em>.</a></li>
<li><a title="Comparing Products Part 5 - Important Personas" href="http://tynerblain.com/blog/2011/12/15/comparing-products-5/">Characterize how important it is for you to solve the problems of <em>each group of customers</em>.</a></li>
<li><a title="Comparing Products Part 6 - Know Your Competition" href="http://tynerblain.com/blog/2011/12/21/comparing-products-6/">Discover which (competitive) products <em>your customers</em> consider to be your competition.</a></li>
<li><a title="Rating Your Competition" href="http://tynerblain.com/blog/2012/01/12/comparing-products-7/">Assess how effectively each competitive product solves each important problem.</a></li>
<li><a title="Tally the Score" href="http://tynerblain.com/blog/2012/01/19/comparing-products-part-8/">Assess how effectively each competitive product solves each important problem, for each important group of customers.</a></li>
</ol>
<p>With this information, you can create a <em>point of view</em> about how your product compares to the others.</p>
<p>From that point of view, you can determine where to invest in your product.  That&#8217;s the whole point of doing the comparison &#8211; not to be self-congratulatory, but to guide forward thinking.  I&#8217;ve stopped being excited when I find existing &#8220;product comparisons&#8221; and game plans when starting to work with a product team.  To date, they have always been &#8220;positioning papers&#8221; designed to emphasize the product&#8217;s strength &#8211; usually prepared for internal sales teams, but unfortunately, sometimes prepared for executives (&#8216;Look!  We&#8217;ve done a great job!&#8221;) Those documents are a useful source of information to get you started down the product comparison path, but if you let them guide you, they will take you down the primrose path.</p>
<h2>Identify Your Customers</h2>
<p><img class="alignnone" title="Customer-Centric Market Model" src="http://sehlhorst.smugmug.com/Other/blog/20100915Small-Customers/1015192159_RwkpH-O.png" alt="" width="265" height="224" /></p>
<p>You want to have a model that represents how you are approaching your market. As a product manager focused on solving customer problems, you should have <a title="Customer Centric Market Model" href="http://tynerblain.com/blog/2010/09/20/customer-centric-market-model/">a customer-centric market model</a>.</p>
<p><img class="alignnone" title="customers and markets" src="http://sehlhorst.smugmug.com/Other/blog/20100915Big-Market-Overview450/1015188438_YekhJ-O.png" alt="" width="450" height="393" /></p>
<p>Your goal is to identify groups of customers that share sets of problems, and share a point of view about how important it is to solve those problems.  Effectively, this is <a title="buyer personas and user personas" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">a definition of a persona</a> (yes, I know there are <a title="Personas for goal driven development" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">better ways to define personas</a>).</p>
<p>The important thing is that you identify groups of people that will reach the same conclusion about your product, by answering the following questions similarly -</p>
<ul>
<li>Which problems <em>that are important to me</em> can I solve with <em>this</em> product?</li>
<li>How well does this product solve those problems?</li>
<li>How does this product compare to other products?</li>
</ul>
<h2>Personas, Goals, and Contexts</h2>
<p><img class="alignnone" title="Personas, Goals, and Contexts" src="http://sehlhorst.smugmug.com/Other/blog/i-wVpsJLK/0/O/20111121comparing-products.png" alt="" width="340" height="340" /></p>
<p>The image above is adapted from Robert W. Bailey&#8217;s diagram from <em><a title="Human Performance Engineering at Amazon" href="http://www.amazon.com/exec/obidos/ASIN/0131496344/tynerblain-20/">Human Performance Engineering</a></em>, (although I first saw it in the <em><a title="Handbook of Usability Testing at Amazon" href="http://www.amazon.com/exec/obidos/ASIN/0471594032/tynerblain-20/">Handbook of Usability Testing</a></em>).  One use of Bailey&#8217;s diagram is to understand that to assess the usability of a product, you have to take into account the human being who is using the product, the environment in which they are using the product, and the actions the person is trying to perform.</p>
<p>My extensions of the idea are that</p>
<ul>
<li>Groups of people with similar sensibilities (personas) will form similar conclusions about how much they like a product when,</li>
<li>They are using the product in similar contexts,</li>
<li>To achieve similar goals</li>
</ul>
<p>One benefit of abstracting this way is that you don&#8217;t get caught up in the mechanics or procedures of how someone is solving a problem (the actions).  Focus on the action is appropriate when evaluating the usability of a particular product, but not when comparing how different products solve the same problem.  I also like something that reminds me that people use products in different environments and situations.</p>
<h2>Example Personas</h2>
<p>Usually, when I see personas they are focused purely on marketing and demographic data, or they are based solely on contextual inquiry intended to inform a design aesthetic.  The former may tell you <em>where</em> to market a product to groups of people (magazines, tv ads, luxury travel websites, etc), and the latter informs <em>how</em> to implement solutions.  What we need is something that helps us assess the relative importance of solutions to problems shared by groups of people.</p>
<p>This series of articles is looking at the <a title="Kindle Fire at Amazon" href="http://www.amazon.com/exec/obidos/ASIN/B0051VVOB2/tynerblain-20/">Kindle Fire</a> as a proxy product by which I will explain the techniques (without actually performing a data-driven analysis &#8211; I&#8217;ll invent data for the purpose of this article series).</p>
<p>I found a presentation on Slideshare:</p>
<p><a style="font-weight: bold;" title="BlackBerry Consumer Preferences and Segmentation" href="http://www.slideshare.net/cachoque/blackberry-consumer-preferences-and-segmentation" target="_blank">BlackBerry Consumer Preferences and Segmentation</a></p>
<div id="__ss_4051173" style="width: 425px;">
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/cachoque" target="_blank">Carrie Martinelli</a></div>
</div>
<p>Where some MBA students documented the research and analysis of the market of <em>prosumers</em> &#8211; &#8220;professional&#8221; consumers.</p>
<p>What I particularly like is the way they presented a summary of part of their analysis on slide 27.  That&#8217;s the part we&#8217;re going to <em>pretend</em> applies to the Kindle Fire (because it might just).  Note that their presentation includes a &#8220;RIM Confidential&#8221; clause in the footer, so it might have been removed by the time you read this article.  I&#8217;ll briefly describe what they did.  They did an analysis of survey results, identified groups of people that placed similar importance on different activities and aspects of smartphone usage, and identified three &#8220;clusters&#8221; of people with statistically significant shared sensibilities.</p>
<ol>
<li><strong>Hi-Tech Prosumers</strong> &#8211; people who placed high value on most features, anticipated high usage of most features, were price-sensitive, had lower incomes (less than $75K USD per year) and were the younger members of the target demographic.</li>
<li><strong>Typical Blackberry Prosumers </strong>- people who placed high value on network features, moderate value on other features, made heavy use of &#8220;standard&#8221; capabilities, but did not plan to use apps, or multimedia.</li>
<li><strong>Basic Prosumer </strong>- people who placed high value on phone features, were heavy users of text and voice features;  had low use of other capabilities, but anticipated becoming heavy users of &#8220;smartphone capabilities&#8221; (email, calendar, browsing, apps, camera, etc) when they purchased their next phone.</li>
</ol>
<p>What&#8217;s notable is that they did the right <em>type</em> of analysis &#8211; finding clusters of people that can serve to quantify market value of different personas &#8211; this will inform the determination of the relative importance of different groups of customers (step 3 in the process of comparing products).  By interviewing individual survey respondents that are in each of the clusters, they can get the additional information they need to develop personas.</p>
<p>For this series of articles, I will pretend that three personas were developed, in order to demonstrate this approach to comparing products:</p>
<ol>
<li><strong>Hi-Tech Prosumers</strong> &#8211; people who get excited about convergence, highly value additional multimedia capabilities, live a multi-device existence, and are acutely aware of competitive products.</li>
<li><strong>Typical Amazon Kindle Users</strong> &#8211; people who placed high value on the reading experience, the convenience of being able to easily get new content, and the absence of a subscription fee.</li>
<li><strong>Basic Consumers </strong>- people who read primarily on paper media, have recently started consuming multimedia on their computers, and anticipate becoming part of the &#8220;post pc era.&#8221;</li>
</ol>
<p>I will also invent additional data as we explore the rest of the product comparison process.</p>
<h2>Developing Personas</h2>
<p>Please don&#8217;t finish this article believing that persona creation is trivial &#8211; it isn&#8217;t.  I&#8217;ve heard the saying before that a <em>bad persona</em> is better than <em>no persona at all</em>, and I believe that.  Without a target persona, you will almost certainly create the <em><a title="Elastic User anti-pattern" href="http://tynerblain.com/blog/2007/07/23/elastic-users/">elastic user</a></em> anti-pattern.</p>
<p><img class="alignnone" title="Elastic Users" src="http://sehlhorst.smugmug.com/photos/176167352-M.jpg" alt="" width="250" height="300" /></p>
<p>Persona creation is more of a <em>precondition</em> of this process than a part of this process &#8211; you should already have personas developed for your product.  This article is not intended to go into the details of <em>how to create a persona</em>, but rather a review of the aspects of that persona development that are needed for the product comparison process to be effective:</p>
<ul>
<li>Identification of people in your market that share perspectives on problems &#8211; e.g. knowing that for one group of potential customers solving problem X is important and problem Y is not, even when problem Y&#8217;s solution is important to another group of customers.</li>
<li>Being able to estimate the relative number of people that are represented by each persona &#8211; e.g. knowing how much revenue potential exists for sales to each group of people.</li>
</ul>
<h2>Summary</h2>
<p>Recapping the overall flow of this series of articles on product comparison</p>
<blockquote><p>Getting useful information from comparing products requires you to:</p>
<ol>
<li><a title="Comparing Products introduction" href="http://tynerblain.com/blog/2011/11/15/comparing-products-1/">Introduction and Overview (so that the step-numbers align with the article numbers)</a></li>
<li><strong>Identify your customers.</strong> (This article)</li>
<li><a title="Comparing Products Part 3 - Market Problems" href="http://tynerblain.com/blog/2011/11/29/comparing-products-part-3-market-problems/">Articulate the problems <em>your customers</em> care about solving.</a></li>
<li><a title="Comparing Products - Important Problems" href="http://tynerblain.com/blog/2011/12/06/comparing-products-4/">Determine how important solving each problem is, relative to the other problems, for your customers.</a></li>
<li><a title="Comparing Products Part 5 - Important Personas" href="http://tynerblain.com/blog/2011/12/15/comparing-products-5/">Characterize how important it is for you to solve the problems of each group of customers.</a></li>
<li><a title="Comparing Products Part 6 - Know Your Competition" href="http://tynerblain.com/blog/2011/12/21/comparing-products-6/">Discover which (competitive) products your customers consider to be your competition.</a></li>
<li><a title="Rating Your Competition" href="http://tynerblain.com/blog/2012/01/12/comparing-products-7/">Assess how effectively each competitive product solves each important problem.</a></li>
<li><a title="Tally the Score" href="http://tynerblain.com/blog/2012/01/19/comparing-products-part-8/">Assess how effectively each competitive product solves each important problem, for each important group of customers.</a></li>
</ol>
<p>With this information, you can create a point of view about how your product compares to other products.</p></blockquote>
<h2>Attributions</h2>
<p>* Thanks <em>Alaska Dude</em> for the <em><a title="Original masked woman photo" href="http://www.flickr.com/photos/72213316@N00/4405132197/in/photostream/">Lovely Lass</a></em> photo.</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+Who+Are+Your+Customers+%E2%80%93+Comparing+Products+Part+2+http%3A%2F%2Fbit.ly%2FrwgtYO+" 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/2011/11/22/comparing-products-2/&amp;t=Who+Are+Your+Customers+%E2%80%93+Comparing+Products+Part+2" 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/2011/11/22/comparing-products-2/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Compare Products Not Specs &#8211; Comparing Products Part 1</title>
		<link>http://tynerblain.com/blog/2011/11/15/comparing-products-1/</link>
		<comments>http://tynerblain.com/blog/2011/11/15/comparing-products-1/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 17:19:10 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[comparing products]]></category>
		<category><![CDATA[product comparison]]></category>
		<category><![CDATA[product specification]]></category>
		<category><![CDATA[software requirements specification]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1499</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F11%2F15%2Fcomparing-products-1%2F", "shorturl": "http://bit.ly/uGTSPu", "style": "big", "title": "Compare Products Not Specs - Comparing Products Part 1" }); Recently, the gadget-reviewer crowd has caught on to something we&#8217;ve known for a long time.  Comparing products is not about comparing specs, it is about comparing how well the products solve problems that customers will pay to [...]]]></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%252F2011%252F11%252F15%252Fcomparing-products-1%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FuGTSPu%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Compare%20Products%20Not%20Specs%20-%20Comparing%20Products%20Part%201%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F11%2F15%2Fcomparing-products-1%2F", "shorturl": "http://bit.ly/uGTSPu", "style": "big", "title": "Compare Products Not Specs - Comparing Products Part 1" });</script></div>
<p><img class="alignnone" title="Volkswagon Assembly Line" src="http://sehlhorst.smugmug.com/Other/blog/i-QgFzb7Q/0/O/bug-building.png" alt="" width="250" height="142" /></p>
<p>Recently, the gadget-reviewer crowd has caught on to something we&#8217;ve known for a long time.  Comparing products is <em>not</em> about comparing specs, it is about comparing how well the products solve problems that customers will pay to solve.  That begs the question &#8211; how should you compare products?  Read on to see the product comparison technique I recommend.<br />
<span id="more-1499"></span></p>
<h2>Inspiration</h2>
<p>Writing about how to compare products has been on my backlog for about two years, as a key component of how to perform competitive analysis.  This topic is easily a chapter-length discussion, perhaps that&#8217;s what delayed writing an article-length discussion.  A flurry of recent articles, <a title="The Death of the Spec" href="http://techcrunch.com/2011/11/14/rip-spec/">The Death of the Spec</a>, <a title="Do Device Specs Matter?" href="http://www.idownloadblog.com/2011/11/15/do-device-specs-matter-anymore/">Do Device Specs Really Matter Anymore</a>, and <a title="Device Specs" href="http://daringfireball.net/linked/2011/11/14/device-specs">Device Specs</a>, from <a title="Techcrunch" href="http://techcrunch.com/">Techcrunch</a>, <a title="iDownloadBlog" href="http://www.idownloadblog.com/">iDownloadBlog</a>, and <a title="Daring Fireball" href="http://daringfireball.net/">Daring Fireball</a>, respectively, all discussed how the <a title="Kindle Fire on Amazon" href="http://www.amazon.com/exec/obidos/ASIN/B0051VVOB2/tynerblain-20/">Amazon Kindle Fire</a> will likely succeed, <em>in spite of</em> not having particularly good specs (specifications).  The Techcrunch article also opines that Consumer Reports, because of its fixation on specs, has made itself irrelevant as a company providing advice to consumers.</p>
<p><img class="alignnone" title="Camera Lens" src="http://sehlhorst.smugmug.com/Other/blog/i-V4RPzPb/0/O/camera-lense.jpg" alt="" width="250" height="166" /></p>
<p>John Gruber hits closest to the mark in the Daring Fireball article where he says</p>
<blockquote><p>Specs are something the device makers worry about insofar as how they affect the experience of using the device. Just like how focal length and lens aperture are something the cinematographer worries about insofar as how they affect what the viewer will see on screen.<br />
<cite>John Gruber</cite></p></blockquote>
<p>Combine this with a conversation I had last night after recording the latest <em><a title="Start with the Customer Podcast" href="http://www.arandomjog.com/category/prodcast-marketing-podcast/">Start With the Customer Podcast</a></em>, about writing more frequent articles on Tyner Blain.</p>
<h2>Product Management and Specs</h2>
<p>The discussions are mostly centered on the utility of specifications, <em>speeds and feeds</em>, in informing a customer&#8217;s buying decision.  As <a title="Pragmatic Marketing" href="http://www.pragmaticmarketing.com/">Pragmatic Marketing</a> espouses, we should be market-driven, with a focus on solving the problems that customers will pay to solve.  A <em>screen resolution</em> does not solve a problem, but <em>an easy-to-read</em> screen does &#8211; it prevents eye-strain and makes a long-session reading experience (like you would have when reading a book, versus reading this article) better.  <strong>Avoiding eye-strain <em>is</em> a problem people are willing to pay to solve</strong> &#8211; we&#8217;ve seen that with the success of products that use e-Ink technology.</p>
<p>Let&#8217;s look at how this example impacts what you do as a product manager.</p>
<p><img class="alignnone" title="Eye strain" src="http://sehlhorst.smugmug.com/Other/blog/i-cThw64Z/0/O/eyeball.jpg" alt="" width="250" height="197" /></p>
<p>You want your team to create a product that <em>avoids eye-strain</em>.  But you also know that you need to write requirements that are <a title="Writing Unambiguous Requirements" href="http://tynerblain.com/blog/2010/08/18/unambiguous-requirements/">unambiguous</a> and <a title="Writing Measurable Requirements" href="http://tynerblain.com/blog/2010/08/30/verifiable-requirements/">measurable</a>.  We know <a title="Eye strain article" href="http://www.prio.com/press/magazine/nyt.html">from research</a> that higher resolution displays (to a point) delay eye fatigue.  We also know, from Apple&#8217;s successful marketing, that promotion of a <em><a title="Retina Display" href="http://ipod.about.com/od/ipodiphonehardwareterms/g/retina-display-glossry.htm">retina display (326 dpi, for a phone)</a></em> is effective, at least with <a title="Buyer persona vs. User persona" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">buyer personas</a>, at addressing the <em>perceived problem</em> as well.</p>
<p>A &#8220;normal&#8221; consumer is not going to be able to make an <em>informed</em> comparison of the likely difference in <em>eye strain over time</em> &#8211; the problem the consumer actually cares about &#8211; when looking at the <em>specs</em> for a 225 dpi device and a 250 dpi device.  The authors of the articles are exactly right about that &#8211; but we, as product managers, already know this.</p>
<p><strong>The problem comes when writing the requirements for your product team &#8211; do you just say &#8220;create a low eye-strain screen&#8221; and trust the team to pick a resolution that is effective?</strong> In an ideal world, yes, you would.  <em>Someone </em>(that <em>someone</em> may have to be you) on your team would do the research and come back and tell you that a 225 dpi interface will cause moderate eye-strain in 80% of people after 12 hours of continuous reading (but only 20% of people after 4 hours), and that that number drops to 20% of people experiencing eye strain after 12 hours when using a 250 dpi screen**.  You have an understanding of the <em>value</em> of a 250 dpi resolution over a 225 dpi resolution &#8211; an additional 8 hours of reading time for the majority of your customers.  Your customers will not know this (unless you tell them).  But you know it, and that&#8217;s enough.</p>
<p>Now you have to understand the incremental cost of creating a product with a 250 dpi resolution versus one with a 225 dpi resolution.  In this example, the incremental device cost is $25 per device for the next 12 months (given projected manufacturing levels).  At your target margins, this would reflect in an increase of $40 in device pricing to your customers.</p>
<p>This higher-capability, higher-priced product will simultaneously appeal to more customers (people who read for more than 4 hours at a time), and fewer customers (people who are price sensitive).  Your hypothesis (backed with market-research) indicates that you will generate 50% more profit by offering the lower-capability resolution (225 dpi), because most of the people in your target market do not regularly read for 12 hours at a time &#8211; and those that do will not &#8220;blame&#8221; your product for their eyestrain &#8211; they will &#8220;blame&#8221; their own behavior.</p>
<p>Now you&#8217;re ready to to specify that your product will be built with a 225 dpi resolution interface.  Not because a 225 dpi interface is in any way intrinsically valuable, but because it is the <em>measurable and unambiguous</em> requirement needed to satisfy your goal (achieving profitability) based on a solution to a <a title="Kano analysis for product managers" href="http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/"><em>more is better</em> </a>(see <a title="Kano Analysis articles" href="http://tynerblain.com/blog/tag/kano-analysis/"><em>more </em>articles on Kano analysis</a>) market problem (eye strain that occurs in long reading sessions).</p>
<p><img class="alignnone" title="More is Better" src="http://sehlhorst.smugmug.com/Other/blog/i-hhF4kWg/0/O/extreme-more-is-better-small.png" alt="" width="450" height="422" /></p>
<p>Specifications are useful, because they help you characterize capabilities.  The diagram above depicts a <em>more is better</em> characteristic, as described in Kano analysis.  The resolution measurements (dpi) give you a measurable criterion for what you are building, that translates into a measurable criterion (hours of continuous use without eye strain) that your customers will realize.  That criterion reflects the horizontal axis of the diagram.  The longer your customer can read without straining her eyes, the more capable your product is.</p>
<p>The vertical axis reflects how much your customer <em>cares</em> about solving the eye-strain problem.  Note that there are diminishing returns.  Enabling 4 hours of use (without eye strain) versus 2 hours of use is <em>more highly valued</em> than enabling 6 hours of use versus 4 hours (or 8 versus 6).</p>
<p>The above analysis compared the selection of discrete components, but it also applies when looking at incremental investment.  The speed at which the screen refreshes when turning pages is a good example.  You can have an e-Ink screen that refreshes in 1 second, or one that refreshes in 0.5 seconds, each time your user turns the page.  There is no difference in incremental cost, and your team is operating with a fixed budget of time and resources &#8211; so there&#8217;s no impact on the allocated fixed costs (or margins).  You are faced with a different set of compromises &#8211; what are you willing to give up (by reducing investment in other aspects of your product) to achieve incremental improvement in page-turning responsiveness?  It may be that page-turning snappiness is the <em><a title="One Idea product management" href="http://tynerblain.com/blog/2010/04/14/one-idea-product-management/">one idea</a></em> of your product (it was a differentiator for the Barnes &amp; Noble Nook, but now the e-Ink Kindle has achieved parity).  Or you may be dealing with one of the &#8220;host of others&#8221; capabilities, in which case you simply want to <a title="Satisficing and Agile development" href="http://tynerblain.com/blog/2008/11/12/satisficing-sprints/">satisfice</a>.</p>
<h2>Bigger Picture</h2>
<p>The above example shows how <em>specs</em> matter (indirectly) in the everyday lives of product managers.  Specs are the measurements by which we evaluate the effectiveness of our products at solving the problems our customers care about.</p>
<p>If you are designing a product that has no competition &#8211; for customers that have no alternatives, this would be enough.  It would be more than enough, actually, because you could create &#8220;any&#8221; product, and it would sell.  <strong>Your customers <em>always</em> have alternatives &#8211; so you <em>always</em> have competition.</strong> Sometimes, your competition is &#8220;build your own&#8221; or even &#8220;tolerate the problem.&#8221;  But for any <em>interesting</em> market problem, you have at least one competitor trying to solve it too (or you will.  <em>Very</em> soon).</p>
<h2>Comparing Products Matters</h2>
<p>As a product manager, you need to know what your product needs to be (or do) to be competitive.  That&#8217;s where comparing products matters.</p>
<p>The above analysis looks at a single problem (eye strain) for a single product (yours), to try and determine what <em>specs</em> to give to your team.  In a competitive environment (that means you), you need to put the effectiveness of your product in context from your customer&#8217;s point of view.  That involves identifying</p>
<ul>
<li>Who are your customers and what problems do they care about solving?</li>
<li>How important, relative to each other, are the solutions to those problems, to your customers?</li>
<li>How important, relative to each other, is each group of customers?</li>
<li>What solutions (products) do your customers consider as alternatives (competition) to your product?</li>
<li>How effective is each product at solving each problem?</li>
</ul>
<p>From that information, you can synthesize <strong>a point of view on </strong><strong>how competitive your product is </strong><strong>(or will be).</strong></p>
<p>That point of view helps you identify</p>
<ul>
<li>Which problems you need to invest in solving, or solving more, or solving more effectively.</li>
</ul>
<h2>Summary &amp; Series</h2>
<p>Specification is not a good tool for helping non-expert customers compare products.  It is, however, a good tool &#8211; an unambiguous measurement tool &#8211; that product managers can use when specifying how a product should be built, or how one product compares to another.</p>
<p>Products must be compared based on their effectiveness (and perceived effectiveness) at solving problems that customers will pay to solve.  Those comparisons should also take into account the relative importance of those problems, as well as the relative importance of different groups of customers, to the success of the product.</p>
<p>Even at 1600 words, this article barely introduces the topic of comparing products.</p>
<p>Recapping the overall flow of this series of articles on product comparison (I&#8217;ll update this article with links to future articles in a series on comparing products.):</p>
<blockquote><p>Getting useful information from comparing products requires you to:</p>
<ol>
<li><strong>Introduction and Overview (so that the step-numbers align with the article numbers)</strong> (This article)</li>
<li><a title="Comparing Products - Who Are Your Customers?" href="http://tynerblain.com/blog/2011/11/22/comparing-products-2/">Identify your customers.</a></li>
<li><a title="Comparing Products Part 3 - Market Problems" href="http://tynerblain.com/blog/2011/11/29/comparing-products-part-3-market-problems/">Articulate the problems <em>your customers</em> care about solving.</a></li>
<li><a title="Comparing Products - Important Problems" href="http://tynerblain.com/blog/2011/12/06/comparing-products-4/">Determine how important solving each problem is, relative to the other problems, for your customers.</a></li>
<li><a title="Comparing Products Part 5 - Important Personas" href="http://tynerblain.com/blog/2011/12/15/comparing-products-5/">Characterize how important it is for you to solve the problems of each group of customers.</a></li>
<li><a title="Comparing Products Part 6 - Know Your Competition" href="http://tynerblain.com/blog/2011/12/21/comparing-products-6/">Discover which (competitive) products your customers consider to be your competition.</a></li>
<li><a title="Rating Your Competition" href="http://tynerblain.com/blog/2012/01/12/comparing-products-7/">Assess how effectively each competitive product solves each important problem.</a></li>
<li><a title="Tally the Score" href="http://tynerblain.com/blog/2012/01/19/comparing-products-part-8/">Assess how effectively each competitive product solves each important problem, for each important group of customers.</a></li>
</ol>
<p>With this information, you can create a point of view about how your product compares to the others.</p></blockquote>
<h2>Attributions &amp; Notes</h2>
<p>* Thanks Roger Wollstadt for the original Volkswagon Assembly <a title="Source Image on Flickr" href="http://www.flickr.com/photos/24736216@N07/5869083813/sizes/o/in/photostream/">photo</a></p>
<p>** The dpi-related eyestrain statistics are fictional, and written to demonstrate the importance of measurement only</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+Compare+Products+Not+Specs+%E2%80%93+Comparing+Products+Part+1+http%3A%2F%2Fbit.ly%2FuGTSPu+" 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/2011/11/15/comparing-products-1/&amp;t=Compare+Products+Not+Specs+%E2%80%93+Comparing+Products+Part+1" 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/2011/11/15/comparing-products-1/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Agile Estimation, Prediction, and Commitment</title>
		<link>http://tynerblain.com/blog/2011/08/09/agile-estimation/</link>
		<comments>http://tynerblain.com/blog/2011/08/09/agile-estimation/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 06:32:33 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[agile estimation]]></category>
		<category><![CDATA[agile prediction]]></category>
		<category><![CDATA[agile release planning]]></category>
		<category><![CDATA[cone of uncertainty]]></category>
		<category><![CDATA[project planning]]></category>
		<category><![CDATA[release planning]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1488</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F08%2F09%2Fagile-estimation%2F", "shorturl": "http://bit.ly/nUdL7S", "style": "big", "title": "Agile Estimation, Prediction, and Commitment" }); Your boss wants a commitment.  You want to offer a prediction.  Agile, you say, only allows you to estimate and predict &#8211; not to commit.  &#8221;Horse-hockey!&#8221; your boss exclaims, &#8220;I want one throat to choke, and it will be yours if [...]]]></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%252F2011%252F08%252F09%252Fagile-estimation%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FnUdL7S%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Agile%20Estimation%2C%20Prediction%2C%20and%20Commitment%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F08%2F09%2Fagile-estimation%2F", "shorturl": "http://bit.ly/nUdL7S", "style": "big", "title": "Agile Estimation, Prediction, and Commitment" });</script></div>
<p><img class="alignnone" title="One Throat" src="http://sehlhorst.smugmug.com/Other/blog/i-sBtqDPL/0/O/throat.jpg" alt="" width="166" height="250" /></p>
<p>Your boss wants a commitment.  You want to offer a prediction.  Agile, you say, only allows you to estimate and predict &#8211; not to commit.  &#8221;Horse-hockey!&#8221; your boss exclaims, &#8220;I want <em>one</em> throat to choke, and it will be yours if you don&#8217;t make a commitment and meet it.&#8221;  There&#8217;s a way to keep yourself off the corporate gallows &#8211; estimate, predict, <em>and</em> commit &#8211; using agile principles.</p>
<p>This is an article about agile product management and release planning.</p>
<p><span id="more-1488"></span></p>
<h1>Change and Uncertainty</h1>
<p><img class="alignnone" title="pyramid" src="http://sehlhorst.smugmug.com/Other/blog/i-kLX4P5V/0/O/pyramid.jpg" alt="" width="250" height="163" /></p>
<p>In the dark ages before your team became agile, you would make estimates and commitments.  You never <em>exactly</em> met your commitments, and no one <em>really</em> noticed.  That was how the game was played.  You made a commitment, everyone <em>knew</em> it would be wrong, but they expected it anyway.  Maybe your boss handicapped your commitment, removing scope, lowering expectations, padding the schedule.  Heck, that&#8217;s been the recipe for success since they planned the pyramids.</p>
<p>It makes sense.</p>
<ol>
<li><strong>Your early estimates are wrong. </strong> When you add them up, the total will be wrong.  If you do <a title="PERT estimation tutorial" href="http://tynerblain.com/blog/2006/04/13/foundation-series-basic-pert-estimate-tutorial/">PERT estimation</a>, the <a title="Advanced PERT page 1" href="http://tynerblain.com/blog/2009/06/18/advanced-pert-estimation/">law of large numbers</a> will <a title="Advanced PERT estimation - page 2" href="http://tynerblain.com/blog/2009/06/18/advanced-pert-estimation/2/">help you in aggregate</a>.  But you&#8217;ll still be wrong.</li>
<li><strong>The outside demands on, and availability of, your people will change.</strong> Unplanned sick time, attrition, levels of commitment over time, lots of &#8220;people stuff&#8221; is really unknown.</li>
<li><strong>The needs of your customers will change. </strong> <a title="Adapting to Changing Markets" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">Markets evolve over time</a>.  You get smarter, your competitors get better, your customer&#8217;s expectations change.</li>
</ol>
<p><img class="alignnone" title="sphinx" src="http://sehlhorst.smugmug.com/Other/blog/i-PJksfgv/0/O/sphinx.jpg" alt="" width="250" height="187" /></p>
<p>Agile processes are designed to help you deliver what your customer actually needs, not what was originally asked for.  Contrast the two worlds.</p>
<p>In the old world, you would commit to delivering a couple pyramids.  After spending double your budget, with double the project duration, you would have delivered one pyramid.  When you deliver it, you find out that sphinxes are <em>all the rage</em>.  Oops.</p>
<p>Your team changed to agile, so that you could deliver the sphinx.  But your Pharaoh still wants a commitment to deliver a couple pyramids (the smart ones will be expecting to get just one).  You can stay true to agile, and still mollify your boss&#8217; need to have a commitment, if you take advantage of the first-principles of why agile estimation works.</p>
<h2>Estimation</h2>
<p>A commitment is a factual prediction of the future.  &#8221;This will take two weeks.&#8221;  Nobody is prescient.</p>
<p>A factual prediction has to be nuanced.  &#8221;I expect* this will take no more than two weeks.&#8221;</p>
<p style="padding-left: 30px;">*in reality, this is shorthand for a mathematical prediction, such as &#8220;I expect, with 95% confidence, that this will take no more than two weeks.&#8221;</p>
<p>Few non-scientist, non-engineers, non-mathematicians understand that 95% confidence has a precise meaning.  People usually interpret it to mean &#8220;a 5% chance that it will take more than two weeks.&#8221;  What it really means is that if this exact same task were performed twenty thousand times (in a hypothetical world, of course), then nineteen thousand of those times, it would be completed in under two weeks &#8211; do you feel lucky?</p>
<p>To make a statement like this, you actually have to create <a title="PERT Estimation" href="http://tynerblain.com/blog/2006/04/13/foundation-series-basic-pert-estimate-tutorial/">a PERT estimate</a> &#8211; identifying the best-case, worst-case, and most-likely case for how long a task will take.</p>
<p><img class="alignnone" title="PERT Estimate" src="http://sehlhorst.smugmug.com/photos/567766108_8mN5Z-L.png" alt="" width="450" height="327" /></p>
<p>Unfortunately, we&#8217;re rarely asked to make a commitment about a <em>single</em> task &#8211; but rather a large collection of tasks &#8211; well-defined, ill-defined, and undefined.</p>
<p>You can combine PERT estimates for the individual tasks, resulting in an overall estimate of the collection of tasks.</p>
<p><img class="alignnone" title="Combined PERT Estimates" src="http://sehlhorst.smugmug.com/photos/567787127_5TbDg-L.png" alt="" width="450" height="327" /></p>
<p>The beauty of this approach is that the <a title="Central Limit Theorem" href="http://en.wikipedia.org/wiki/Central_limit_theorem">central limit theorem</a>, and <a title="Law of Large Numbers" href="http://en.wikipedia.org/wiki/Law_of_large_numbers">the law of large numbers</a>, work to help you estimate a collection of tasks &#8211; you can actually provide better estimates of a group of tasks than a single task.  This obviously helps with the <em>well-defined</em> tasks that you know about at the start of the project.  This even helps with the <em>ill-defined</em> tasks.  Rationalists will argue that the key, then, is to do more up-front research to discover the <em>undefined</em> tasks &#8211; and then we&#8217;re set.  As Frederick Brooks (<em>Mythical Man-Month</em>) points out in <em><a title="The Design of Design" href="http://tynerblain.com/blog/2010/07/06/the-design-of-design/">The Design of Design</a></em>, this debate has been going on since Descartes and Locke.  It is not a new idea.</p>
<p>Big Up-Front Design and Requirements (BUFD &amp; BUFR) hasn&#8217;t worked particularly well, so far.</p>
<p><img class="alignnone" title="baby boy" src="http://sehlhorst.smugmug.com/Other/blog/i-Szbjk5c/0/O/baby.jpg" alt="" width="250" height="174" /></p>
<p>Don&#8217;t throw out the baby with the bath-water, however.  The math of estimation is still important and useful.  Even if empiricism is not the silver bullet.</p>
<h1>Prediction</h1>
<p>Estimation is a form of prediction.  Even agile teams do it.  In Scrum, you estimate a collection of user stories &#8211; in story points that represent complexity, and you <em>predict</em> how many points the team can complete in <em>this sprint</em>.  Note the time factor.  If you&#8217;re working a two-week sprint, there is very little risk of changes in staffing during a two-week period.  There&#8217;s also very little risk that your market will change significantly in two weeks &#8211; and if it does, what are the odds that you will notice <em>and</em> materially change your requirements in <em>two weeks</em>?</p>
<p>Visually, let&#8217;s take that PERT estimate and turn it sideways &#8211; so we can introduce the dimension of time.  Imagine you estimated all of the tasks (well-defined, ill-defined, and a <em>guess</em> about the undefined), <em>as if they were all to happen in the first sprint</em>.  Ignore inter-task dependencies, and pretend you had unlimited resources and the ability to perform all tasks in parallel.</p>
<p><img class="alignnone" title="Estimate Without Time" src="http://sehlhorst.smugmug.com/Other/blog/i-84bwNmj/0/O/20110808Prediction-and.png" alt="" width="450" height="365" /></p>
<p>The graph above shows the aggregate estimate &#8211; the circle is your best <em>prediction</em>, with error bars representing your confidence interval in the estimate.  If you were using PERT estimates, these could represent that 5% and 95% confidence lines.  Subjectively pick something based on your team&#8217;s experience in the domain and your confidence in your guesses (about the <em>undefined</em> tasks).</p>
<p>We need a segue into the &#8220;best of waterfall&#8221; approach to estimating projects, to steal and invert a good idea.</p>
<h1>The Cone of Uncertainty</h1>
<p>The folks at <a title="Cone of Uncertainty" href="http://www.construx.com/Page.aspx?cid=1648">Construx have published a nice explanation of the <em>cone of uncertainty</em></a> &#8211; an adaptation of an idea from Steven McConnell&#8217;s <em>Software Estimation: Demystifying The Black Art</em> (2006).  That article uses his imagery with permission &#8211; so please go look at it there.  The idea is that as the project becomes better defined (e.g. <em>during the project</em>), the amount of uncertainty is reduced.</p>
<p>The findings show that initial estimates are off by 400% (either low by a factor of 4 or high by a factor of 4)!  Even after &#8220;nailing down&#8221; requirements, estimates are still off by 30% to 50%!</p>
<p>As bad as that sounds, it is actually worse.  This is a prediction for <em>the original project</em> (delivering pyramids).  Not only are your estimates wrong &#8211; but <strong>they are bad estimates for delivering <em>the wrong product</em></strong>.</p>
<p>But &#8211; the core idea is sound &#8211; the further into the future you have to execute, the greater the mistakes in your estimate.</p>
<p>Taking that concept, and applying it to our diagram, we get the following:</p>
<p><img class="alignnone" title="Cone of Uncertainty" src="http://sehlhorst.smugmug.com/Other/blog/i-qwXrRM4/0/O/20110808Prediction-and.png" alt="" width="450" height="363" /></p>
<p>The further into the future you are trying to <em>predict</em>, the less accuracy you have in your prediction.  This reduction in accuracy is reflected as a widening of the <em>confidence bands</em> for your estimate.</p>
<ul>
<li>A couple sprints&#8217; worth of work is not much different than one sprint &#8211; so your estimation range is not much changed.</li>
<li>An entire release of sprints (say 6 to 10 sprints) has much more opportunity for <em>the unknown</em> to rear its head.</li>
</ul>
<p>Now, your prediction is (probably) unusably vague and imprecise.  &#8221;This set of tasks will take X plus or minus a factor of two.&#8221;</p>
<p>That&#8217;s the reality.</p>
<p>Note: This has always been the reality.  People have historically reduced this &#8220;risk to timing&#8221; by hiding the &#8220;risk of change&#8221; aspects &#8211; and waterfall processes encourage you to deliver <em>the wrong thing, as close to on-time as possible.</em></p>
<p><em><img class="alignnone" title="Ostrich" src="http://sehlhorst.smugmug.com/Other/blog/i-FmRbFG8/0/O/ostrich.jpg" alt="" width="194" height="250" /></em></p>
<p>That&#8217;s not what we want to do, however.</p>
<p>We still want to deliver the (not-yet-defined) <em>right</em> product, as efficiently as possible.  That&#8217;s the goal of agile.  (For folks who haven&#8217;t been here at Tyner Blain for long &#8211; &#8220;right&#8221; includes both value and quality).</p>
<h1>Refinement</h1>
<p>Because we&#8217;re agile, and we&#8217;re willing to &#8220;get smarter&#8221; about our product over time, we have an opportunity to improve.  Because of the nature of compounding estimates and the cone of uncertainty, our uncertainty gets smaller over time.</p>
<p>Let&#8217;s remove our artificial simplification that we could do everything &#8220;right now&#8221; and look at what we think we know right now, about the end of the release.</p>
<p><img class="alignnone" title="today predicting the release" src="http://sehlhorst.smugmug.com/Other/blog/i-8mRL3Pd/0/O/20110808Prediction-and.png" alt="" width="450" height="363" /></p>
<p>Our ability to <em>predict</em> the amount of effort (for today&#8217;s definition of the product) at the end of the release is not very good.</p>
<p><img class="alignnone" title="release planning after first sprint" src="http://sehlhorst.smugmug.com/Other/blog/i-WjNhLZd/0/O/20110808Prediction-and.png" alt="" width="450" height="363" /></p>
<p>Our ability to predict (today&#8217;s definition of the product) one sprint into the future is much better.</p>
<p><img class="alignnone" title="predicting the release after one sprint" src="http://sehlhorst.smugmug.com/Other/blog/i-rmXLSKW/0/O/20110808Prediction-and.png" alt="" width="450" height="363" /></p>
<p>After completing the first sprint, we are <em>a little bit smarter</em> &#8211; the ill-defined tasks are better defined.  Maybe some of the undefined tasks are now ill-defined.  The same cone of uncertainty is now a little bit smaller &#8211; we are a little bit smarter, and the time horizon of the release date is a little bit closer.</p>
<p><img class="alignnone" title="cone of uncertainty shrinks with each sprint" src="http://sehlhorst.smugmug.com/Other/blog/i-42LNqnZ/0/O/20110808Prediction-and.png" alt="" width="450" height="363" /></p>
<p>The trend continues &#8211; each sprint gets us closer to the release date, and with each sprint (assuming we get feedback from our customers, and continue to study our markets) we get a little bit smarter.  We also get better at predicting the team&#8217;s velocity (how much &#8220;product&#8221; they can deliver during each sprint).</p>
<h1>Commitment</h1>
<p>Your boss still wants a commitment, however.  And that&#8217;s where we get to change the way we look at this (again).</p>
<p>The above diagrams all display how we converge on an estimate for a stable body of work.  However, we know that the body of work is constantly changing.</p>
<p>Backlog! [you say]</p>
<p>Yes!  The backlog.  The backlog is an ordered, prioritized list of user stories and bugs.  I was talking with Luke Hohmann of <a title="Innovation Games" href="http://innovationgames.com/">Innovation Games</a> last month, and one of<a title="Bang for the Buck Innovation Game" href="http://innovationgames.com/game_view/instant_play/KR25FMG33K0IKNKZV15JXCIXL4S4W1X2"> the most popular online Innovation Game</a>s is now the one they created based on <a title="Prioritize by Bang for the Buck" href="http://tynerblain.com/blog/2008/10/20/planning-sprints-part-2/">prioritizing by bang for the buck</a>.  Play it today online (for free!).  How cool is that?</p>
<p>The backlog represents the work the team is going to do &#8211; in the order in which the team is going to do it.  Over time, as we get smarter, we will add and remove items from the backlog &#8211; because we discover new capabilities that are important, and because we learn that some things aren&#8217;t worth doing.  We will even re-order the backlog as we recognize shifting priorities in the markets (or in our changing strategy).</p>
<p>As this happens, it turns out that the items at the top of the list are least likely to get displaced, and therefore most likely to still be part of the product by the time we get to the release.</p>
<p><strong>Instead of thinking about uncertainty in terms of how long it takes, think about uncertainty in terms of how much we complete in a fixed amount of time.</strong> In agile, generally, we apply<a title="Timeboxing Software Delivery" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/"> a timebox approach</a> to determining what gets built.</p>
<p>Now, uncertainty, instead of manifesting as &#8220;<em>when</em> do we finish?&#8221; becomes &#8220;<em>what</em> will we finish?&#8221;</p>
<p>Your boss is rational.  She appreciates the constraints, she just wants to know <em>what you can commit</em>.  Every boss I&#8217;ve worked with has been willing (sometimes only after much discussion) to treat this uncertainty in terms of <em>what</em> instead of <em>when</em>.  They acknowledge that they need to translate (usually for <em>their</em> boss) into a &#8220;fixed&#8221; commitment.</p>
<p>The solution: <em>commit </em>to a subset of what you <em>predict</em> you can complete.</p>
<p>At the start of the release, you may have 500 points worth of stories.  Based on your team&#8217;s expected velocity, and the number of sprints in the release, you <em>predict</em> that you can complete 320 points worth of stories (5 people on the team, a team velocity of 40 points per sprint, and 8 sprints in the release).  Starting at the top of the backlog and working down, draw a cut-line at the last story you can complete (when you reach 320 points).  This is your <em>prediction</em>.</p>
<p>Now the commitment part.  You&#8217;ll have to figure out what you&#8217;re comfortable with.  Maybe for 8 sprints (say, 16 weeks into the future), you may only be comfortable <em>committing</em> to half that amount &#8211; 160 points.  Go back to the top of the backlog, and count down until you reach 160 points.  Everything above the line is what you <em>commit</em> to delivering.</p>
<p>Maybe you are comfortable committing to 240 points, maybe only 80.  This is like playing spades.  The more you can commit to, without missing, the better off you are.  Your tolerance for risk is different than mine.</p>
<p>You can also <em>negotiate</em> with your boss.  Commit to 160 points now, and provide an update after every other sprint.  More likely than not, you will be <em>increasing</em> the scope of your commitment with every update.</p>
<p>Mid-project updates of &#8220;we can do more&#8221; are always better than &#8220;we can do less.&#8221;  And both are better than end-of-project surprises.  This also allows you to have updates that look like this:</p>
<p style="padding-left: 30px;">We didn&#8217;t know this at the start of the release, but X is really important to our customers &#8211; and we will be able to deliver X <em>in addition to</em> what we already committed.  Without slipping the release date.</p>
<h1>Conclusion</h1>
<p>Making commitments with an agile process is not impossible.  It just needs to be approached differently (if you want to stay true to agile).  The end result: better predictions, more realistic commitments, and the likelihood that each update will be good news instead of bad.</p>
<p>[Update: Changed initial image.  Thanks <a title="CC Attribution link" href="http://www.flickr.com/photos/archer10/">Dennis</a> for the great photo!]</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+Agile+Estimation%2C+Prediction%2C+and+Commitment+http%3A%2F%2Fbit.ly%2FnUdL7S+" 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/2011/08/09/agile-estimation/&amp;t=Agile+Estimation%2C+Prediction%2C+and+Commitment" 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/2011/08/09/agile-estimation/feed/</wfw:commentRss>
		<slash:comments>101</slash:comments>
		</item>
		<item>
		<title>Requirements Management Journey &#8211; Part 0</title>
		<link>http://tynerblain.com/blog/2011/05/24/requirements-management-0/</link>
		<comments>http://tynerblain.com/blog/2011/05/24/requirements-management-0/#comments</comments>
		<pubDate>Wed, 25 May 2011 00:09:02 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Data management]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements management software]]></category>
		<category><![CDATA[confluence]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[managing requirements]]></category>
		<category><![CDATA[requirements management]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1482</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F05%2F24%2Frequirements-management-0%2F", "shorturl": "http://bit.ly/mfAklo", "style": "big", "title": "Requirements Management Journey - Part 0" }); Requirements Management &#8211; I&#8217;m embarking on a journey to help several teams manage their requirements with their existing systems and tools.  This is the first in a series of articles, where the rubber meets the road.  I&#8217;ll look at both [...]]]></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%252F2011%252F05%252F24%252Frequirements-management-0%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FmfAklo%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Requirements%20Management%20Journey%20-%20Part%200%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F05%2F24%2Frequirements-management-0%2F", "shorturl": "http://bit.ly/mfAklo", "style": "big", "title": "Requirements Management Journey - Part 0" });</script></div>
<p><img class="alignnone" title="Roadmap" src="http://sehlhorst.smugmug.com/Other/blog/i-NB6K49F/0/O/map-and-compass.jpg" alt="" width="250" height="167" /></p>
<p>Requirements Management &#8211; I&#8217;m embarking on a journey to help several teams manage their requirements with their existing systems and tools.  This is the first in a series of articles, where the rubber meets the road.  I&#8217;ll look at both the theory and the realities of what works (and doesn&#8217;t) in practice.  I hope you&#8217;ll come along for the ride.<br />
<span id="more-1482"></span></p>
<h2>The Idea That Makes it Tricky To Manage Requirements</h2>
<p>OK, so I&#8217;m working with a product management team that is working with multiple software development teams.  The development teams already have tools and systems in place for tracking work within projects.  The development teams are mostly using Atlassian&#8217;s JIRA for tracking activity.  The teams also have Atlassian&#8217;s Confluence wiki for capturing &#8220;other stuff.&#8221;</p>
<p>The development team has a good working process for managing their delivery activities within the &#8220;JIRA world.&#8221;  From the top down view, you find a project (in JIRA) that represents what will be delivered in a particular release.  Within that project, you see the issues (or user stories or requirements) and associated tasks that were previously scheduled for that release.</p>
<p>This is pretty effective for getting a handle on <em>what&#8217;s happening</em>.  Where it falls short is in getting a comprehensive understanding of <em>why it is happening</em>.  And that&#8217;s the view product managers need.</p>
<p><em>Why</em> something needs to happen is completely different from <em>when</em> something needs to happen.  That&#8217;s what makes this tricky.  Consider the following analogy.</p>
<p style="padding-left: 30px;">You&#8217;re driving across the country from Los Angeles (LA) to Manhattan (NYC).  Your goal is to get to Manhattan.  Your product manager creates a map, breaking down, roughly, how you will get from LA to NYC.  Your product manager is riding shotgun in the car, and he&#8217;s responsible for telling the driver where to go.  Your developer is driving the car, and is responsible for getting the car wherever the product manager tells him.  They share the responsibility for getting to NYC &#8211; neither of them can do it alone.</p>
<p style="padding-left: 30px;"><img class="alignnone" title="Car Seat" src="http://sehlhorst.smugmug.com/Other/blog/i-knkZNPD/0/O/car-seat.jpg" alt="" width="250" height="187" /></p>
<p style="padding-left: 30px;">They climb in the car, and start driving.  When the developer has a question about a particular way to go (which highway to take, etc), they <em>communicate</em>.  Together, they make great progress.  After a while, the gas tank is empty, and they stop to fill up.  This is a logical break in the drive, and they stretch their legs, get some dinner, whatever.  With a full tank of gas, they get back in the car and start driving again.</p>
<p>Managing <em>requirements</em> inside the context of a release (in JIRA) is like saying every time you stop for gas (finish a release), you should create a new map.  The goal (destination) is independent of the release cycles (gas tanks).  The requirements should live outside the release.  However, the turn-by-turn information is useful inside the release.  The product manager needs to provide the next level of detail (first, get to Las Vegas, then stay at the Westin,&#8230;) for each &#8220;tank of gas&#8221; &#8211; after which, that information is not very valuable, and can be discarded.  But the goal (reach NYC) stays alive.</p>
<p>A process and system for managing requirements should not force product managers to recreate documentation for each release.  Your stakeholder (perhaps you&#8217;re delivering a donated kidney to a hospital) needs to know when you&#8217;re going to deliver the kidney.  The last place they should have to look for that information is within the context of the current project.</p>
<p>This is what makes it tricky.</p>
<h2>JIRA and Confluence</h2>
<p>This is not a series of articles around picking the best requirements management solution available today.  These articles will cover the exploration of using JIRA and Confluence to make (1) the product management teams more effective, and (2) the combined product delivery teams (management, marketing, development, quality) more effective.  We&#8217;re faced with a real-world constraint that we will use these tools that are already in place.</p>
<h2>Product Management Goals</h2>
<p>There are a series of goals that we have, that will inspire our implementation choices (of <em>how</em> we use Confluence and JIRA), and ultimately provide the measure of our success.</p>
<ul>
<li>We will not remove or regress things that are working today.  The implementation teams (development and test) are delivering products, and using JIRA to track issues and tasks.  Whatever we do must not <em>break</em> this current world.</li>
<li>As product managers, we are continually investing in, and updating, <a title="Customer-Centric Market Model" href="http://tynerblain.com/blog/2010/09/20/customer-centric-market-model/">our understanding of our markets</a>.  We need a solution that allows us to record that information in a way that we can (a) share with each other effectively, (b) remember what we need to remember, (c) make changes as needed so that the view we have documented is always reflected of the understanding we have &#8220;in our heads.&#8221;</li>
<li>As a delivery team, we need to connect the two worlds (&#8220;what am I doing&#8221; and &#8220;why are you doing it&#8221;), so that the product managers can let the implementation team know what to do next (and what they will eventually be working on).</li>
<li>As a company, we need to set and manage expectations &#8211; internally to stakeholders and externally to customers and partners.</li>
</ul>
<p>These are the problems we&#8217;ll be tackling.</p>
<p>This series of articles will capture elements of implementation choices, why we made them, and the rationale &#8220;behind the whys.&#8221;</p>
<p>I hope you&#8217;ll come along for the ride.</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+Management+Journey+%E2%80%93+Part+0+http%3A%2F%2Fbit.ly%2FmfAklo+" 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/2011/05/24/requirements-management-0/&amp;t=Requirements+Management+Journey+%E2%80%93+Part+0" 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/2011/05/24/requirements-management-0/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Nokia&#8217;s Smartphone Strategy &#8211; Maximin</title>
		<link>http://tynerblain.com/blog/2011/02/10/nokias-smartphone-strategy-maximin/</link>
		<comments>http://tynerblain.com/blog/2011/02/10/nokias-smartphone-strategy-maximin/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 03:24:30 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[elop]]></category>
		<category><![CDATA[game theory]]></category>
		<category><![CDATA[maximin]]></category>
		<category><![CDATA[minimax]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[windows phone 7]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1448</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F02%2F10%2Fnokias-smartphone-strategy-maximin%2F", "shorturl": "http://bit.ly/e6VN50", "style": "big", "title": "Nokia's Smartphone Strategy - Maximin" }); Nokia, the Finnish mobile phone manufacturer, is getting clobbered as their market rapidly moves away from them.  Recent analyst reports show that Android and iOS (Apple&#8217;s platform) based phones are rapidly gaining market share.  Nokia sells neither.  Nokia has a major [...]]]></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%252F2011%252F02%252F10%252Fnokias-smartphone-strategy-maximin%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fe6VN50%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nokia%27s%20Smartphone%20Strategy%20-%20Maximin%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F02%2F10%2Fnokias-smartphone-strategy-maximin%2F", "shorturl": "http://bit.ly/e6VN50", "style": "big", "title": "Nokia's Smartphone Strategy - Maximin" });</script></div>
<p><img class="alignnone" title="Nokia Logo - 2011" src="http://sehlhorst.smugmug.com/Other/blog/nokialogo/1183836296_ND336-O.jpg" alt="" width="250" height="152" /></p>
<p><a title="Nokia" href="http://www.nokia.com">Nokia</a>, the Finnish mobile phone manufacturer, is getting clobbered as their market rapidly moves away from them.  Recent analyst reports show that Android and iOS (Apple&#8217;s platform) based phones are rapidly gaining market share.  Nokia sells neither.  Nokia has a major press event in a few hours, where they will announce their smartphone strategy.  I think a maximin strategy is both likely and correct.</p>
<p><span id="more-1448"></span></p>
<h2>Nokia&#8217;s Press Event on Friday 11 Feb, 2011</h2>
<p><a title="Reuters press event reporting" href="http://www.reuters.com/article/2011/02/11/nokia-idUSLDE7190VI20110211">Reuters is reporting a press event</a> from Nokia in London, at 0730 GMT (just over 4 hours from now) &#8211; where new president and CEO, <a title="Stephen Elop" href="http://en.wikipedia.org/wiki/Stephen_Elop">Stephen Elop</a> will announce Nokia&#8217;s smart phone strategy.  Previously, Elop was the head of the Microsoft business division.</p>
<h2>Nokia&#8217;s Current Situation</h2>
<p>As a very quick background &#8211; Nokia already has a smart phone platform, called Symbian, which was dominating the market until manufacturers began shipping iOS and Android based devices.  They &#8220;owned&#8221; the market, <a title="Nokia loses market share" href="http://www.newsfactor.com/story.xhtml?story_id=0220025W17RK">but don&#8217;t any more</a>.  This is a great example of the <em><a title="Innovator's Dilemma" href="http://www.amazon.com/exec/obidos/ASIN/0060521996/tynerblain-20/">Innovator&#8217;s Dilemma</a></em>.</p>
<p>Keeping things &#8220;as is&#8221; is not a viable option for Nokia &#8211; they have to change.  Significantly.</p>
<p>The Wall Street Journal is reporting that they received a copy of a leaked memo where Mr. Elop telegraphed that things will be changing.  From <a title="Nokia memo" href="http://www.newsfactor.com/story.xhtml?story_id=0220025W17J0">Jennifer LeClaire&#8217;s reporting</a> of <em>The Journal&#8217;s</em> reporting:</p>
<blockquote><p>According to the Journal, the memo describes Nokia as cornered by competitors and in need of a major transformation. Elop compared Nokia to a man standing on a burning oil platform who jumps into icy waters to escape the flames, the Journal reported.</p>
<p><cite><a title="Newsfactor Nokia article" href="http://www.newsfactor.com/story.xhtml?story_id=0220025W17RK">Jennifer LeClaire, Newsfactor</a></cite></p></blockquote>
<p>Several great journalists and technology reporters have articulated Nokia&#8217;s current situation and the state and direction of the mobile phone industry &#8211; including the &#8220;inevitable&#8221; cannibalization of feature phones by smart phones.  Instead of repeating their synopses &#8211; I&#8217;ll link to <a title="Rojas on Nokia" href="http://gdgt.com/discuss/its-amazing-see-how-many-nokia-fanboys-c9s/">a particularly good analysis from Peter Rojas at GDGT.com</a>.</p>
<p>Mr. Rojas sums up that Nokia is presented with the following choice of two options, and the possible outcomes of both (bold is mine):</p>
<blockquote><p><strong>Nokia now has to either dig in and find a way to create its own mobile ecosystem</strong>, complete with amazing handsets and a world-class OS that developers want to make apps for (something which is becoming harder with each passing day as iOS and Android further entrench themselves), <strong>or it needs to suck it up and work with an existing platform</strong> and try and use its massive resources to become the dominant player on that platform.</p>
<p>[...]</p>
<p><strong>If Nokia bets big</strong> on being able to create a game-changing ecosystem <strong>and it fails</strong> to catch on in the market, t<strong>here will be no salvaging the company at that point</strong>.</p>
<p>[...]</p>
<p>I have no doubt that the prospect of <strong>a Nokia handset running [Android or Windows Phone 7]</strong> worries Samsung, HTC, Motorola, Sony Ericsson, and LG, all of which are trying furiously to compete with the iPhone right now. The last thing they want is for Nokia to have a serious option in the high-end of the market. [...] The market is overcrowded with Android phones right now, and Nokia <strong>isn&#8217;t necessarily going to dominate it or even stand out, at least not without a ferocious fight</strong>.</p>
<p>[...]</p>
<p>So it may be that Nokia hedges its bets and introduces either Android or WP7 on a smattering of handsets in order to buy itself some time while it works on creating its own ecosystem. [...] Buying some time like this isn&#8217;t an elegant strategy, [...] but it&#8217;s probably the least bad of Nokia&#8217;s bad options.</p>
<p><cite><a title="GDGT Nokia Analysis" href="http://gdgt.com/discuss/its-amazing-see-how-many-nokia-fanboys-c9s/">Peter Rojas, GDGT</a></cite></p></blockquote>
<h2>Summarizing Nokia&#8217;s Strategic Choices</h2>
<p>There are many factors and variables that make this situation <em>look</em> complex &#8211; but they roll up into a choice for Nokia between two strategies (excluding the uninteresting strategy of <em>business as usual</em>):</p>
<ol>
<li>Aggressively invest in their own software platform so that it becomes competitive with alternatives that are available to their customers.</li>
<li>Adopt one of the competitive software platforms, and focus on differentiating their hardware.</li>
</ol>
<p>The first strategy has the largest possible downside, and the largest possible upside.  If the first strategy fails, Nokia becomes <em>irrelevant</em> in the smart phone market.  The definition of success for this strategy leads to massive relevance (and profits).</p>
<p>The second strategy has a downside that keeps Nokia in the smart phone business, but as just another one of many manufacturers.  Not great, but not as bad as exiting the market.  The upside of the second strategy is also not as appealing as winning with the first strategy.  The best Nokia can do is be the &#8220;hardware winner&#8221; but without control over the software environment.  Even if there were as much profit opportunity, the risk that comes with lack of control would discount the value of winning with this strategy in Nokia&#8217;s eyes.</p>
<h2>The Maximin Strategy &#8211; Game Theory</h2>
<p>When you focus on the two choices &#8211; one with large up and downsides, and one with moderate up and downsides, you see that Nokia is facing a choice, in game theory, of adopting either the <a title="Maximin and Minimax Strategies" href="http://en.wikipedia.org/wiki/Minimax"><em>minimax</em> or <em>maximin</em> strategy</a>.</p>
<p>Nokia can either pick the strategy that has the highest possible <em>best case</em>, or pick the strategy that has the highest possible <em>worst case</em> outcome.</p>
<p>A <em>maximin </em>strategy maximizes the &#8220;minimum guaranteed payout&#8221; in game-theory-jargon.  Translated, it is the <em>conservative</em> approach &#8211; minimize the downside of failing in the execution of the strategy.  Mr. Rojas describes Nokia s a company that has &#8220;internalized a culture of mediocrity&#8221; (see <a title="Nokia is mediocre" href="http://gdgt.com/discuss/nokias-fear-failure-as-im-sure-you-abc/">his previous analysis for more details</a>).</p>
<p>If Mr. Rojas&#8217; analysis is even close to accurate, it seems like any strategy other than maximin would be foolhardy &#8211; almost as bad as changing nothing.</p>
<p>Nokia should definitely take the conservative strategy, using <em>maximin</em> to attempt to ensure that &#8220;the worst&#8221; is not that bad.  And that means embracing [at least*] one of the other <em>already successful</em> smart phone software platforms for their future devices.</p>
<h2>Nokia&#8217;s Next Move</h2>
<p>In a few hours we will learn what Mr. Elop has decided to do.  Or, if you heard about his decision first and are reading this second, you&#8217;ll now have either a favorable opinion of my analysis or not.</p>
<p>Last week, on <em><a title="This Week in Tech" href="http://twit.tv/286">This Week in Tech</a></em>, John C. Dvorak made an eloquent argument as follows:</p>
<ul>
<li>Nokia can&#8217;t survive with business as usual.</li>
<li>An &#8220;invest in Symbian&#8221; strategy is actually a red herring &#8211; Nokia is <em>already doing that &#8211; but failing</em> &#8211; so it would lead to assured destruction, and Nokia therefore <em>must</em> embrace another platform.</li>
<li>Mr. Elop, as a former Microsoft person, would lose credibility if Nokia were to choose Windows Phone 7 as their platform.</li>
<li>Mr. Elop, as a former Microsoft person, would not choose &#8220;only Android&#8221; because of the fallout it would cause in injuring Microsoft (as a perceived gesture of &#8220;lack of faith in Windows Phone 7&#8243;).</li>
<li>Mr. Elop, therefore, will choose to introduce Nokia smart phones based on <em>both</em> Android and Windows Phone 7.</li>
</ul>
<p>While I <em>happen to agree</em> with Mr. Dvorak&#8217;s analysis of the futility of <em>doubling down</em> on Symbian &#8211; primarily because of the challenges Mr. Rojas articulated in his article, that almost doesn&#8217;t matter.</p>
<p>Even if Nokia does have a viable strategic choice of investing in Symbian, they shouldn&#8217;t.  The risk of failing to overcome a culture of mediocrity is too great.</p>
<p>Nokia&#8217;s &#8220;best&#8221; choice is to adopt either (or both) Windows Phone 7 or Android as their official platform moving forward.  As Mr. Dvorak points out &#8211; doing both could be very smart.  The two platforms were built with <a title="Developing Distinct Personas" href="http://tynerblain.com/blog/2006/04/17/persona-grata/">different personas</a> in mind, and Nokia should offer phones for each group of people, based on the platforms designed for each group.</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+Nokia%E2%80%99s+Smartphone+Strategy+%E2%80%93+Maximin+http%3A%2F%2Fbit.ly%2Fe6VN50+" 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/2011/02/10/nokias-smartphone-strategy-maximin/&amp;t=Nokia%E2%80%99s+Smartphone+Strategy+%E2%80%93+Maximin" 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/2011/02/10/nokias-smartphone-strategy-maximin/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Everything Old is New Again</title>
		<link>http://tynerblain.com/blog/2011/02/03/everything-old-is-new-again/</link>
		<comments>http://tynerblain.com/blog/2011/02/03/everything-old-is-new-again/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 23:54:19 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[market driven]]></category>
		<category><![CDATA[migration continuum]]></category>
		<category><![CDATA[migration projects]]></category>
		<category><![CDATA[project goals]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1434</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F02%2F03%2Feverything-old-is-new-again%2F", "shorturl": "http://bit.ly/hyO0sa", "style": "big", "title": "Everything Old is New Again" }); A lot of teams that I&#8217;ve worked on and with get hung up when thinking about defining requirements for &#8220;migration projects&#8221; and &#8220;system upgrades.&#8221;  There&#8217;s some intangible barrier to being market focused when it comes to improving existing internal systems.  Every [...]]]></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%252F2011%252F02%252F03%252Feverything-old-is-new-again%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FhyO0sa%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Everything%20Old%20is%20New%20Again%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F02%2F03%2Feverything-old-is-new-again%2F", "shorturl": "http://bit.ly/hyO0sa", "style": "big", "title": "Everything Old is New Again" });</script></div>
<p><img class="alignnone" title="blindfolded programmers" src="http://sehlhorst.smugmug.com/Other/blog/blindfolded-typists/1176759477_Ltfqp-O.jpg" alt="" width="250" height="180" /></p>
<p>A lot of teams that I&#8217;ve worked on and with get hung up when thinking about defining requirements for &#8220;migration projects&#8221; and &#8220;system upgrades.&#8221;  There&#8217;s some intangible barrier to being <em>market focused</em> when it comes to improving <em>existing internal systems</em>.  Every <em>new</em> product represents a solution to an existing problem.  Why do so many projects move forward with teams that are blind to the actual requirements?</p>
<p><span id="more-1434"></span></p>
<h2>New Products</h2>
<p><img class="alignnone" title="tangled cassette tape" src="http://sehlhorst.smugmug.com/Other/blog/cassette-small/1176536700_4yVVB-O.jpg" alt="" width="250" height="187" /></p>
<p>Even &#8220;revolutionary&#8221; products like the iPod are just addressing existing market problems.  Part of what makes this statement true is looking at things from a market perspective &#8211; thinking about the <em>valuable</em> problems that people are willing to pay to solve.  Even if the iPod were the first mp3 player (<a title="The first mp3 player" href="http://reviews.cnet.com/4520-6450_7-5622055-1.html">it wasn&#8217;t</a>), it would still only be an improvement.  The first mp3 player was not <em>new</em>, it provided an improved way to listen to your music on the go.  You could put your whole music library in your pocket.  Much better than a stack of cassettes melting in the glove box of your car, or a tape getting caught on your keys and unraveled when you pull it out of your backpack.</p>
<p>What&#8217;s important, and difficult (especially for people with technology backgrounds), is to think about it in terms of what people are trying to accomplish &#8211; not <em>how</em> they are trying to accomplish it.  In a business process view, it is the difference between process (why) and procedure (how).</p>
<p>There&#8217;s <a title="continuum of migration projects" href="http://tynerblain.com/blog/2006/03/15/organizing-a-software-migration-project/">a continuum of migration projects</a>, ranging from <em>completely new</em> to <em>identical </em>processes.  Neither extreme <em>technically</em> exists &#8211; think of it as a range from infinite change in the existing process to 1 / (infinite change) in the existing process.</p>
<p><img class="alignnone" title="migration project continuum" src="http://sehlhorst.smugmug.com/photos/59244846-M.png" alt="" width="501" height="196" /></p>
<p>Near the &#8220;completely new process&#8221; /<em>infinite change</em> end of the spectrum are processes that are completely new <em>to you</em>.  Remember, you&#8217;re solving a problem, perhaps in a very innovative way, that people are already solving some other way.  You&#8217;re just providing a better solution approach.</p>
<p>Near the <em>identical process</em> end of the spectrum are projects are &#8220;pin-compatible&#8221; platform migrations and near-sighted legacy system migrations.  Moving from an old gas-guzzling car to a new, more efficient model is a good example.  I mention &#8220;near sighted&#8221; because that old system was designed to meet an old set of market needs, so the new system will, by definition, not meet current market needs &#8211; it will only meet the old market needs.  Pragmatically, when considering organizational change, it may make sense to do your system upgrade in two stages: migrate the systems (&#8220;nearly identical process&#8221;) and deal with all the gotchas of migration <em>first</em>, then start re-engineering the processes and optimizing the procedures to address new market needs (major and minor process changes, respectively) <em>second</em>.</p>
<p>Set aside the possible, possibly rational rationale* to migrate the implementation first, and the functionality second.  Consider that a deployment and logistics detail and get back to the problem at hand.  Most of the times I&#8217;ve been involved in system migrations, they have been initiated as cost-savings platform projects.  Over the last few years, more often the migration project gets prioritized as a means to an end &#8211; &#8220;doing <em>new thing X</em> is prohibitively expensive on the old system.&#8221;  That opens the door to talking about goals.</p>
<p style="padding-left: 30px;">* Couldn&#8217;t pass that one up.</p>
<h2>Capturing Goals</h2>
<p>On a recent project to migrate part of a company&#8217;s operations from one platform to another (system consolidation, after an acquisition), I created the following <a title="Ishikawa Diagrams of Goals" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">Ishikawa diagram</a> to represent the goals for the migration project.</p>
<p><img class="alignnone" title="migration project goals" src="http://sehlhorst.smugmug.com/Other/blog/blurred-ishikawa/1176737644_DctZG-O.png" alt="" width="450" height="259" /></p>
<p>Even a &#8220;don&#8217;t change anything&#8221; project has real underlying goals.  Once you discover them, you open the door to having conversations about making things <em>better</em>.  Might be a &#8220;do it later&#8221; situation, but often, there is an opportunity to grab some of the <em>low-hanging fruit</em> during the system implementation.</p>
<p>The most important reason to capture the goals when &#8220;everyone already knows the goals&#8221; &#8211; aside from the fact that that is never true &#8211; is to make sure decisions are being made eyes-open.</p>
<p>Requirements live outside of the timeline of a particular project.  Once you&#8217;ve identified those requirements (aka market needs / company strategy), the next question is to determine which of those goals <em>this</em> project is intended to support or advance.  That question drives a lot of clarity into strategic thinking, and those answers drive a lot of clarity into project execution.</p>
<p><img class="alignnone" title="blind typists" src="http://sehlhorst.smugmug.com/Other/blog/blindfolded-typists/1176759477_Ltfqp-O.jpg" alt="" width="250" height="180" /></p>
<p>When you don&#8217;t share the context of the goals of the project, you are effectively blindfolding your team.  You prevent them from discovering opportunities to make things better.  You prevent them from making the <em>right </em>choice, when decisions are otherwise (without the context of goals) arbitrary.</p>
<p>For example, we talk about <a title="satisficing" href="http://tynerblain.com/blog/2008/11/12/satisficing-sprints/">satisficing </a>as a means to know when to ship &#8211; when it is &#8220;good enough.&#8221;  Without context, the <em>opinion</em> of &#8220;good enough&#8221; comes from someone on the team, without guidance.  In an agile environment, with <em>self-directed</em> teams, you&#8217;re making a trust-based decision to explicitly empower the team to make those decisions.  Don&#8217;t you want to give them some information, to help them make that decision?</p>
<h2>Conclusion</h2>
<p>This article really only explores <em>part</em> of the process of making real, large, projects happen in large environments.  That is a topic I&#8217;ll be talking about in a couple months.  You won&#8217;t get a sense of sated accomplishment from reading just <em>this</em> article &#8211; too much of the end-to-end, start-to-finish of real projects is unaddressed.</p>
<p>You will, however, know how to start the project.  Define the goals.  Someone will tell you the goal is to &#8220;Copy what the old system did.  We don&#8217;t have time to re-engineer.  Why are you bothering me?  Let me know if I need to find someone who can get the job done.&#8221;</p>
<p>Now you know how to respond.</p>
<p>**Attributions</p>
<p>Thanks <a title="foxtongue on flickr" href="http://www.flickr.com/photos/foxtongue/">foxtongue </a>for the blindfolded typists photo</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+Everything+Old+is+New+Again+http%3A%2F%2Fbit.ly%2FhyO0sa+" 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/2011/02/03/everything-old-is-new-again/&amp;t=Everything+Old+is+New+Again" 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/2011/02/03/everything-old-is-new-again/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Prioritize Features!</title>
		<link>http://tynerblain.com/blog/2011/01/21/dont-prioritize-features/</link>
		<comments>http://tynerblain.com/blog/2011/01/21/dont-prioritize-features/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 06:51:26 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Kano Analysis]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[estimation]]></category>
		<category><![CDATA[Kano analysis]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1429</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F01%2F21%2Fdont-prioritize-features%2F", "shorturl": "http://bit.ly/e0x9f0", "style": "big", "title": "Don't Prioritize Features!" }); Estimating the &#8220;value&#8221; of features is a waste of time.  I was in a JAD session once where people argued about if the annoying beeping (audible on the conference line) was a smoke alarm or a fire alarm.  Yes, you can get to [...]]]></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%252F2011%252F01%252F21%252Fdont-prioritize-features%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fe0x9f0%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Don%27t%20Prioritize%20Features%21%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F01%2F21%2Fdont-prioritize-features%2F", "shorturl": "http://bit.ly/e0x9f0", "style": "big", "title": "Don't Prioritize Features!" });</script></div>
<p><img class="alignnone" title="Smoke Alarm" src="http://sehlhorst.smugmug.com/Other/blog/smoke-alarm/1163238793_Dai8d-O.jpg" alt="" width="250" height="187" /></p>
<p>Estimating the &#8220;value&#8221; of features is a waste of time.  I was in a JAD session once where people argued about if the annoying beeping (audible on the conference line) was a <em>smoke</em> alarm or a <em>fire</em> alarm.  Yes, you can get to an answer, but <em>so what?!</em> The important thing is to solve the problem.</p>
<p><span id="more-1429"></span></p>
<h2>Solutions Versus Features</h2>
<p>Everyone on that conference call had an immediate and visceral appreciation of the value of <em>making the beeping stop</em>.  That&#8217;s the power of solving a problem.  The <em>methods </em> of solving the problem &#8211; mute the offender, replace the battery, throw the alarm out the window &#8211; do not have implicit value.  They have an <em>indirect</em> value, in an &#8220;end justifies the means&#8221; kind of way.  But not direct value.</p>
<p>The same sort of thing applies when talking about prioritizing features.  Eric Krock (<a title="Eric Krock on Twitter" href="http://twitter.com/#!/voximate">@voximate</a>) just wrote a really good article, <em><a title="Calculating ROI per Feature" href="http://www.voximate.com/blog/article/822/per-feature-roi-stupid/">Per-Feature ROI Is (Usually) a Stupid Waste of Time</a></em>, where he does two great things, and (barely) missed an opportunity for a hat trick.</p>
<p>The first great thing Eric did was look at the challenges of determining relative (ordinal or cardinal) value of &#8220;several things.&#8221;  He points out several real world challenges:</p>
<ol>
<li>When you have a product with <em>several things already</em> and you want to determine the value of <em>yet another thing</em> &#8211; how do you allocate a portion of future revenue <em>to the new thing</em> versus the things you already have?</li>
<li>When thing A and thing B have to be delivered together, to realize value, how do you prioritize things A &amp; B?  Relative to each other?</li>
<li>The opportunity cost of having your product manager do a valuation exercise on a bunch of things is high.  She could be doing more valuable things.</li>
<li>You won&#8217;t perform a retrospective on the accuracy of your valuation.  So you won&#8217;t know if it was a waste of time, and you won&#8217;t get better at future exercises.</li>
</ol>
<p>The second great thing Eric did was reference a Tyner Blain article from early 2007 on <a title="Measuring the Costs of Features" href="http://tynerblain.com/blog/2007/02/05/calculating-roi-and-measuring-costs/">measuring the costs of features</a>.  I mean &#8220;great&#8221; on three levels.</p>
<ol>
<li>As a joke (for folks who don&#8217;t know me, figured I&#8217;d mention that I&#8217;m kidding, just in case you get the wrong idea).</li>
<li>There is some good stuff in that earlier costing article about allocation of fixed and variable costs (with a handy reminder.</li>
<li>Eric&#8217;s article gives me an opportunity to shudder at the language I was using in 2007, see how much some of my thinking has evolved in four years, and improve a bit of it here and now.</li>
</ol>
<p>What Eric slightly missed is the same thing I completely missed in 2007 &#8211; features don&#8217;t have inherent value.  Solutions to problems do have value.  He only slightly missed it because he got the <a title="Problem Manifestations and Underlying Problems" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">problem manifestation</a> right &#8211; it takes a lot of effort, for little reward, to spend time thinking about what features are worth.  I also missed the opportunity in an article <a title="Utility Curves and ROI" href="http://tynerblain.com/blog/2007/02/07/prioritization-with-roi-and-utility/">looking at utility curves as an approach to estimating benefits</a>, written two days after the one on cost allocation.  We were both <em>so close</em>!</p>
<p><strong>People don&#8217;t buy features.  They buy solutions.</strong></p>
<h2>Valuing Solutions Instead of Features</h2>
<p>Estimating the value of solutions addresses a lot of the real problems that Eric calls out.  It also has a side benefit of keeping your perspective <em><a title="Outside-In thinking" href="http://tynerblain.com/blog/2007/09/27/outside-in/">outside-in</a></em> versus <em>inside-out</em>.  Or as others often say, it keeps you &#8220;market driven.&#8221;</p>
<p>Anything that you&#8217;re doing, as a product manager, that has you focused on understanding your market and your customers and their problems is a good thing.  It may even be the most important thing.  I would contend that it eliminates objection 3 &#8211; the opportunity cost of estimating the value of <em>solutions</em> is minimal or zero.  There may be activities with more urgency, but off the top of my head, none that are more important, for a product manager.</p>
<p>Comment if I&#8217;m missing something (it&#8217;s late and I just got home from another week on the road).</p>
<p>The way I approach determining the value of a solution is by developing a point of view about how much incremental profit I will get when my product starts solving this additional problem.  Revenue can increase from additional sales, or from the ability to increase prices.  Cost can increase if new marketing and other operations (launches, PR campaigns, etc) are required to realize the incremental revenue.</p>
<p>I start with a <a title="Customer-Centric Market Model" href="http://tynerblain.com/blog/2010/09/20/customer-centric-market-model/">customer-centric market model</a>.</p>
<p><img class="alignnone" title="Customer Centric Market Model" src="http://sehlhorst.smugmug.com/Other/blog/20100915Big-Market-Overview450/1015188438_YekhJ-O.png" alt="" width="450" height="393" /></p>
<p>A given solution, or improved solution (as in &#8220;solves the problem better,&#8221; or &#8220;solves more of the problem&#8221;) &#8211; which only applies to <a title="Kano Analysis of Problems" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">some problems</a> &#8211; is interesting to <em>some</em> customers, in <em>some</em> market segments.</p>
<p>A solution has value when it brings in incremental customers, in a targeted market segment.  It also has value when it reduces or prevents erosion of your current customer base (in a SaaS or maintenance-revenue model) to competitive solutions.</p>
<p>The time you spend thinking about <a title="buyer persona vs user persona" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">buyer and user personas</a>, the problems they care about, and <a title="Kano Analysis for Product Managers" href="http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/">the nature of those problems (which varies by persona)</a> is not time wasted &#8211; or even spent &#8220;at the cost of doing something else.&#8221;</p>
<p>To make this useful, you have to have a forecast &#8211; without <em>solution A</em>, we will sell X; with <em>solution A</em> we will sell Y (and to whom).  A good product manager will be looking at sales, and will be able to reconcile the sales with the projections.  That helps with objection 4 (but doesn&#8217;t completely address it &#8211; you don&#8217;t know if your projections were accurate, so you can&#8217;t really know if your estimation is accurate).</p>
<p>This also helps you deal with challenge #1.  You&#8217;ve got a model that says &#8220;the current product works great for high school students, but not college students, because they also have problem A, which they solve today by&#8230;&#8221; Your intention is to create solution A, making your product viable to college students.  Allocate the incremental profits from college-student sales to solution A.</p>
<p>My approach to challenge #2 is a little more tactical.</p>
<h2>Coupled Solutions</h2>
<p>There are a couple ways that Eric&#8217;s &#8220;must deliver A <em>and</em> B&#8221; scenario are interesting, when looking at the value of solutions.</p>
<p><strong>Scenario 1</strong>: Solution A solves part of problem X for persona M.  Solution B solves part of problem X for persona M.  Combined, they solve <em>more of</em> problem X for persona M.</p>
<p>This makes sense for &#8220;more is better&#8221; problems &#8211; where &#8220;more&#8221; solution yields &#8220;more&#8221; value.</p>
<p><img class="alignnone" title="more is better" src="http://sehlhorst.smugmug.com/Other/blog/20100830diminishing-returns/1163280380_s7aUw-O.png" alt="" width="450" height="422" /></p>
<p>In this case, I have a forecast (the more time I spend on it, the better it will be) that maps incremental sales to improved solutions.  The &#8220;first&#8221; solution to be released will have more value than the second.  If they are being released together, then I don&#8217;t care about the allocation &#8211; I combine them.</p>
<p><strong>Scenario 2: </strong>If, however, the two solutions are valuable to <em>different</em> personas, then I treat them separately &#8211; even if they solve &#8220;the same problem,&#8221; it is not the <em>same</em> problem (for the same person).</p>
<h2>Conclusion</h2>
<p>Prioritization by &#8220;Bang For the Buck&#8221; is worth doing.  <strong>Just make sure you are prioritizing <em>solutions</em>, not features</strong>.</p>
<p>Also note: this article talked about <em>valuation</em> &#8211; what you do with that valuation, <a title="Prioritization by Market Segment Importance" href="http://tynerblain.com/blog/2008/04/09/improved-prioritization/">prioritizing by market</a>, can be trickier.</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+Don%E2%80%99t+Prioritize+Features%21+http%3A%2F%2Fbit.ly%2Fe0x9f0+" 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/2011/01/21/dont-prioritize-features/&amp;t=Don%E2%80%99t+Prioritize+Features%21" 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/2011/01/21/dont-prioritize-features/feed/</wfw:commentRss>
		<slash:comments>64</slash:comments>
		</item>
		<item>
		<title>Agile Documentation</title>
		<link>http://tynerblain.com/blog/2010/11/16/agile-documentation/</link>
		<comments>http://tynerblain.com/blog/2010/11/16/agile-documentation/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 21:15:14 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[agile documentation]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[just enough documentation]]></category>
		<category><![CDATA[user story]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1398</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F11%2F16%2Fagile-documentation%2F", "shorturl": "http://bit.ly/af85o7", "style": "big", "title": "Agile Documentation" }); Agile values working software over comprehensive documentation &#8211; it is 1/4th of the original manifesto.  That doesn&#8217;t mean don&#8217;t document!  It means don&#8217;t document more than you need to document.  Documentation does have value, but the practice of documenting got excessive &#8211; that&#8217;s why [...]]]></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%252F2010%252F11%252F16%252Fagile-documentation%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Faf85o7%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Agile%20Documentation%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F11%2F16%2Fagile-documentation%2F", "shorturl": "http://bit.ly/af85o7", "style": "big", "title": "Agile Documentation" });</script></div>
<p>Agile <a title="agile values - by alistair cockburn" href="http://tynerblain.com/blog/2006/05/10/agile-values-alistair-cockburn-on-the-agile-manifesto/">values working software over comprehensive documentation</a> &#8211; it is 1/4th of the original manifesto.  That doesn&#8217;t mean <em>don&#8217;t document</em>!  It means <em>don&#8217;t document more than you </em>need<em> to document</em>.  Documentation does have value, but the practice of documenting got excessive &#8211; that&#8217;s why a reaction to the <em>bad stuff</em> earned a spot as one of the pillars of agile.  How do you avoid over-reacting when changing a culture of over-documentation?</p>
<p><span id="more-1398"></span></p>
<h2>The Need for Documentation</h2>
<p>We need documentation to help us communicate.  You can define an agile team as &#8220;the people creating the product.&#8221;  You can interpret &#8220;creating&#8221; as the people we normally think of as <em>executing</em> to accomplish the goals, or you can be more inclusive, and think of <em>the people who have the goals</em> as being part of the team too.</p>
<p><strong>Philosophically, agile stresses collaboration</strong>.  Usually it is couched in terms of (1) people who are executing <em>collaborate</em> to devise the best solutions and (2) people who are part of the team <em>collaborate</em> with the people for whom they are creating the product.  Personally, my experience has been that projects with committed sponsors succeed, and projects without them fail &#8211; so I always think of the sponsors as <em>part of the team</em>.</p>
<p><img class="alignnone" title="collaboration" src="http://sehlhorst.smugmug.com/Other/blog/collaboration/1063052453_72GGi-O.jpg" alt="" width="250" height="166" /></p>
<p>Regardless of your definition &#8211; collaboration requires communication, and communication benefits from documentation.</p>
<h2>Temporal Communication</h2>
<p>Communication among groups of people happens over time.</p>
<p><img class="alignnone" title="date and time" src="http://sehlhorst.smugmug.com/Other/blog/date-and-time/1093411326_FYxXH-O.jpg" alt="" width="250" height="166" /></p>
<p>Some collaboration is transient &#8211; communication happens <em>right now</em>, and is only important <em>right now</em>.  Other communications are persistent &#8211; the collaboration happens right now, but we need to <em>remember later</em> what we agreed upon and why.  There are variations of &#8220;right now&#8221; and varying degrees of &#8220;later&#8221;, but slightly oversimplifying,</p>
<ul>
<li>There is communication <em>for now.</em></li>
<li>There is communication <em>for later</em>. </li>
</ul>
<p><strong>Both are important.</strong></p>
<p>Documentation, in the vision from your nightmares &#8211; giant requirements documents, architectural analyses, and detailed psychographic profiles &#8211; is very inefficient when communicating <em>for now</em>.</p>
<p><img class="alignnone" title="stack of documents" src="http://sehlhorst.smugmug.com/Other/blog/papers/1093432018_nAxDh-O.jpg" alt="" width="166" height="250" /></p>
<p>These massive documents, while getting in the way of a conversation, do provide the opportunity to remember (in the future) why we make the decisions we make (today).</p>
<p>Documentation, as emphasized in most agile discussions &#8211; user stories and acceptance criteria, on an index card, taped on the wall &#8211; is not a robust solution for communication that <em>happens later</em>.</p>
<p><img class="alignnone" title="product backlog" src="http://sehlhorst.smugmug.com/Other/blog/story-backlog-small/1093432000_NBZWf-O.jpg" alt="" width="250" height="187" /></p>
<p>This low-overhead approach to capturing today&#8217;s ideas actually facilitates and improves today&#8217;s conversation &#8211; but does not give us a record we can use in the future for why we made our decisions.</p>
<p>As an agile team, there are ways we can approach <em>both</em> the persistent and transient documentation tactics to make them more valuable.  We can tweak our transient documents to make them more useful for persistence.  We can take an agile approach to development of persistent documents, so that we only do <em>just enough documentation</em> &#8211; trading off the minimum amount of short term efficiency to avoid long-term blunders.</p>
<h2>Transient Documents for the Future</h2>
<p>The image above is from a workshop defining the product backlog for an initial sprint for a new project.  The team identified the most important stories for the first sprint, their acceptance criteria, and the size, in story points, for each story.  As part of scrum, the stories are written in user-story format, with acceptance criteria for each story identified and documented on additional index cards (taped to the index cards for the associated stories).  Great transient way to capture the <em>must do</em> and <em>makes it better</em> stories that the product owner is thinking about.</p>
<p>As a team, we made a couple minor tweaks to make these story cards more useful.  First, all of the stories were organized into themes that help establish the context (for the team), and combine the stories into &#8220;meaningful areas of focus&#8221; for communication with stakeholders.</p>
<p><img class="alignnone" title="themes for stories" src="http://sehlhorst.smugmug.com/Other/blog/themes-450/1093470549_eUbnW-O.jpg" alt="" width="450" height="337" /></p>
<p>Each story got a blob of color in the top left hand corner, identifying which of the five themes were being supported.  You can see a few of them circled in the image above.</p>
<p>We also developed a set of 8 proto-personas (prototype, early draft, very rough personas &#8211; almost stereotypes) that the overall product / project was designed to support.  Each persona got a different color star.</p>
<p><img class="alignnone" title="personas for user stories" src="http://sehlhorst.smugmug.com/Other/blog/personas-450/1093470532_Uh9tj-O.jpg" alt="" width="450" height="337" /></p>
<p>Each user story got a corresponding colored-star sticker to indicate for which persona the story has been written.  Specifically, when multiple personas could use a story, we identified for which persona we were implementing the story in this sprint.</p>
<p>In the &#8220;right now&#8221; world, these tweaks helped us understand, question, and confirm the themes and personas being supported in the first story.  Those conversations allowed us to reach pragmatic compromises about which stakeholders were going to benefit and when.  They also allowed us to craft the outbound message that is step one of stakeholder expectation management.</p>
<p>The list of themes changed while we were doing this &#8211; moving from 4 to 5 themes, as we realized that there was value in splitting one of the themes.  The group of proto-personas grew from an initial set of 3 to a set of 8, as we quickly realized that the team was trying to &#8220;build something for everyone&#8221; and we wanted to avoid <a title="elastic user problem" href="http://tynerblain.com/blog/2007/07/23/elastic-users/">the elastic user problem</a>, and instead, roll out capabilities sequentially that satisfied valuable groups of users with similar goals and perspectives.</p>
<h2>Culture Change for Stakeholders</h2>
<p>As you would expect, having a bunch of cards stuck on the wall provides a great, visceral, <em>now</em> communication for the team &#8211; both in implementing and communicating.  However, <em>cards on the wall</em> is very transient.  It also doesn&#8217;t provide a good way to communicate with old-school stakeholders (imagine the execs who have their admins <em>print out their emails</em> for them to read and annotate &#8211; those folks still exist!).</p>
<p>This can make it hard for the &#8220;not part of the implementation&#8221; part of the team to collaborate and communicate.</p>
<blockquote><p>In <a title="user stories applied" href="http://www.amazon.com/dp/0321205685?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0321205685&amp;creative=373489&amp;camp=211189"><em>User Stories Applied</em></a>, Mike Cohn stresses that the brevity of user stories is intentionally designed to facilitate (and I would add “dependent upon”) conversation.  I find it to be both a strength and a weakness of user stories.  It is strong because you can cover a lot of ground quickly (breadth) and capture a number of stories, much like the list above.  It is weak because the requirements documentation does not stand on its own – it requires conversation to fill in the details.  I’ve had some success using the “Verify that…” user acceptance tests as the method of documenting those details (depth), in conjunction with the brief, easily consumable stories.</p>
<p><cite><a title="Stakeholders in a Barrel" href="http://tynerblain.com/blog/2008/12/30/stakeholders-in-a-barrel/">Stakeholders in a Barrel</a></cite></p>
</blockquote>
<p>Those conversations happened as part of getting the stories defined, getting them on the board in the right order, and defining the acceptance criteria.  Stakeholders often have a short memory, especially when they were the ones making a compromise.  You need some way to <a title="providing context in agile" href="http://tynerblain.com/blog/2008/10/01/agile-product-management-providing-context/">retain the context of the conversation</a> that led to the particular organization and content of the stories on the wall.</p>
<h2>Persistent Documents in the Present</h2>
<p>Agile proponents complain about the massive get-in-your-way documents that slow down the start of projects, prevent the teams from <a title="Markets Change - You Adapt and Win or Ignore and Fail" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">adapting to changing market conditions</a>, and otherwise make it harder to deliver great products.  I agree.  Agile proponents also rail against the &#8220;build it all, then release it,&#8221; waterfall, process for creating software &#8211; and propose an alternative &#8211; iterative development of the software.  I agree again.</p>
<p>Why not apply the same principle of iterative development to persistent documents?</p>
<p>Consider the example above of using colored-star stickers to identify the people for whom each story is being implemented in any given sprint.  The majority of the time spent on this analysis is around understanding which people are important (to the success of the product), and for which people the ability to perform this user story is important (to the person).  The combination of these two importances is an input to prioritization.  A minimal amount of time is spent putting stickers on cards, and creating multiple cards for the same story (each with a different sticker <a title="slicing stories by persona" href="http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/">for a different persona and potentially different acceptance criteria</a>).</p>
<p>Add a tiny bit of overhead, and capture the information in a spreadsheet (or whatever).</p>
<p><img class="alignnone" title="use case to actor mapping" src="http://sehlhorst.smugmug.com/photos/49195704-M.jpg" alt="" width="580" height="193" /></p>
<p>The image above shows <a title="actor to use case mapping" href="http://tynerblain.com/blog/2008/06/09/use-case-to-actor-mapping/">a mapping of use cases to actors</a>.  It could just as easily show a mapping of user stories to personas.  The transition <a title="actors and personas" href="http://tynerblain.com/blog/2007/12/20/global-actor-hierarchies-and-personas/">from thinking about actors to thinking about personas</a> is a small one.  This chart comes from an earlier article on <a title="communicate your delivery schedule with use cases" href="http://tynerblain.com/blog/2005/12/22/communicating-a-delivery-schedule-with-use-cases/">communicating a delivery schedule with use cases</a> &#8211; it helps stakeholders get a big picture view of who benefits when &#8211; a user-centric, yet still top-down perspective.</p>
<p>Note: Another nuance to incremental delivery is that you can introduce the &#8220;bare bones&#8221; version of a story now, and the &#8220;better&#8221; version of it later.  You can also <a title="actor hierarchies and improving use cases over time" href="http://tynerblain.com/blog/2006/12/13/actor-hierarchies/">communicate that stories get better over time, for some users</a>, with the same type of chart.</p>
<p>A very similar, and also simple to create table can show how each theme is getting &#8220;representation&#8221; within each sprint.  That view facilitates great discussions about trying to emphasize one theme and then another sequentially, versus doing the most important items in each theme first &#8211; gradually making progress in each theme.  Creating that view, and using it to communicate, has helped me address concerns that &#8220;external&#8221; stakeholders have shared about how a team appeared to be &#8220;chaotic and random&#8221; in their approach to prioritization and implementation.</p>
<h2>Many Models</h2>
<p>There are many types of documentation &#8211; and many types of models for emphasizing and discussing particular aspects of a complex system (like users and goals and solutions).  Creating a simple diagram like the following whiteboard sketch is almost required for effective transient communication in some projects.</p>
<p><img class="alignnone" title="simple agile model" src="http://sehlhorst.smugmug.com/photos/429885895_48JaP-O.jpg" alt="" width="400" height="282" /> [from <a title="Simple Agile Model Example" href="http://tynerblain.com/blog/2008/12/03/simple-agile-model-example/">Simple Agile Model Example</a>]</p>
<p>When most folks are complaining about documentation, they are not complaining about the sketch above.  They would consider that sketch to be <em>augmenting a conversation</em>.  Fine.  That&#8217;s what I did, at the time.  Then I took a picture of it.  Suddenly, it was documentation.  A stakeholder came by later, confirmed that the system needed to work this way, and <em>signed the whiteboard</em> &#8211; and the photo was updated.</p>
<p>Every <em>heavyweight</em> document can start out this way.  And it can evolve.  It should evolve.  If you&#8217;re going to succeed, it <em>must</em> evolve as your team gets smarter, your competitors react, and your market changes.</p>
<p>The trick is that you don&#8217;t have to write the <em>final version</em> before you get started.  Capture at a high level what you know right now &#8211; just like a roadmap.  Capture in <em>just enough detail</em> what you need right now &#8211; just like a story backlog.  And change it as you go.</p>
<h2>Conclusion</h2>
<p>Documentation is not bad.  Documenting stuff you will never use is bad.  Documenting stuff you don&#8217;t need for a long time is risky, because it will probably change before you refer back to your document.</p>
<p>Documenting why you made decisions right now, as part of <em>transient</em> collaboration and communication is important, so that you collectively remember.  That documentation <em>persists</em> and your team can build upon knowledge, incrementally &#8211; just as your team builds upon the evolving code base, incrementally.</p>
<p> </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+Agile+Documentation+http%3A%2F%2Fbit.ly%2Faf85o7+" 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/2010/11/16/agile-documentation/&amp;t=Agile+Documentation" 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/2010/11/16/agile-documentation/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>Provocateurs Gather the Best Requirements</title>
		<link>http://tynerblain.com/blog/2010/11/05/provocateurs/</link>
		<comments>http://tynerblain.com/blog/2010/11/05/provocateurs/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 14:23:09 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[requirements elicitation]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1389</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F11%2F05%2Fprovocateurs%2F", "shorturl": "http://bit.ly/avUAVy", "style": "big", "title": "Provocateurs Gather the Best Requirements" }); Ask someone what they want, and they&#8217;ll tell you they want a faster horse.  Provoke them, and they&#8217;ll tell you they have a &#8216;get there faster&#8217; problem, an &#8216;equine waste disposal&#8217; problem, and issues with total cost of ownership. Thought Provoking [...]]]></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%252F2010%252F11%252F05%252Fprovocateurs%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FavUAVy%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Provocateurs%20Gather%20the%20Best%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F11%2F05%2Fprovocateurs%2F", "shorturl": "http://bit.ly/avUAVy", "style": "big", "title": "Provocateurs Gather the Best Requirements" });</script></div>
<p><img class="alignnone" title="provoking" src="http://sehlhorst.smugmug.com/Other/blog/provoke/1078498774_rUc9g-O.jpg" alt="" width="250" height="187" /></p>
<p>Ask someone what they want, and they&#8217;ll tell you they want a faster horse.  Provoke them, and they&#8217;ll tell you they have a &#8216;get there faster&#8217; problem, an &#8216;equine waste disposal&#8217; problem, and issues with total cost of ownership.</p>
<h2><span id="more-1389"></span><em>Thought</em> Provoking</h2>
<p>If your <a title="top ten requirements elicitation techniques" href="http://tynerblain.com/blog/2007/09/13/elicitation-techniques-2/">requirements elicitation</a> session looks like the photo above, <em>you&#8217;re doing it wrong</em>.  However, just asking people what they want and confirming that you heard what they said is also not enough.  <a title="Top 10 Active Listening Tips" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">Active listening is important</a>, but to capture great requirements, you also have to provoke thought about <em>why</em> someone is expressing a &#8220;requirement.&#8221;</p>
<p><a title="Adrian Reed on Twitter" href="http://twitter.com/#!/ukadrianreed">Adrian Reed</a> wrote a great article this week (hat tip to <a title="Kevin Brennan on Twitter" href="http://twitter.com/#!/bakevin/">Kevin Brennan</a>) on <a title="asking provoking questions" href="http://www.bridging-the-gap.com/asking-provocative-questions-to-encourage-lateral-thinking/">asking provoking questions</a> that leverage <a title="Lateral Thinking" href="http://en.wikipedia.org/wiki/Lateral_thinking">lateral thinking</a> techniques to get better insight into the true requirements.  Adrian presents eight questions, such as &#8220;Imagine if we fast-forward to 2 years after the implementation of this project, what will the organisation look like?&#8221;  Some of his questions remind me a lot of the ideas behind Enthiosys&#8217; <em><a title="Innovation Games" href="http://innovationgames.com/">Innovation Games</a></em> (and <a title="Innovation Games" href="http://www.amazon.com/dp/0321437292?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0321437292&amp;creative=373489&amp;camp=211189">Luke Hohmann&#8217;s <em>Innovation Games</em> book</a>).  The <em>remember the future</em>, and <em>product box</em> games immediately come to mind.</p>
<h2>Unprovoked Thoughts</h2>
<p>Most good subject matter experts I&#8217;ve met, when asked about the important problems to be solved, try and be really helpful and incorporate elements of <em>solutions</em> in their descriptions of <em>problems</em>.  They will say things like &#8220;the system must integrate with [other system] to do X.&#8221;  They may even ultimately be right, that this particular system integration is a constraint, and that &#8220;X&#8221; is the only acceptable (by policy) way to achieve &#8220;Y.&#8221;  But usually, neither constraint is a <em> requirement</em> &#8211; it is a <em>solution approach</em>.</p>
<p>Subject matter experts who are not as good at having and sharing insights about their domain often <a title="Problem manifestations and underlying problems" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">confuse problem manifestations with their underlying problems</a>.  By analogy, it is requesting treatment for a runny nose, when the problem the you have is the flu.  You can dry up your nose and still feel horrible.</p>
<h2>Provoking Questions Reveal Real Problems</h2>
<p>Adrian&#8217;s questions are designed to help you understand that you&#8217;re treating the flu, and not a runny nose.  Requirements gathering is a lot like diagnosis of a medical malady.  You have to discover the real problems.  The problems that people are willing to pay to solve.  You have to uncover the latent problems that are &#8220;hidden&#8221; behind problem manifestations.</p>
<p>In a (rare for me) American football analogy &#8211; the problem manifestation is that your quarterback is completing 1 of 20 forward passes.  Replacing the quarterback and receivers will not solve the problem.  The problem is that your offensive line is not able to give the quarterback sufficient time to throw higher-probability-of-success passes.</p>
<p>Asking questions that force people to describe their objectives differently is a good way to bypass solution-design answers.  It also creates chinks in the armor of problem manifestations.  <em>Completing more passes</em> is not the future you&#8217;re looking for, <em>winning more games</em> is the goal.  When you&#8217;re treating your flu, your goal is not to be sick &#8211; but with a dry nose.  Your goal is to be well.  When you ask someone to remember the future, they will will describe being <em>not sick</em>, not being <em>dry-nosed</em>.  The product box will be a description of a winning team.</p>
<p>Check out Adrian&#8217;s list of questions, and ask yourself, how do you get to the root causes?  <a title="Ishikawa Diagrams" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">Ishikawa diagrams (also known as <em>cause and effect</em> or <em>fishbone</em> diagrams)</a> provide a great visualization tool if you&#8217;re a spatial thinker or a whiteboard-talker.  In the example below, you can quickly see that <em>spending too much on fuel</em> is part of the real problem &#8211; that the <em>cost of operation is too high</em>.  You can likewise see that under-inflated tires are a source of poor fuel economy.  Check out the Ishikawa article for an explanation, or this article on <a title="providing context" href="http://tynerblain.com/blog/2008/10/01/agile-product-management-providing-context/">providing context</a> (with Ishikawa diagrams), and this article on <a title="buyers and users" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">buyer and user personas</a> for more examples of problem decomposition.</p>
<p><img class="alignnone" title="Ishikawa Diagram Example" src="http://sehlhorst.smugmug.com/photos/302635390_W2GiV-O.jpg" alt="" width="450" height="269" /></p>
<p>If you&#8217;ve got any examples of problem-statement-turned-problem, chime in below&#8230;</p>
<p> </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+Provocateurs+Gather+the+Best+Requirements+http%3A%2F%2Fbit.ly%2FavUAVy+" 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/2010/11/05/provocateurs/&amp;t=Provocateurs+Gather+the+Best+Requirements" 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/2010/11/05/provocateurs/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>A Prototype is Worth a Thousand Lines of Code</title>
		<link>http://tynerblain.com/blog/2010/10/25/a-prototype-is-worth-a-kloc/</link>
		<comments>http://tynerblain.com/blog/2010/10/25/a-prototype-is-worth-a-kloc/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 15:09:35 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Business Rules]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile interaction]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[process prototyping]]></category>
		<category><![CDATA[prototypes]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[uml as prototype]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1385</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F10%2F25%2Fa-prototype-is-worth-a-kloc%2F", "shorturl": "http://bit.ly/aMAQo4", "style": "big", "title": "A Prototype is Worth a Thousand Lines of Code" }); A picture is worth a thousand words.  A prototype is worth a thousand lines of code.  Two key elements of product management &#8211; and of agile development are elicitation and feedback.  Low fidelity artifacts can significantly improve [...]]]></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%252F2010%252F10%252F25%252Fa-prototype-is-worth-a-kloc%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FaMAQo4%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22A%20Prototype%20is%20Worth%20a%20Thousand%20Lines%20of%20Code%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F10%2F25%2Fa-prototype-is-worth-a-kloc%2F", "shorturl": "http://bit.ly/aMAQo4", "style": "big", "title": "A Prototype is Worth a Thousand Lines of Code" });</script></div>
<p><img class="alignnone" title="quick sketch" src="http://sehlhorst.smugmug.com/Other/blog/dillution-by-channels-2-tiny/1062982837_3eE4V-O.jpg" alt="" width="250" height="152" /></p>
<p>A picture is worth a thousand words.  A prototype is worth a thousand lines of code.  Two key elements of product management &#8211; and of agile development are elicitation and feedback.  Low fidelity artifacts can <em>significantly</em> improve both.  Polished, codified prototypes can create problems that <em>prevent</em> you from getting the benefits of communication.</p>
<p><span id="more-1385"></span></p>
<h2>Prototyping Anti-Pattern</h2>
<p>David Bernstein has three good quick-read articles about prototyping in the agile zone.  The first one depicts the primary anti-pattern of prototyping &#8211; <strong>mis-set expectations</strong>.</p>
<p> </p>
<blockquote><p>As I was walking him through the different screens I could see he was starting to get uneasy. As I talked I could see him becoming paler and tenser, as if he saw a ghost. After a while I asked him if he was ok. He finally said, “You mean to tell me that I just wrote you a check for over $100,000 for less than a week of work?”</p>
<p><cite><a title="prototyping leads to mis-set expectations" href="http://agile.dzone.com/news/prototyping-caveat">Prototyping Caveat</a></cite></p>
</blockquote>
<p>The second article is quick reminder of one of the goals of a prototype.</p>
<blockquote><p>The purpose of a prototype is to elicit feedback from others or verify a design approach will work. When doing this we generally only concern ourselves with the “happy path” through our code.</p>
<p><cite><a title="A Prototype is Not a Product" href="http://agile.dzone.com/news/prototype-not-product">A Prototype is Not a Product</a></cite></p>
</blockquote>
<p>David&#8217;s third article explores a little more about the mis-setting of expectations, and provides a good parallel from the film industry.</p>
<blockquote><p>Prototypes are rough sketches without the robustness of a final product and it is often confusing to users when we show them a half-baked version of their project for feedback, even though they know it is not yet finished.</p>
<p><cite><a title="Agile Prototyping on a Napkin" href="http://agile.dzone.com/news/agile-prototyping-napkin">Agile Prototyping on a Napkin</a></cite></p>
</blockquote>
<p>David&#8217;s advice is (good and) primarily about using low-fidelity prototypes to avoid disrupting the elicitation and feedback process.  Folks in the user experience community have known this for a long time, and adapted their processes accordingly.  Back in 2006, I wrote about <em><a title="Low fidelity prototyping" href="http://tynerblain.com/blog/2006/12/08/prototype-fidelity/">prototype fidelity</a></em> as part of exploring ways to use this insight in <a title="Requirements Gathering - 10 Techniques" href="http://tynerblain.com/blog/2006/11/21/ten-requirements-gathering-techniques/">requirements gathering</a>.  Prototyping, in particular, is a great way to <a title="eliciting implicit requirements" href="http://tynerblain.com/blog/2006/11/17/gathering-implicit-requirements/">elicit <em>implicit</em> requirements</a> &#8211; those unspoken (&#8220;you should have asked!&#8221;) requirements that your customer or stakeholder <em>assumed</em> you knew, or didn&#8217;t think to tell you.</p>
<h2>Multiple Levels of Interaction</h2>
<p>David focused on the initial &#8220;will this approach work?&#8221; elements of getting feedback on a design &#8211; and by inference, some low-fidelity user acceptance testing that the proposed approach will meet your customer&#8217;s requirements.  <a title="Follow Jan on Twitter" href="http://twitter.com/#!/JanMiksovsky">Jan Miksovsky</a> wrote an excellent article (also in 2006) that provides excellent guidance on <a title="Using Crude Sketches" href="http://miksovsky.blogs.com/flowstate/2006/10/using_crude_ske.html">how much fidelity to build into your prototype</a>, <em>depending on where you are in the design process</em>.  This is important &#8211; the type of feedback you need at different stages of your design process varies.  Jan proposes that the first prototypes be rough sketches, just as David points out.  Jan goes on to show how and when to add additional fidelity to your prototypes (read Jan&#8217;s article to see his great visual examples).  Like I said, the user experience community has known about this for a long time.</p>
<h2>Prototypes Are For Two-Way Communication</h2>
<p>The key element, and the reason for creating prototypes, is to get two-way communication.  A prototype is not just a status update about your design.</p>
<p><strong>A prototype is the start of a conversation.</strong></p>
<p><img class="alignnone" title="collaboration" src="http://sehlhorst.smugmug.com/Other/blog/collaboration/1063052453_72GGi-O.jpg" alt="photo of people collaborating" width="250" height="166" /> [thanks <a title="image credit" href="http://www.flickr.com/photos/uninen/2671178552/sizes/o/in/photostream/">uninen</a> for the image]</p>
<p>Prototyping is not only useful for design conversations, it is critical to understanding your requirements.  Yes, a prototype will you get feedback about the design-execution of your proposed solution.  More importantly, a prototype can help you make sure you&#8217;re solving the right market problems.</p>
<h2>Prototypes Are More Than Interface Mock-Ups</h2>
<p>The first thing we think about, and everything you&#8217;ve read so far in this article, is about getting feedback on the user interface of the product.  <a title="elicitation techniques" href="http://tynerblain.com/blog/2007/09/13/elicitation-techniques-2/">Prototypes are also useful for gathering business rules*</a>, understanding system complexity, and defining, clarifying, and validating requirements.</p>
<p style="padding-left: 30px;">*In that article, I show prototypes as &#8220;not being useful&#8221; for gathering business rules.  At that time, I was thinking in terms of interface mock-ups only, not other prototypes.</p>
<p>Use interface mock-ups when you need feedback about user interaction.  Use other artifacts when you need feedback about other aspects of your product.  You can use prototypes as an <a title="top ten active listening tricks" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">active-listening technique</a> when gathering market data too.  There are <a title="back of the napkin and communication" href="http://tynerblain.com/blog/2009/05/06/pictures-power-whitepapers/">lots of ways to draw stuff to help with communication</a>.</p>
<p>I&#8217;ve regularly used flow charts to prototype processes.  Within those flow-charts, which are initially prototypes of how the product will behave, are decision diamonds.  Those decision diamonds <em>prototype</em> the enforcement of business rules within the to-be-created product.  In the spirit of DRY (don&#8217;t repeat yourself), a quick polishing of your process diagram can serve as a persistent artifact of the requirements.  Just like a user interface mock-up.</p>
<p>In more complicated scenarios, I&#8217;ve also used <a title="UML statecharts" href="http://tynerblain.com/blog/2007/03/21/use-case-vs-statechart/">UML statecharts</a> and data flow diagrams to prototype behavior.</p>
<p>In the section on <a title="up-front planning and release cadence" href="http://tynerblain.com/blog/2010/10/20/cadence-versus-risk/">up-front planning in last week&#8217;s article on risk management and release cadence</a>, I talked about the <em>mental leap</em> that people need to make to envision a product that doesn&#8217;t yet exist.  Prototypes are like big springboards that help people leap that chasm of imagination.</p>
<p><img class="alignnone" title="leaping dude" src="http://sehlhorst.smugmug.com/Other/blog/leap/1063089185_8d7Hv-O.jpg" alt="" width="250" height="156" /></p>
<p><strong>Important Safety Tip</strong></p>
<p>Don&#8217;t use the wrong prototype (mock-up, flow chart, etc) for the wrong conversation or with the wrong stakeholder.  Showing when and where business rules are being enforced (in the process being designed) is great for getting feedback about your interpretation and potential embodiment of those rules.  It will be a disaster if you try and have this conversation with someone who is not the owner of those policies &#8211; like a representative user.  Sometimes, policies are &#8220;owned&#8221; by non-technical people who struggle to read diagrams.  You may have to walk them through how the diagram works.  They&#8217;re smart &#8211; they&#8217;ll get it.</p>
<p>Just remember &#8211; use the right prototype to emphasize the right ideas, and elicit the right feedback.</p>
<p> </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+A+Prototype+is+Worth+a+Thousand+Lines+of+Code+http%3A%2F%2Fbit.ly%2FaMAQo4+" 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/2010/10/25/a-prototype-is-worth-a-kloc/&amp;t=A+Prototype+is+Worth+a+Thousand+Lines+of+Code" 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/2010/10/25/a-prototype-is-worth-a-kloc/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Cadence Versus Risk</title>
		<link>http://tynerblain.com/blog/2010/10/20/cadence-versus-risk/</link>
		<comments>http://tynerblain.com/blog/2010/10/20/cadence-versus-risk/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 15:04:49 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Design of Design]]></category>
		<category><![CDATA[epiricism]]></category>
		<category><![CDATA[incremental development]]></category>
		<category><![CDATA[rationalism]]></category>
		<category><![CDATA[release cadence]]></category>
		<category><![CDATA[risk]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1372</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F10%2F20%2Fcadence-versus-risk%2F", "shorturl": "http://bit.ly/9whCba", "style": "big", "title": "Cadence Versus Risk" }); I&#8217;ve been thinking about the software development process.  Big, upfront, design and requirements.  User research and analysis.  Market insights, gained on exploration or over time.  Release cadence &#8211; how quickly you get, and incorporate, feedback from your customers about your product.  How quickly [...]]]></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%252F2010%252F10%252F20%252Fcadence-versus-risk%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9whCba%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Cadence%20Versus%20Risk%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F10%2F20%2Fcadence-versus-risk%2F", "shorturl": "http://bit.ly/9whCba", "style": "big", "title": "Cadence Versus Risk" });</script></div>
<p><img class="alignnone" title="product risk vs upfront analysis - small" src="http://sehlhorst.smugmug.com/Other/blog/analysiss/1055229635_a29Gj-O.png" alt="" width="250" height="181" /></p>
<p>I&#8217;ve been thinking about the software development process.  Big, upfront, design and requirements.  User research and analysis.  Market insights, gained on exploration or over time.  Release cadence &#8211; how quickly you get, <em>and incorporate</em>, feedback from your customers about your product.  How quickly you react to your competitors&#8217; reactions to your actions.</p>
<h2><span id="more-1372"></span>Big and Up-Front</h2>
<p>Leander Kahney published the<a title="Sculley Interview" href="http://www.cultofmac.com/john-sculley-on-steve-jobs-the-full-interview-transcript/63295"> full transcript of an interview with John Sculley</a>, former CEO of Apple, last week.  Of particular interest are the discussions about how Steve Jobs is a designer first, CEO second.</p>
<blockquote><p>He always looked at things from the perspective of what was the user’s experience going to be? But unlike a lot of people in product marketing in those days, who would go out and do consumer testing, asking people, “What did they want?” Steve didn’t believe in that.</p>
<p><cite><a href="http://www.cultofmac.com/john-sculley-on-steve-jobs-the-full-interview-transcript/63295">John Sculley interview</a></cite></p>
</blockquote>
<p>The theme of understanding what users want and need comes up repeatedly in the article.  A few years ago, Alan Cooper and Kent Beck got in a debate about the merits of <a title="Interaction Design and Xtreme Programming" href="http://tynerblain.com/blog/2006/03/07/interaction-design-explained-by-alan-cooper/">interaction-design-driven versus emergent-design</a> software development.  Four years later, I don&#8217;t accept the premise that you have to <em>choose</em> between the two.  You can treat both decisions independently and make the right choice for your team and market.</p>
<p>Thanks <a title="Jim Holland" href="http://twitter.com/#!/Jim_Holland">Jim Holland</a> (also <em><a title="Product Management Tribe" href="http://pmtribe.wordpress.com/">PM Tribe</a></em> author), for bringing t<a title="Agile and Sanity" href="http://onproductmanagement.net/2010/10/18/guest-post-4-ways-that-agile-methods-brought-sanity-to-my-company/">his article from Wayne Mulligan</a> (guesting on <em>On PM</em>) to our attention today.  It&#8217;s a great read, and the money-quote from Wayne about going back to first-principles is:</p>
<blockquote><p>And that’s the biggest lesson I learned here – you can reap all of the benefits of an agile product development approach without following the rules to the letter.  It’s the spirit of the manifesto that counts and not the precise implementation.</p>
<p><cite><a href="http://onproductmanagement.net/2010/10/18/guest-post-4-ways-that-agile-methods-brought-sanity-to-my-company/">4 Ways that Agile Methods Brought Sanity to My Company</a></cite></p>
</blockquote>
<p>In the spirit of that reality &#8211; I believe decoupling <em>how do you plan?</em> from <em>how do you deploy?</em> is fair game.</p>
<h2>The Risk of Being (Big Picture) Wrong</h2>
<p><img class="alignnone" title="Risk diminishes with planning" src="http://sehlhorst.smugmug.com/Other/blog/analysism/1055229632_yKd4n-O.png" alt="" width="450" height="327" /> [<a title="risk vs upfront analysis" href="http://sehlhorst.smugmug.com/Other/blog/analysisl/1055229622_bAFKQ-O.png">larger image</a>]</p>
<p>When you do <em>no upfront analysis at all</em>, you have complete risk of creating the wrong product.  The more analysis you do, the more likely you are to create a product that solves the right problems &#8211; problems that <a title="Customer-focused market model" href="http://tynerblain.com/blog/2010/09/20/customer-centric-market-model/">your target customers, in your target market</a>, are willing to pay to solve.  The units in the graphs in this article can be mostly ignored &#8211; all you can really capture, when talking <em>generally</em> about this is the trending.  The more time you spend understanding your market, the less understanding you gain.  There is definitely a law of diminishing returns.  This effect is one of the reasons analysis paralysis is so bad.  With analysis paralysis, you delay the launch of your product (at some cost), for no appreciable gain.</p>
<p>The two curves are labeled <em>complex</em> market, and <em>simple</em> market.  The idea here is that the easier it is to understand your market, the less benefit you get from analyzing it.  Complexity can be in the form of <a title="how concentrated is the competition in your market?" href="http://tynerblain.com/blog/2010/10/13/fragmented-or-concentrated/">competitive concentration</a>, nuances of problems being solved, specifics of the customers for whom you are solving the problem, and even the notion of just how innovative your solution is (think cars, when horses were common, or smart phones in a world of land-lines).</p>
<p>As a product manager, you <em>have to</em> act with imperfect information.  Even if you try and uncover every relevant piece of information (which you can&#8217;t do), you will misunderstand some things.  You will develop a mental model of your customers&#8217; problems &#8211; and that model will be wrong.  You will also predict competitive responses incorrectly.  To top it off, you&#8217;ll make mistakes about &#8220;what&#8217;s next?&#8221; for your customers.</p>
<p>That does not mean you should do no analysis &#8211; it means you should not do too much analysis.</p>
<p>Not all product managers are equally good at distilling insights from the vapor of nuanced market data.  Great product managers will have (correct) epiphanies about the important problems to solve, and the impacts of disruption on the market.  Others will not.  The better you are at having these insights, the faster you reduce risk &#8211; and the faster you reach the point of diminishing returns of additional analysis.  Some product managers and markets may require weeks of analysis, others may require days.</p>
<h2>The Risk of Being (Execution) Wrong</h2>
<p>Another great quote from the Sculley interview:</p>
<blockquote><p>[Jobs] said, “How can I possibly ask somebody what a graphics-based computer ought to be when they have no idea what a graphic based computer is? No one has ever seen one before.” He believed that showing someone a calculator, for example, would not give them any indication as to where the computer was going to go because it was just too big a leap.</p>
<p><cite><a href="http://www.cultofmac.com/john-sculley-on-steve-jobs-the-full-interview-transcript/63295">John Sculley</a></cite></p>
</blockquote>
<p>In <em><a title="The Design of Design - Frederick Brooks" href="http://tynerblain.com/blog/2010/07/06/the-design-of-design/">The Design of Design</a></em>, Frederick Brooks discusses the debate between <em>empiricists</em> and <em>rationalists</em>.  Empiricists, in product creation, emphasize <em>feedback</em> as the means of gaining insight about what your product should be.  Rationalists use intuition and deduction to presuppose what a product should be.  In the hyperbole of many agile-waterfall debates, empiricists are burdened with the <em>impossibility</em> of designing the right product in advance, while rationalists struggle under the yoke of being wrong from the start and <em>wasting</em> their efforts up until the first failed product release.</p>
<p>Obviously, neither of these extreme perspectives is wholly true &#8211; while both have significant elements of truth.</p>
<p>True insights about your market grow stale with time.  The damage from erroneous conclusions about your market grows over time.  <a title="the costs of building the wrong product" href="http://tynerblain.com/blog/2010/06/21/building-the-wrong-product/">The risk of creating the wrong product grows over time</a>.</p>
<p><img class="alignnone" title="the risk of not iterating" src="http://sehlhorst.smugmug.com/Other/blog/relfreqm/1055229584_BHUa4-O.png" alt="" width="450" height="327" /> [<a title="The risk of not releasing frequently" href="http://sehlhorst.smugmug.com/Other/blog/relfreqlg/1055229574_yCkSM-O.png">larger image</a>]</p>
<p>If you released <em>continuously</em>, including getting feedback <em>continuously</em>, you would face the minimal possible risk that the market has changed since last you checked.  You would also maximize the opportunities to correct mistaken conclusions &#8211; thus minimizing the risk of being wrong.</p>
<p>You reduce the size of this risk by getting feedback.  You get feedback by &#8220;releasing&#8221; your product to customers, either as a prototype or as a product.  Jobs (per Mr. Sculley) realizes the catch-22 of not being able to get inputs from others, until they can realize a version of your idea. Sculley attributes the following to Mr. Jobs: &#8220;<em>There was no way to do consumer research on it so I had to go and create it and then <a title="Listen to your market" href="http://tynerblain.com/blog/2010/04/26/dont-listen-to-your-market/">show it to people and say now what do you think?</a></em>&#8220;</p>
<p>The longer you wait to get feedback, the greater the cost of effort invested in the wrong ideas.  The longer you wait to get feedback, the greater the risk that your market has changed since you formed your ideas.</p>
<p>In <em>stagnant</em> markets, where problems and their solutions are well understood, and change happens slowly and competitors don&#8217;t innovate, you can release less frequently with less risk.  Until someone decides to innovate, and make your market more dynamic.  Markets with active competitors, customers who&#8217;s expectations change, and problems that evolve are more dynamic.  The risk of delays is greater.</p>
<h2>Rationalism and Empiricism <em>Can</em> Co-Exist</h2>
<p>My experience has been that both concepts &#8211; &#8220;think before you act&#8221; and &#8220;fail fast, get feedback&#8221; can happily co-exist.</p>
<ul>
<li>You <em>can</em> develop an understanding of your market, your customers, and the very real problems they face, before creating a product that solves those problems. </li>
<li>Introducing a new product / solution into a market changes that market &#8211; so you have to revisit what you know at least as frequently as your market changes.</li>
<li>Even when you understand <em>the problem</em>, you need feedback to know if <em>the product</em> is actually <em>the solution</em>.  The greater the &#8220;leap,&#8221; the more representative your prototype must be for people to give you feedback about the (eventual) product.</li>
</ul>
<p>What have your experiences been?</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+Cadence+Versus+Risk+http%3A%2F%2Fbit.ly%2F9whCba+" 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/2010/10/20/cadence-versus-risk/&amp;t=Cadence+Versus+Risk" 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/2010/10/20/cadence-versus-risk/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Use Cases for Iterative Development</title>
		<link>http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/</link>
		<comments>http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 12:53:42 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile use cases]]></category>
		<category><![CDATA[incremental development]]></category>
		<category><![CDATA[iterative development]]></category>
		<category><![CDATA[satisficing]]></category>
		<category><![CDATA[use cases]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1357</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F10%2F05%2Fuse-cases-and-iteration%2F", "shorturl": "http://bit.ly/aoG6ea", "style": "big", "title": "Use Cases for Iterative Development" }); Almost everything I&#8217;ve read about use cases focuses on describing what needs to be added to your product.  Agile development says &#8220;get it working first, make it better second.&#8221;  That means changing the way the software enables a user to do [...]]]></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%252F2010%252F10%252F05%252Fuse-cases-and-iteration%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FaoG6ea%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Use%20Cases%20for%20Iterative%20Development%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F10%2F05%2Fuse-cases-and-iteration%2F", "shorturl": "http://bit.ly/aoG6ea", "style": "big", "title": "Use Cases for Iterative Development" });</script></div>
<p><img class="alignnone" title="I35 and 45 Toll Interchange in Round Rock" src="http://sehlhorst.smugmug.com/Other/blog/Texas45small/1033564686_kg8bG-O.jpg" alt="" width="250" height="145" /></p>
<p>Almost everything I&#8217;ve read about use cases focuses on describing <em>what needs to be added</em> to your product.  Agile development says &#8220;get it working first, make it better second.&#8221;  That means changing the way the software enables a user to do something <em>they can already do</em>.  How do you manage requirements for incremental improvement?</p>
<h2><span id="more-1357"></span>Iterative Development and Incremental Improvement</h2>
<p>Iterative development is the process by which you release software in iterations &#8211; small, incrementally better versions of your software.  People usually think about this solely in terms of <em>enable the most valuable capabilities first, then the next most valuable capability next</em>.</p>
<p>That&#8217;s fine, when your product is new.  Eventually (or quickly!) you will reach the point when the <em>next most valuable improvement</em> is not to add a new capability, but rather, <strong>to make an existing capability more valuable</strong>.</p>
<h2>Everything is an Upgrade</h2>
<p>In a couple earlier articles about <a title="how to organize requirements when migrating to new software" href="http://tynerblain.com/blog/2006/03/15/organizing-a-software-migration-project/">organizing migration projects</a> and <a title="requirements for migration projects" href="http://tynerblain.com/blog/2006/03/09/software-requirements-for-migration-projects/">requirements for migration projects</a>, I wrote about how <em>migration</em> is a bit of a misnomer.  Everything is a migration.</p>
<p><img class="alignnone" title="migration project continuum" src="http://sehlhorst.smugmug.com/photos/59244846-M.png" alt="" width="501" height="196" /></p>
<p>My argument in those earlier articles is that the problems you&#8217;re solving with your &#8220;new&#8221; solution are not new.  Your customers are currently solving them in different ways.  The relevant question for migration projects is around how much your users are changing <em>the way they solve</em> their problems.</p>
<p>[As a slight segue, failing to appreciate this distinction can lead you to a project that is based on a <em><a title="Write good problem statements" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">faulty problem statement</a></em>.]</p>
<p>When you are delivering incremental improvements to your product, through iterative development, you are upgrading your software.  You are <em>migrating</em> your users from their old solution to their new solution.  It just so happens that you are replacing yourself, as you migrate them from the old version to the new one.</p>
<p>A viable strategy, that appeals to me personally, is to continuously innovate, <a title="market driven competitive advantage" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">disrupting your market</a>, before someone else does.  With this approach, you are intentionally reinventing your solution, making it difficult for someone else to out-innovate you.  This is a great way to approach <a title="strategic product raodmap" href="http://tynerblain.com/blog/2009/10/05/strategy-and-product-roadmaps/">developing your roadmap strategically</a>.</p>
<p><a title="The Pace of Market Changes" href="http://tynerblain.com/blog/2008/11/27/keeping-up-with-change/"><strong>Your market will change</strong></a><strong>.  Rapidly.</strong> Do you want to react to your competitors, or keep them on their heels while you stay on the balls of your feet?</p>
<p>The reverberations of the &#8220;new&#8221; Twitter still haven&#8217;t settled, and many of Twitter&#8217;s competitors are on their heels &#8211; some of them only now realizing that Twitter has always been a competitor and not just &#8220;a platform.&#8221;  The new Twitter doesn&#8217;t really change anything about how people use Twitter, except make it (markedly) better.</p>
<h2>Avoiding Featuritis</h2>
<p>When is it more valuable to improve what your software already enables, versus enabling users to accomplish more with your software?  Kathy Sierra introduced us to the concept of <em><a title="Featuritis" href="http://tynerblain.com/blog/2006/04/14/goldilocks-and-the-three-products/">featuritis</a></em>, the idea that <em>too much</em> is <em>too much</em>.</p>
<p>In an article on <a title="viral product management" href="http://tynerblain.com/blog/2009/03/02/viral-product-management/">viral product management</a>, I proposed that by making your software better, you can tap into an altruistic mechanism by which people will promote your product.  As an example, I proposed <a title="Usability Sells Software" href="http://tynerblain.com/blog/2007/01/10/usability-sells-software/">improving the usability of your software</a> as a means to cross this viral tipping point.</p>
<p><img class="alignnone" title="viral tipping point" src="http://photos.smugmug.com/photos/483853927_6nA22-L.png" alt="" width="486" height="241" /></p>
<p>One of the key ideas is that <em>making it better for users</em> makes your product better for your company.</p>
<h2>Managing &#8220;Improvement&#8221; Requirements</h2>
<p>Now that we all agree that there is value in making your software better [comment below if you disagree] the question becomes &#8220;<em>How</em>?!&#8221;</p>
<p>Use Cases can be used as the keystone to your requirements arch.  Sometimes, <a title="User Stories and Use Cases - Which One To Use?" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">user stories are better than use cases</a>, but <a title="Use Cases are Agile" href="http://tynerblain.com/blog/2008/02/18/cockburn-loves-agile-use-cases/">use cases are perfectly agile</a>.  When you&#8217;re starting a project, you want to apply an outside-in approach to defining the scope of that project &#8211; or more particularly, to <a title="How to Start Use Cases" href="http://tynerblain.com/blog/2007/03/28/how-to-start-use-cases/">define the scope of problems you are solving</a> in your roadmap. This article will talk in the language of use cases, but identical concepts and approaches apply when using user stories as well.</p>
<p>When you have prioritized a use case as &#8220;the next most valuable capability to introduce&#8221; you add it to the backlog for your sprint.  The implementation team then provides feedback that use case is &#8220;too big&#8221; and you have to slice it up.  It is important that you <a title="splitting use cases" href="http://tynerblain.com/blog/2010/09/08/sprint-backlog-splitting-user-stories/">don&#8217;t split the use case  in such a way that you only solve half the problem</a>.</p>
<p>You also shouldn&#8217;t deliver a &#8220;bad&#8221; product.  In fact, the ideal way to introduce a new capability is to <a title="Satisficing your Users" href="http://tynerblain.com/blog/2008/11/12/satisficing-sprints/">satisfice</a>, and not introduce the &#8220;perfect&#8221; solution in your first iteration.  Make your first solution &#8220;good enough.&#8221;  Part of the art is defining &#8220;good enough,&#8221; but rest assured, it is not the same as &#8220;the best you can possibly do.&#8221;</p>
<p><strong>Summarizing some key elements from above demonstrates the eventual reality you will face:</strong></p>
<ol>
<li>Every problem* your users face is already being solved, you are just providing a better solution.</li>
<li>There is diminishing, and eventually negative return on adding more capabilities to your product.</li>
<li>Your first release of a given capability will only be &#8220;good enough.&#8221;  That leaves room for improvement.</li>
</ol>
<p>*<em>Yes, you can pedantically define &#8220;the problem&#8221; as &#8220;the existing solution is not good enough&#8221; &#8211; but you still end up in the same place, so why bother</em>?</p>
<p>Eventually, the value of improving something you&#8217;ve already released will be greater than the value of releasing something new.</p>
<p><strong>What do you do?  You implement the same use case </strong><em><strong>again</strong></em><strong>.</strong></p>
<p>If your product is Software as a Service (SaaS), you absolutely should be thinking about things this way.  Becoming better is <a title="economics of SaaS" href="http://tynerblain.com/blog/2008/08/13/foundation-series-saas-economics/">a continuous improvement objective that is implicit in the economics of SaaS products</a>.</p>
<h2>Revisiting Use Cases</h2>
<p>Not to be confused with <em><a title="re-use of use cases in decomposition of epic use cases" href="http://tynerblain.com/blog/2006/11/27/subordinate-use-cases/">re-use of use cases</a>,</em> revisiting a use case is specifically revisiting &#8211; <strong>with the goal of improving</strong> &#8211; the implementation that is already in place within your product.  This is a special case of a <em>migration</em> project &#8211; you&#8217;re migrating your users from <em>your</em> old solution to your new and improved solution.</p>
<p><img title="migration project continuum" src="http://sehlhorst.smugmug.com/photos/59244846-M.png" alt="" width="501" height="196" /></p>
<p>You may be migrating to an identical process, perhaps with faster performance than your previous release was capable of.  Or you may be improving the procedure (improving usability, interaction design, visual design, etc) without affecting the process. Generally, a &#8220;make it better&#8221; use case improvement effort will have no more than a minor <em>process</em> impact.  Your users are still doing the same thing, they are just enjoying it more, or doing it more effectively.</p>
<p>When slicing use cases to make them fit within a single sprint, you may <a title="Avoid elastic users" href="http://tynerblain.com/blog/2007/07/23/elastic-users/">design them for a single user persona </a>in the first release, knowing that you won&#8217;t meet the expectations of a different user persona until the next release.  In this case, your non-functional requirements, constraints, or acceptance criteria will be different.  Your use case may also be different (in the details) while appearing to be the same.  This also common scenario can be addressed with the same approach.</p>
<p>Find that old use case (from several iterations ago) and put it back in the backlog.  Remember, agile is about conversation, not artifacts.  If you need to add an explanation to the use case, because your team fixates on the fact that it is &#8220;already working,&#8221; add a qualifier that it needs to be &#8220;better.&#8221;  Then have a conversation, and explain how it needs to be better.</p>
<h2>Is Design Part of Implementation?</h2>
<p>Some teams organize such that designers (both architects <em>designing code</em> and designers <em>designing interfaces</em> are being addressed here) are part of the implementation team.  Other companies treat designers as stakeholders &#8211; providing guidance and input to the product managers and product owners.</p>
<p>When a &#8220;new design&#8221; is being requested from <em>outside</em> the team, include that design guidance as part of the input to the implementation team &#8211; through artifact and / or clarification.</p>
<p>When a &#8220;new design&#8221; is being requested <em>of the team</em> (the designer is part of the team), express the new acceptance criteria to the team.  Note that these need to be <a title="writing measurable requirements" href="http://tynerblain.com/blog/2010/08/30/verifiable-requirements/">measurable requirements</a> if they are to be considered <a title="Writing good requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">good requirements</a>.</p>
<h2>Summary</h2>
<p>There will come a time when the most valuable thing you can do is improve the user experience for a capability your product already embodies.  When that time comes, use the same use case again, updated with the new constraints, non-functional requirements, and acceptance criteria.</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+Use+Cases+for+Iterative+Development+http%3A%2F%2Fbit.ly%2FaoG6ea+" 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/2010/10/05/use-cases-and-iteration/&amp;t=Use+Cases+for+Iterative+Development" 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/2010/10/05/use-cases-and-iteration/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Atomic Requirements</title>
		<link>http://tynerblain.com/blog/2010/09/14/atomic-requirements/</link>
		<comments>http://tynerblain.com/blog/2010/09/14/atomic-requirements/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 15:35:25 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software requirements specification]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[writing atomic requirements]]></category>
		<category><![CDATA[writing good requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1315</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F09%2F14%2Fatomic-requirements%2F", "shorturl": "http://bit.ly/9OCVmS", "style": "big", "title": "Atomic Requirements" }); Each requirement you write represents a single market need, that you either satisfy or fail to satisfy.  A well written requirement is independently deliverable and represents an incremental increase in the value of your software.  That is the definition of an atomic requirement.  Read [...]]]></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%252F2010%252F09%252F14%252Fatomic-requirements%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9OCVmS%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Atomic%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F09%2F14%2Fatomic-requirements%2F", "shorturl": "http://bit.ly/9OCVmS", "style": "big", "title": "Atomic Requirements" });</script></div>
<p><img class="alignnone" title="Rules of Requirements Logo #9" src="http://sehlhorst.smugmug.com/photos/128628670-M.png" alt="" width="250" height="250" /></p>
<p>Each requirement you write represents a single market need, that you either satisfy or fail to satisfy.  A well written requirement is independently deliverable and represents an incremental increase in the value of your software.  That is the definition of an atomic requirement.  Read on to see why atomic requirements are important.</p>
<p><span id="more-1315"></span></p>
<h2>Atomic Requirements &#8211; Revisiting</h2>
<p><img class="alignnone" title="atomic" src="http://sehlhorst.smugmug.com/Other/blog/atom/1005966203_AFtcP-O.jpg" alt="" width="250" height="187" /></p>
<p>As part of the ongoing series, <a title="Rules of Writing Good Requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">Writing Good Requirements &#8211; The Big Ten Rules</a>, I wrote about the <a title="Writing atomic requirements" href="http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/">importance of atomic requirements</a> first in 2006.  That article touched on only one aspect of atomic requirements &#8211; being able to ask &#8220;is it done?&#8221;</p>
<p>Writing atomic requirements is important from two perspectives &#8211; delivering value to your customers, and operating efficiently.  You get benefits both operationally, and in how you are delivering value when you write atomic requirements.</p>
<h2>Atomic Requirements Accelerate Value Delivery</h2>
<p>In a recent article, I proposed <a title="splitting user stories while maintaining atomicity" href="http://tynerblain.com/blog/2010/09/08/sprint-backlog-splitting-user-stories/">methods for splitting user stories when they are too large</a> to be delivered <a title="Inside a Scrum sprint - foundation series" href="http://tynerblain.com/blog/2010/08/24/inside-a-scrum-sprint/">within a single Scrum sprint</a>.  That article looked at ways to break up <a title="Writing Complete User Stories" href="http://tynerblain.com/blog/2009/07/06/writing-complete-user-stories/">complete user stories</a> (an agile requirement artifact, <a title="Comparing user stories and use cases" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">similar to a use case</a>) that were <em>already</em> atomic, making them even smaller.  Think of that article as <em>Atomic Requirements 301</em> &#8211; sort of an advanced class on splitting the atom.  There are opportunities to subdivide <em>molecular</em> requirements &#8211; those made up of multiple <em>atomic</em> goals &#8211; the topic of this article, which would be <em>Atomic Requirements 101</em>.</p>
<p>If you&#8217;re using an agile development process like Scrum, consider a user story like the following:</p>
<ul>
<li>As an online shopper, I need to find and compare similar products, a few times a year, so that I can make an informed purchasing decision.</li>
</ul>
<p>The key element, from an atomicity perspective, is <em>find and compare</em>.  These are actually discrete user goals, although it may not be immediately obvious.  Rewriting as follows, will highlight this:</p>
<ul>
<li>As an online shopper, I need to find products and compare similar products, a few times a year, so that I can make an informed purchase.</li>
</ul>
<p>Rewritten like this, <em>find products</em> and <em>compare similar products</em> are clearly different activities supporting different user goals.  They should be split into separate, atomic user stories.</p>
<ol>
<li>As an online shopper, I need to find products, a few times a year, so that I can purchase desired products.</li>
<li>As an online shopper, I need to compare similar products when shopping online, so that I can make an informed purchase.</li>
</ol>
<ul> </ul>
<p>These two user stories can be delivered separately.  If this example were for B2B (business-to-business) eCommerce, the example would be different &#8211; because the online shopper is (often) not the right persona.  A typical situation in B2B is that one person will do the research to determine <em>what to buy</em>, and another person will make the decision of <em>from whom to buy it</em>.</p>
<p>This rule applies for non-agile requirements development as well &#8211; consider the following &#8220;BRD-style&#8221; requirement example:</p>
<ul>
<li>The system must record all purchases and submit them to the fulfillment system for processing.</li>
</ul>
<p>Recording purchases and submitting them for processing are two different activities.  While they likely support the same goal, they may also support different goals and could be implemented separately.  Recording purchases is important not only for fulfillment, but potentially also for analytics.  Pushing data to a fulfillment system can be done in either a manual or automated fashion &#8211; providing a distinct cost-reduction opportunity.  To write these as atomic requirements, they must be separated.</p>
<ol>
<li>The system must record all purchases.</li>
<li>The system must submit all recorded purchases to the fulfillment system for processing.</li>
</ol>
<p>This example shows only the bare bones &#8211; there is more involved in writing either requirement, particularly around defining the n<a title="Non-functional requirements" href="http://tynerblain.com/blog/2006/05/23/non-functional-requirements-era/">on-functional requirements</a> and <a title="separating business rules increases agility" href="http://tynerblain.com/blog/2007/07/12/business-rules-yield-agility/">business rules</a> (see also: <a title="separating rules from requirements" href="http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/">why you benefit when you separate rules from requirements</a>, and <a title="The difference between business rules and business requirements" href="http://tynerblain.com/blog/2006/10/18/business-rules-and-requirements/">the difference between business rules and business requirements</a>) that affect and constrain each requirement.  This is easier to see when the requirements are atomic. These two atomic requirements may be rewritten as follows:</p>
<ol>
<li>The system must record all purchases on the same day that they are created, recording information per [BR117: Purchase Data Rules].</li>
<li>The system must submit all recorded purchases to the fulfillment system for processing per [BR231: Fulfillment System Data Interchange Specification].</li>
</ol>
<p>These additional constraints are not non-atomic additional requirements, they are constraints that specify <em>how</em> the system must perform the atomic actions.</p>
<p><img class="alignnone" title="connected atoms - representing requirements traceability" src="http://sehlhorst.smugmug.com/Other/blog/connected-atoms/1005966204_i6K49-O.jpg" alt="" width="250" height="187" /></p>
<p>The previous examples allude to another key benefit of atomicity &#8211; clean traceability.  Each requirement (or user story) exists to support one or more goals.  Requirements traceability can get complex, when many goals are dependent upon multiple requirements to be realized and many requirements enable multiple goals.  This approach to representing <a title="Goal decomposition with Ishikawa diagrams" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">goal-decomposition</a> (or <a title="user story decomposition" href="http://tynerblain.com/blog/2007/06/27/benefits-of-agile-stories/">user story decomposition</a>) is critical to assuring that you are <a title="Writing Valuable Requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/">writing valuable requirements</a>.</p>
<p>The simple version of traceability can be visualized with this <a title="structured requirements introduction" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">view of structured requirements</a>, presenting (and slightly extending) some of <a title="Process Impact - Karl Wiegers" href="http://www.processimpact.com/">Karl Wiegers&#8217; work</a> on requirements.  If you&#8217;re doing any work in requirements of any kind, you need to read Karl&#8217;s stuff &#8211; his <em><a title="Software Requirements, Karl Wiegers" href="http://www.amazon.com/dp/0735618798?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0735618798&amp;creative=373489&amp;camp=211189">Software Requirements</a></em> is a must-have.</p>
<p><img class="alignnone" title="requirements structure" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" alt="" width="567" height="450" /></p>
<p>This diagram makes it seem pretty straightforward.  Where it gets messy is when the multi-goal-per-requirement and multi-requirement-per-goal dependencies (that always exist) turn it from a simple tree into a complex graph.  Non-atomic requirements make that graph messier (a hassle, but not a problem)as each &#8220;requirement that is really multiple requirements&#8221; ads extra dependency relationships to your traceability model.  This becomes a <em>problem</em>, however, when you need to change.</p>
<p>Every project has implementation tasks that take longer than originally expected.  Using a t<a title="timeboxes for scheduling" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">ime-box approach to managing the content of each release</a> gives you a straightforward framework for determining how much stuff will be delivered in each release.  When you have to slip something, you have to revisit prioritization.  With well-defined requirements, each valuable requirement that could be delivered provides value by enabling users (or systems as users) to achieve a goal.  When you have to delay the implementation of a requirement, you delay the goals that it supports.</p>
<p>As soon as you realize you are considering delaying <em>part of a requirement</em>, that is a red flag that your requirement is not atomic.</p>
<p><strong>Atomic Requirements Simplify Operations</strong></p>
<p>Atomic requirements allow you to make these on-the-fly prioritization decisions with <em>much better insight</em> into the resultant delay in value.  This allows you to better manage communication with your stakeholders &#8211; validating that you are delaying the realization of the right goals.</p>
<p>The same benefits apply when originally planning your software iterations and releases.  Conceptually, you can imagine &#8220;scheduling&#8221; <em>everything</em> for the first release, immediately discovering that <em>most things</em> need to slip to future releases.  That&#8217;s how most* software projects really play out.</p>
<p>*There are times when you intentionally delay particular capabilities, based on external factors &#8211; market positioning, customer-adoption cadences, sales-team capacity (to absorb change), etc.</p>
<h2>Conclusion</h2>
<p><strong>Writing atomic requirements helps you</strong></p>
<ul>
<li>Organize and describe <em>why</em> you are asking the team to build what they are building, and <em>how</em> stakeholders will benefit from what will be built.</li>
<li>Understand the <em>assignable value</em> of each requirement by maximizing clarity in the dependency tree &#8211; each requirement is in place for specific reasons.</li>
<li>Communicate the relevance of each requirement to the implementation team &#8211; informing cost-benefit discussions around the inevitable schedule-change discussions.</li>
<li>Test the deliverables &#8211; atomic requirements get graded as pass-fail, not &#8220;X% working.&#8221;</li>
</ul>
<p>Attributions:</p>
<ul>
<li>Thanks <a title="Clix on sxc" href="http://www.sxc.hu/profile/clix">clix </a>for both &#8220;atomic&#8221; photos!</li>
</ul>

<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+Atomic+Requirements+http%3A%2F%2Fbit.ly%2F9OCVmS+" 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/2010/09/14/atomic-requirements/&amp;t=Atomic+Requirements" 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/2010/09/14/atomic-requirements/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Sprint Backlog &#8211; Don&#8217;t Solve Half of the Problem</title>
		<link>http://tynerblain.com/blog/2010/09/08/sprint-backlog-splitting-user-stories/</link>
		<comments>http://tynerblain.com/blog/2010/09/08/sprint-backlog-splitting-user-stories/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 15:19:28 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[user story decomposition]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1305</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F09%2F08%2Fsprint-backlog-splitting-user-stories%2F", "shorturl": "http://bit.ly/9aC0aX", "style": "big", "title": "Sprint Backlog - Don't Solve Half of the Problem" }); Every team that transitions to agile faces this problem &#8211; some stories are too big to fit in a single sprint.  Most of the teams that I have worked with have the wrong instinct &#8211; to solve [...]]]></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%252F2010%252F09%252F08%252Fsprint-backlog-splitting-user-stories%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9aC0aX%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Sprint%20Backlog%20-%20Don%27t%20Solve%20Half%20of%20the%20Problem%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F09%2F08%2Fsprint-backlog-splitting-user-stories%2F", "shorturl": "http://bit.ly/9aC0aX", "style": "big", "title": "Sprint Backlog - Don't Solve Half of the Problem" });</script></div>
<p><img class="alignnone" title="half a coin" src="http://sehlhorst.smugmug.com/Other/blog/coin/999585259_ZZZWM-O.jpg" alt="" width="250" height="175" /></p>
<p>Every team that transitions to agile faces this problem &#8211; some stories are too big to fit in a single sprint.  Most of the teams that I have worked with have the wrong instinct &#8211; to solve half of the problem for all users.</p>
<p>The right approach is to first solve all of the problem for a subset of the users.</p>
<p><span id="more-1305"></span></p>
<h2>The Goal of the Story</h2>
<p>User stories were created as lower-overhead use cases that served to better describe chunks of valuable software that could be rapidly developed, delivered, reviewed, used, and improved.  Writing user stories that undermine that intent &#8211; rapid, valuable, incremental delivery &#8211; is a bad way to write user stories.</p>
<p>Imagine you are part of the team building GoToAssist, a product designed to do this.  Your product manager and product owner put the following story into the top of your backlog &#8211; it is the most valuable capability you could add.</p>
<p><strong>As a provider of IT support, I need to remotely resolve issues on multiple computers simultaneously, every day, so that those computers will run well. </strong></p>
<p>The acceptance criteria include requiring that the solution working when accessing Apple computers, and PCs running various versions of windows and Linux.  Other acceptance criteria include allowing the solution to work well through network connections having minimum characteristics, not requiring the remote users to take action, and other elements that characterize what would be considered acceptable solutions by the stakeholders.</p>
<p>Your team immediately raises a red flag that <a title="Using timeboxes to schedule delivery" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">this user story is &#8220;too big&#8221; for a single sprint</a>.</p>
<p>Since the goal of the sprint is to deliver valuable, shippable software, you have a problem with any user story that cannot be <a title="What happens inside a Scrum sprint" href="http://tynerblain.com/blog/2010/08/24/inside-a-scrum-sprint/">completed within a single sprint</a>.</p>
<p><strong> No problem, just decompose the user story into smaller user stories&#8230;</strong></p>
<h2>Inside-Out User Stories (Bad)</h2>
<p>Note: Don&#8217;t confuse <em>making smaller user stories</em> with <em><a title="Decomposing user stories into tasks" href="http://tynerblain.com/blog/2007/06/27/benefits-of-agile-stories/">defining the tasks required to implement a user story</a></em>. Task definition is important and valuable for helping the development team organize their activities.  Making <em>smaller</em> user stories is not a good approach for organizing the team&#8217;s activities &#8211; use tasks instead.  The size and structure of user stories should align with the user&#8217;s goals.</p>
<p>An inside out perspective or approach is one that starts with an awareness of what is involved in creating the software, and either never, or only later considers the perspective of what it is like use the software.</p>
<p>When approaching the problem inside-out, you will break the story down as follows:</p>
<ol>
<li> As a provider of IT support, I need to remotely gain access to multiple computers simultaneously&#8230;</li>
<li>As a provider of IT support, I need to remotely authenticate as an administrator to each computer I access&#8230;</li>
<li>As a provider of IT support, I need to remotely control each computer I access&#8230;</li>
<li> As a provider of IT support, I need to remotely restore control of each computer&#8230;</li>
</ol>
<p>This approach looks very appealing, because it is very clear what has to be done to support each new user story, and each new user story is appreciably smaller.  Assume that each new user story is &#8220;small enough&#8221; for the team and does not need to be further reduced in size.  It is very easy to see how the scope of development work has been reduced for each user story.</p>
<p>The problem shows up when you approach this schedule from a user&#8217;s perspective.  Imagine that this product shipped with only stories 1 &amp; 2, and not 3 &amp; 4.  How useful would the user find the product to be if she could remotely access a computer and authenticate, but not actually control the computer (to do her remote support work) or return control to the computer&#8217;s owner?</p>
<p><img class="alignnone" title="pieces" src="http://sehlhorst.smugmug.com/Other/blog/pieces-small/999624114_CRNZ3-O.jpg" alt="" width="250" height="217" /></p>
<p>The reason you should <em>not </em>break the original user story up into these pieces is that the new stories do not independently represent delivery of <a title="Write Valuable Requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/">valuable</a> software.  These proposed smaller user stories are atomic (each step is discrete), but each step has no independent value.  The value is implicit in the sequence of steps, and is only realized when all four steps can be completed.  The original story is already <a title="Writing Complete User Stories" href="http://tynerblain.com/blog/2009/07/06/writing-complete-user-stories/">the smallest set of activities that allow the user to achieve his goal &#8211; a complete user story</a>.</p>
<p>The problem with decomposing the original user story from the inside-out is that the new user stories don&#8217;t provide independent value to any of the users.</p>
<p><strong> What about trying an approach that provides all of the value to some of the users?</strong></p>
<h2>Outside-In Story Decomposition (Good)</h2>
<p><img class="alignnone" title="IT support specialist persona" src="http://sehlhorst.smugmug.com/Other/blog/techie-face-small/60909507_JW6SB-O.jpg" alt="" width="165" height="250" /></p>
<p>You are still faced with the challenge of making the story smaller, but now with the constraint of only delivering pieces that provide independent value.  You need an approach that will work to split the story up per-user.  &#8220;Provider of IT support&#8221; is an overly broad category of users &#8211; it is heterogeneous, within which different groups of users will use the product differently.  I am a &#8220;provider of IT support&#8221; to my family, but I never have a need to access multiple computers simultaneously.  I also don&#8217;t need to do this more than once a month on average.  A corporate IT specialist responsible for 100 users would really benefit from simultaneous remote access to multiple machines &#8211; allowing her to multi-task, starting updates on a second machine while the first machine is working, etc.</p>
<p><img class="alignnone" title="Normal person persona" src="http://sehlhorst.smugmug.com/Other/blog/middle-aged-woman-small/60909472_YTZuH-O.jpg" alt="" width="250" height="234" /></p>
<p>There are at least two different personas that care about the &#8220;remote administration&#8221; user story, within the &#8220;provider of IT support&#8221; user category.  One persona who needs to access only one machine at a time, and one persona who needs to access multiple machines simultaneously.  This split allows you to decouple all of the work associated with managing simultaneous connections from the work associated with the sequence of steps (as applied through a single connection).  This may reduce the size of the original user story enough to complete it in one sprint, but probably not, since it only &#8220;shaves off a little work.&#8221;</p>
<p>Another way to discover different sets of people who could benefit from delivering the user story differently is to look at the acceptance criteria.</p>
<p>Right off the bat, we&#8217;ve called out that the solution needs to work when the remotely accessed computers are running several different operating systems.  You can make the user story smaller by constraining to one supported platform at a time.  Whichever platform you pick first &#8211; say Linux &#8211; has some users who will value your solution.  Start with them, then add another platform.  Work with the product manager to determine how many customers in the market will require each platform or combination of platforms &#8211; that will guide the sequence in which you build support for each platform.</p>
<p>Another acceptance criteria required that the remote users not need to be involved &#8211; enabling &#8220;unattended&#8221; remote support &#8211; a key market differentiator.  A key differentiator for the corporate IT specialist persona, who gets value from not having to coordinate support activities with multiple remote users.  In fact, it is probably a must-have feature for those customers.  As a family-support specialist, I don&#8217;t really have this need.  My mom is going to call me, and I can fix her pc while we&#8217;re on the phone.  I&#8217;m not trying to remotely administer her machine when a corporate policy has changed (on my schedule) &#8211; I&#8217;m doing it when a problem arises (on her schedule).  This criteria can be deferred for a later iteration of the story</p>
<p>This approach works because, while it may be not be intuitive (from the inside) that this is a viable way to decompose the story, it makes send from an outside-in, user perspective.  Think about the different sources of value / problems, and how <a title="Kano analysis" href="http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/">different people value solutions to the same problems differently</a>.  The important characteristics of the problem will vary from one persona to another.</p>
<h2>What About Development Efficiency?</h2>
<p>As a developer, you may very correctly complain that this is a really inefficient development process.  Some portion of the work done to enable controlling a single machine may need to be discarded and recreated in order to control multiple machines in parallel.</p>
<p>While these extra development costs are very visible, especially to developers, they are much smaller than the benefits that come from delivering the working software earlier.  The cost of resolving bugs increases by orders of magnitude as you move through the product creation life cycle (from development to testing to deployment).  The value of solutions also increases by orders of magnitude as they move through the process.  Getting working product deployed earlier allows you to start realizing value (and therefore revenue) earlier.</p>
<p>That increase in revenue far outweighs the cost of a less-efficient development approach.  Ignoring revenue side and focusing only on the cost side is being penny-wise but pound-foolish.</p>
<h2>Dogma and Pragmatism</h2>
<p><img class="alignnone" title="Rodin's Thinker" src="http://sehlhorst.smugmug.com/Other/blog/thinker-small/999631679_KXbxN-O.jpg" alt="" width="250" height="187" /></p>
<p>None of this should be taken as dogma.  My experience has been that this approach has almost always worked, sometimes requiring more radical thinking than others.  When it does not work (e.g. does not provide additional value, or does not sufficiently reduce the size of the stories), don&#8217;t do it.  I&#8217;ll always remember Kent Beck saying to me &#8211; &#8220;If it costs more to test (in advance) than it costs to fix the bugs (after the fact), then don&#8217;t test.&#8221;</p>
<p><strong> The same applies here, be pragmatic about it.</strong></p>
<p>If you&#8217;ve been biting your tongue since the middle of the &#8220;Inside-Out&#8221; section, because you can always just wait until all four user stories are completed in separate sprints, before releasing the software, then my apologies.  Of course you can do that.  But you are undermining a precept of Scrum &#8211; that every sprint could be released, if you needed to release it.</p>
<p>That may not apply to you &#8211; I work with some teams that develop enterprise software, and for them, releasing every sprint makes no sense &#8211; their customers can&#8217;t absorb the rapid improvements, their sales teams aren&#8217;t willing to sell differently, etc.  So, please forgive me, and go back and read the <em>Outside-In</em> section again, since you were probably ignoring that section as you started planning a great comment about this.</p>
<p>Who knows &#8211; a &#8220;too big&#8221; user story may appear in the backlog for the last sprint within your current release &#8211; wouldn&#8217;t it be great if you had the choice to release something (valuable) in the current release?</p>
<p>Think about this problem from an outside-in perspective.  The smallest story is one that allows a single customer to perform a single task, for which he will pay you.</p>
<h2>People Over Process &#8211; Conclusion</h2>
<p><strong>The objective that every sprint deliver valuable, working software, is not a </strong><em><strong>requirement</strong></em><strong>.  It is a </strong><em><strong>design principle</strong></em><strong> of the Scrum process. </strong></p>
<p>Agile is not about mandating processes, it is about getting better and faster.  When you can&#8217;t reasonably decompose a story into something that can be delivered in a single sprint, don&#8217;t.  You can have a sprint where you don&#8217;t deliver anything, because you only complete part of one thing.  Yes, it will look bad on the burn-down chart.</p>
<p>Will it mess with your velocity?  A bit.  But who cares?  Velocity is a measurement that helps inform projected delivery schedules.  You may have one sprint with zero velocity, but in the next sprint, when you do deliver the &#8220;two sprint story&#8221;, you&#8217;ll have double the velocity.  Magically, your running average is back to normal.</p>
<p><strong>Don&#8217;t let the rulers you use to measure the team&#8217;s output cause you to act irrationally.</strong></p>
<p>Attributions:</p>
<ul>
<li>Thanks to <a title="Half a Coin" href="http://www.flickr.com/photos/8510225@N07/2217689909/">John Loo</a> for the half-a-coin image.</li>
<li>Thanks to <a title="puzzle" href="http://commons.wikimedia.org/wiki/File:Mech_puzzle_3_disassembled.jpg">Handige Harry</a> for the puzzle pieces image.</li>
</ul>
<p> </p>
<p><!--3809b58eddb5482091df67fd19a9eaf4--></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+Sprint+Backlog+%E2%80%93+Don%E2%80%99t+Solve+Half+of+the+Problem+http%3A%2F%2Fbit.ly%2F9aC0aX+" 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/2010/09/08/sprint-backlog-splitting-user-stories/&amp;t=Sprint+Backlog+%E2%80%93+Don%E2%80%99t+Solve+Half+of+the+Problem" 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/2010/09/08/sprint-backlog-splitting-user-stories/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Verifiable Requirements</title>
		<link>http://tynerblain.com/blog/2010/08/30/verifiable-requirements/</link>
		<comments>http://tynerblain.com/blog/2010/08/30/verifiable-requirements/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 19:54:46 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Kano Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[verifiable requirements]]></category>
		<category><![CDATA[writing good requirements]]></category>
		<category><![CDATA[writing verifiable requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1290</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F08%2F30%2Fverifiable-requirements%2F", "shorturl": "http://bit.ly/cNGgE2", "style": "big", "title": "Verifiable Requirements" }); Writing Verifiable Requirements should be a rule that does not need to be written.  Everyone reading this has seen or created requirements that can not be verified.  The primary reason for writing requirements is to communicate to the team what they need to accomplish. [...]]]></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%252F2010%252F08%252F30%252Fverifiable-requirements%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FcNGgE2%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Verifiable%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F08%2F30%2Fverifiable-requirements%2F", "shorturl": "http://bit.ly/cNGgE2", "style": "big", "title": "Verifiable Requirements" });</script></div>
<p><img class="alignnone" title="rules of writing requirements logo - rule #8" src="http://sehlhorst.smugmug.com/photos/128628654-M.png" alt="" width="250" height="250" /></p>
<p>Writing Verifiable Requirements should be a rule that does not need to be written.  Everyone reading this has seen or created requirements that can not be verified.  The primary reason for writing requirements is to communicate to the team what they need to accomplish.  If you can&#8217;t verify that what the team delivered is acceptable, neither can the team.  This may be the most obvious of the rules of writing requirements &#8211; but it is ignored every day.</p>
<h2><span id="more-1290"></span>Verifiable Requirements &#8211; Revisiting</h2>
<p><img class="alignnone" title="reviewing the checklist" src="http://sehlhorst.smugmug.com/Other/blog/checklist/984534329_hipKA-O.jpg" alt="" width="243" height="250" /></p>
<p>In 2006, I first looked at how and <a title="writing verifiable requirements" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">why writing verifiable requirements is important </a>- as part of the ongoing series on <a title="The rules of writing requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">the rules of writing good requirements</a>.  The focus of that article was on testability, as is this one.  When visiting <em>verifiability</em> again, however, I will add that not only must <em>specifications</em> be objectively measurable, but so must <em>goals</em> be written so that you can identify when a solution has met the objectives that justified its creation.</p>
<h2>Directly Verifiable Requirements</h2>
<p>Most of the requirements we come across can be directly verified.  The only problem with these requirements is that they lack specificity.  The following example is <em>almost</em> verifiable, and only needs a little help:</p>
<ul>
<li>The web site must make it easier for users who use site search to find the products they want to buy.</li>
</ul>
<p>This requirement presents the challenge of <a title="Writing Unambiguous Requirements" href="http://tynerblain.com/blog/2010/08/18/unambiguous-requirements/">resolving the </a><em><a title="Writing Unambiguous Requirements" href="http://tynerblain.com/blog/2010/08/18/unambiguous-requirements/">ambiguity of the requirement</a>.</em> This lack of specificity prevents the requirement from being verifiable.  You have to identify <em>how much easier</em> the site search process must become for users.  Findability is a <em>more is better</em> characteristic in the <a title="Kano Analysis" href="http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/">Kano Analysis model for defining requirements</a>.</p>
<p>You have to acknowledge that making it easier to find what you&#8217;re looking for is better for users than making it harder &#8211; there is an upward slope to the function.  However, there are also diminishing returns.</p>
<p><img title="kano analysis - more is better - diminishing returns" src="http://sehlhorst.smugmug.com/Other/blog/20100830diminishing-returns/988115350_VV5EW-O.png" alt="" width="450" height="422" /> [<a title="kano analysis - more is better - diminishing returns" href="http://sehlhorst.smugmug.com/Other/blog/20100830diminishing-returns/988115366_9GaSG-O.png">larger image</a>]</p>
<ul>
<li>A search that includes &#8220;the perfect item&#8221; is massively better than a search that does not include what you are looking for.</li>
<li>A search that includes the perfect item on the first page of results is significantly better than one that returns the perfect item on the second page of results.</li>
<li>A search that includes the perfect item as the first result is only marginally better than a search that returns that perfect item as the second or third result.</li>
</ul>
<p>Improving findability as articulated above, from a user perspective, manifests in value to your company in two ways: immediate revenue impact and indirect revenue impact.</p>
<p>The immediate impact can be measured in terms of increases in commerce.  The indirect impact results from improving the user experience.  These<a title="viral product management" href="http://tynerblain.com/blog/2009/03/02/viral-product-management/"> improvements in experience result in increased word of mouth</a>, as <a title="Usability improvements have measurable value" href="http://tynerblain.com/blog/2007/01/10/usability-sells-software/">users altruistically encourage others to visit your website</a>, and also result in an increase in satisfaction causing users to return to your site more frequently and make more purchases from you.</p>
<p>You can measure these impacts in terms of</p>
<ul>
<li>Conversion percentage (percentage of people who search and then purchase the products found in the results)</li>
<li>Revenue attributed to users who search (an absolute measurement of purchases of products found via search)</li>
<li>Site traffic levels (the number of people that visit your site over time)</li>
<li>Visitor-recency statistics (the amount of time that elapses between return visits for returning visitors)</li>
</ul>
<p>Conversion percentage, for users who search, normalized against users who do not search, is the most isolated (from other variables and noise) and fastest responding (as a delayed measurement of impact) measurement of the value of making it &#8220;easier&#8221; for users to search for the products they <em>want to buy</em>.</p>
<p>Your team will design different approaches to achieving these improvements.  You have to estimate both the cost and the potential benefit of each approach.  Balancing cost estimates with potential benefits will yield the ideal requirement &#8211; perhaps a 10% improvement.  [Note: I've collapsed at least another article's worth of balancing cost versus benefit, and multiple articles of "understanding and measuring site search" into one paragraph here, in hopes of staying on task with writing verifiable requirements.]</p>
<p><strong>Rewriting the requirement as follows makes the requirement verifiable</strong>:</p>
<ul>
<li>Before: &#8220;The web site must make it easier for users who use site search to find the products they want to buy.&#8221;</li>
<li>After: &#8220;Users who search on the site will be at least 10% more successful at finding the products they want to buy when using site search.&#8221;</li>
</ul>
<h2>Impossible to Verify Requirements</h2>
<p>Often, stakeholders will present us with requirements that are impossible to verify (as requested).</p>
<ul>
<li>The home page needs to load fast.</li>
</ul>
<p>At first blush, this looks just like the previous requirement (easier search is similar to faster page load).  You can use the same techniques to determine a measurable &#8220;requirement&#8221; like &#8220;the home page needs to load in under 1 second.&#8221;  However, that&#8217;s not a good requirement, because it is not an implicitly <em><a title="Writing Valuable Requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/">valuable</a></em><a title="Writing Valuable Requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/"> requirement</a>.  This statement provides no insight into <em>why</em> a fast-loading home page might be valuable to a particular user or why it would be valuable to the company.</p>
<p>To address this issue, you have to meet with the stakeholder(s) and understand the actual underlying requirements.  You will ask why, <a title="The reason why things are as they are" href="http://tynerblain.com/blog/2006/02/21/the-reason-why/">determine motivations</a> and <a title="using Ishikawa diagrams to discover underlying requirements" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">underlying problems</a>, and <a title="Ten Awesome Active Listening Skills" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">apply active listening skills to discover the underlying requirement</a>.</p>
<p>The problem is that the statement, &#8220;the home page needs to load fast&#8221; is a specification.  In <em><a title="Different perspectives on what a requirement is" href="http://tynerblain.com/blog/2006/05/11/requirements-documents-one-mans-trash/">Requirements Documents &#8211; One Man&#8217;s Trash&#8230;</a></em>, I first used the following diagram to show how different people in the process of designing software view their piece of providing a solution.</p>
<p><img class="alignnone" title="differing perspectives on what is a requirement" src="http://sehlhorst.smugmug.com/photos/69105260-M.png" alt="" width="482" height="420" /></p>
<p>A developer may receive a spec &#8211; &#8220;home page must load in under 5 seconds&#8221; and feel like the <em>why</em> component is perfectly well defined &#8211; it is a matter of context and perspective.  Another way to think about this is that <a title="Creating actionable and valuable problem statements" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">the problem is with the problem statement</a>.</p>
<p>A product manager, however, needs to do research that follows a path like the following:</p>
<p>Given that we are building an eCommerce website, we know that people have expectations around page load times (<a title="ecommerce website performance" href="http://www.akamai.com/2seconds">per Forrester / Akamai report</a> (requires registration)).</p>
<p><img class="alignnone" title="akamai page load time survey results" src="http://sehlhorst.smugmug.com/Other/blog/akamai-small/988093069_xoHja-O.png" alt="" width="450" height="299" /> [<a title="page load time expectations for ecommerce customers" href="http://sehlhorst.smugmug.com/Other/blog/akamai-large/988093083_nqqSD-O.png">larger image</a>]</p>
<p>Further, those expectations manifest as people abandoning slow-loading websites (from the same report).</p>
<p><img class="alignnone" title="users abandon slow-loading websites" src="http://sehlhorst.smugmug.com/Other/blog/akamai-2-small/988377686_dTZYy-O.png" alt="" width="450" height="289" /> [<a title="users abandon slow-loading websites" href="http://sehlhorst.smugmug.com/Other/blog/akamai-2-large/988377703_nhnRY-O.png">larger image</a>].</p>
<p>We know from this <em>market research</em> that page-load times (for websites) represent another <em>more is better</em> Kano attribute, but one that has <em>must be</em> characteristics at the extremes.</p>
<p><img class="alignnone" title="more is better feature with extreme must-be behavior" src="http://sehlhorst.smugmug.com/Other/blog/20100830Extreme-More-is-Better/988386407_83xud-O.png" alt="" width="450" height="422" /> [<a title="extreme must-be behavior in more-is-better characteristic" href="http://sehlhorst.smugmug.com/Other/blog/20100830Extreme-More-is-Better/988386415_hsVef-O.png">larger image</a>]</p>
<p>While <em>more speed is better</em>, what the market research reveals is that for any given person, there is a minimum-speed <em>threshold</em>, at which speed is a <em>must-be</em> characteristic &#8211; too slow, and you lose customers (immediately).</p>
<p>A  combination of market research and elicitation will reveal that there is a true underlying goal of being fast enough to satisfy as many users as possible.  Combining this with practicalities of scaling your solution, and the associated costs; in the context of a particular solution design (an eCommerce website), you will arrive at a goal that allows you to rework your requirement so that it is verifiable.</p>
<p>Note: The requirement in this example is a subordinate requirement to a goal focused on maximizing conversion percentage (the percentage of customers who visit the site making purchases) &#8211; with a recognition that a major source of non-conversion is abandonment of the site, and that a large contributor to visitor abandonment is page load times.  An Ishikawa (or other model) will help you articulate this complexity and formulate requirements at a level of abstraction that is both valuable and actionable.</p>
<p><strong>Rewriting the requirement as follows makes the requirement verifiable</strong>:</p>
<ul>
<li>Before: &#8220;The home page needs to load fast.&#8221;</li>
<li>After: &#8220;No more than 10% of potential site visitors will abandon our site before viewing the page.&#8221;</li>
</ul>
<h2>Indirectly Verifiable Requirements</h2>
<p>Some requirements are impossible to <em>literally</em> verify, and must be <em>inferentially </em>verified.</p>
<ul>
<li>The site must support 1 million visitors per day, with a peak of 10,000 simultaneous with page-load times under 5 seconds.</li>
</ul>
<p>Models are Models, Not Reality.</p>
<p>Imagine trying to create a test by organizing a million visitors to hit your SaaS web solution on the same day, with at least 10,000 of them hitting the site simultaneously.  That is completely impractical.  That doesn&#8217;t however, invalidate the requirement or make it untestable.  The combination of modeling, hypothesis formulation, and extrapolation gives you a <em>reasonable</em> way to verify that your solution probably meets this requirement.</p>
<p>You&#8217;re already used to the concept that models are representations of reality &#8211; think about the maps you use &#8211; a map may have a scale like <em>one inch equals one mile</em>.  The map is a <em>model</em> of reality.  A map where one inch equals one inch would be impractical.</p>
<p>An effective approach to measuring this type of scalability requirement is to simulate users (with load testing and realistic user-behavior scripts) with automation.  That takes care of most of the coordination problem.  However, the cost of simulating a million users and 10,000 simultaneous users is high.  You can, more realistically, measure the site&#8217;s performance when 10, 100, and 1,000 simulated users simultaneously access a server.  You can extrapolate from those results to estimate how the system is likely to perform under 10,000 user loads.</p>
<p>Note: Extrapolation is dangerous (follow the Elvis link below)- you have to justify why extrapolation holds true, and identify when it does not, to minimize the risk of invalidating your hypothesis.  Make sure you have confidence in the engineering prowess of whoever is doing your extrapolation and modeling.</p>
<p><img class="alignnone" title="infinite elvises" src="http://sehlhorst.smugmug.com/photos/128096460-M.jpg" alt="" width="250" height="204" /> [see<a title="Five ROI calculation tips and the infinite elvis extrapolation antipattern" href="http://tynerblain.com/blog/2007/02/08/five-roi-calculation-tips/"> tip #5 of these ROI calculation tips for the </a><em><a title="Five ROI calculation tips and the infinite elvis extrapolation antipattern" href="http://tynerblain.com/blog/2007/02/08/five-roi-calculation-tips/">Infinite Elvis</a></em><a title="Five ROI calculation tips and the infinite elvis extrapolation antipattern" href="http://tynerblain.com/blog/2007/02/08/five-roi-calculation-tips/"> anti-pattern</a>]</p>
<p><strong>While this requirement does not to be rewritten in order to be verifiable, it does need to be augmented</strong>:</p>
<ul>
<li>Original: &#8220;The site must support 1 million visitors per day, with a peak of 10,000 simultaneous with page-load times under 5 seconds.&#8221;</li>
<li>Additional: &#8220;Testing of the site must show that 500 simultaneous users following &lt;user script X&gt; will yield no more than 1% page load times over 200 ms.&#8221;</li>
</ul>
<h2>Conclusion</h2>
<p>Every requirement you write must be verifiable.  When you can&#8217;t verify something, and can&#8217;t rewrite it into a verifiable form, that should be a sign that either it is a vision statement or a red herring.  Vision statements guide how we approach creating products and engage markets &#8211; they are valuable, but they are not requirements.  Red herrings are well-meaning but ill-advised inputs into the process that need to be culled &#8211; they are neither valuable nor requirements.</p>
<p><strong>Make sure all your requirements are verifiable</strong>.</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+Verifiable+Requirements+http%3A%2F%2Fbit.ly%2FcNGgE2+" 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/2010/08/30/verifiable-requirements/&amp;t=Verifiable+Requirements" 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/2010/08/30/verifiable-requirements/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Writing Unambiguous Requirements</title>
		<link>http://tynerblain.com/blog/2010/08/18/unambiguous-requirements/</link>
		<comments>http://tynerblain.com/blog/2010/08/18/unambiguous-requirements/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 13:17:46 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[rules of writing requirements]]></category>
		<category><![CDATA[unambiguous requirements]]></category>
		<category><![CDATA[writing requirements]]></category>
		<category><![CDATA[writing unambiguously]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1266</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F08%2F18%2Funambiguous-requirements%2F", "shorturl": "http://bit.ly/acqMn4", "style": "big", "title": "Writing Unambiguous Requirements" }); Writing unambiguous requirements is about understanding what is written, and what is read.  Without a clear understanding of your market, you can&#8217;t write unambiguously.  Even when you understand your market, you risk writing something that is ambiguous to your readers.  Documenting requirements is [...]]]></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%252F2010%252F08%252F18%252Funambiguous-requirements%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FacqMn4%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Writing%20Unambiguous%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F08%2F18%2Funambiguous-requirements%2F", "shorturl": "http://bit.ly/acqMn4", "style": "big", "title": "Writing Unambiguous Requirements" });</script></div>
<p><img class="alignnone" title="Rules of Requirements #7 Logo" src="http://sehlhorst.smugmug.com/photos/128628634-M.png" alt="" width="250" height="250" /></p>
<p>Writing unambiguous requirements is about understanding what is written, and what is read.  Without a clear understanding of your market, you can&#8217;t write unambiguously.  Even when you understand your market, you risk writing something that is ambiguous to your readers.  Documenting requirements is about communication.  Don&#8217;t break this rule, or you&#8217;ve wasted all the energy you spent understanding your requirements.</p>
<h2><span id="more-1266"></span>Unambiguous Requirements &#8211; Revisiting</h2>
<p>Fifty months and five days ago (another grin), I wrote about <a title="Writing Unambiguous Requirements - 2006" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">the importance of writing requirements so that they can be clearly understood</a>.  Writing requirements so that there is one, <em>unambiguous</em>, interpretation of what you wrote.  This article is the seventh in <a title="The big twelve rules of writing requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">a series on the rules of writing good requirements</a>.  In that version of the article, I focused primarily on language ambiguity, and framed the discussion in terms of ambiguity to the writer and to the reader.</p>
<p>As part of improving that series, I am revisiting each of the articles now that I have fewer hairs and the remaining ones are more gray.  The same framework still applies, but will be expanded in scope, using the following modified definitions of the framework.</p>
<ul>
<li><strong>Ambiguity for the Writer</strong> &#8211; not having a clear interpretation of the requirements.</li>
<li><strong>Ambiguity for the Reader</strong> &#8211; requirements that, <em>as written</em>, can be interpreted in more than one way.</li>
</ul>
<p><img class="alignnone" title="Tango Dancers" src="http://sehlhorst.smugmug.com/Other/blog/tango/973737835_vwB46-O.jpg" alt="image of feet of two people dancing the tango" width="250" height="166" /></p>
<p>It takes two to tango.  To lead, you have to know where you&#8217;re going.  To follow, you have to know where you&#8217;re being led.  The same is true with requirements &#8211; you have to know what you&#8217;re writing, and how your writing will be read.  <a title="40% of bugs come from misinterpreting requirements" href="http://tynerblain.com/blog/2005/12/28/why-we-should-invest-in-requirements-management/">Misinterpretation of requirements is the source of over 40% of all software defects</a>.</p>
<h2>Ambiguity for the Writer</h2>
<p>When you don&#8217;t know <em>why</em> you&#8217;re developing a particular set of requirements, it is because you either don&#8217;t have sufficient understanding of your market, or of your corporate objectives.  While it is always a <em>lack of knowledge</em>, sometimes, that lack of understanding is insidiously hidden.  You, as the writer of requirements, are the <em>reader of the market</em> &#8211; and what you&#8217;re reading is likely to be ambiguous.</p>
<p><strong>For Whom You Are Designing</strong></p>
<p>The most overlooked element I&#8217;ve personally seen in product creation is failing to understand who the users and buyers of your product will be.  I wanted to type &#8220;forgetting to understand,&#8221; but I struggle to imagine someone who understands the value of defining <a title="Buyer Personas and User Personas" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">user personas and buyer personas</a>, who then <em>forgets</em> to define them when gaining an understanding of their market.</p>
<p>The reason that this is an <em>ambiguity</em> issue is that when you fail to <a title="Defining Personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">define personas</a> <em>explicitly</em>, you define them <em>implicitly</em>.  An implicit persona is an ambiguous persona.  Alan Cooper named this anti-pattern the <em><a title="Elastic Users" href="http://tynerblain.com/blog/2007/07/23/elastic-users/">elastic user</a></em>, and the problem manifestation as failing to provide insight to guide design decisions.  When you have an ambiguous user, you lose what Frederick Brookes calls the <a title="The design of design" href="http://tynerblain.com/blog/2010/07/06/the-design-of-design/">clarity of design</a>. This results in at best a mediocre product without a core idea or aesthetic.</p>
<p><a title="Understanding user differences" href="http://tynerblain.com/blog/2006/04/17/persona-grata/">Different users value the same solutions differently</a>.  <a title="Designing for competent users" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">Users vary in competency</a>, and therefore have varied personal goals as they <a title="Usability learning curves" href="http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/">learn how to better use your product</a> over time.  When you don&#8217;t identify who the user is, you prioritize requirements without insight into what is important to the undefined, elastic, and ambiguous user.</p>
<p>The readers of your requirements are trusting that you will prioritize requirements correctly &#8211; but you can&#8217;t, because you lack an understanding of who the users will be.  You therefore lack an understanding of which problems are valuable, and which problems are more or less valuable than other problems.  This ambiguity makes it particularly difficult to <a title="writing valuable requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/">write </a><em><a title="writing valuable requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/">valuable</a></em><a title="writing valuable requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/"> requirements</a>.</p>
<p><strong>Precision in Language</strong></p>
<p>The other aspect of writing unambiguously is in using language that has meaning.  Using words like &#8220;can&#8221; and &#8220;may,&#8221; is imprecise in requirements.  &#8221;The system can respond in under three seconds.&#8221;  Does that mean that it <em>must</em> respond in under three seconds?  Does that mean it is acceptable if the system responds in twenty seconds?  This is an area of overlap with the rule of <a title="Writing measurable requirements" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">writing measurable, verifiable requirements</a>, so I won&#8217;t go into more details here.</p>
<p>Another source of imprecision in language, not only for the reader, but also for the writer, is <a title="Jargon video" href="http://tynerblain.com/blog/2006/02/15/jargon-gone-amuck/">jargon</a>.  You should never use jargon, as you have no way to know if your reader will actually interpret the jargon terms correctly &#8211; as readers often vary in the depth of their domain knowledge.  Jargon is also a <em>high risk of ambiguity</em> source, precisely because it is jargon.  Jargon is <em>short-hand</em> for communicating efficiently among domain experts.  Are you enough of a domain expert that you are confident that you absolutely, unambiguously understand the accepted meaning of the jargon term?</p>
<p><img class="alignnone" title="writing requirements" src="http://sehlhorst.smugmug.com/Other/blog/taking-notes/973758136_FLzEh-O.jpg" alt="image of someone writing" width="172" height="250" /></p>
<p>Hopefully, you&#8217;ve achieved a perfect understanding of your market.   Long-time readers will know that I&#8217;m joking.  Market analysis suffers from it&#8217;s own Heisenberg Uncertainty Principle &#8211; if you actually did manage a perfect understanding, the market will have changed &#8211; the best you can hope for is a statistical understanding of the behavior of your market.  You can document your interpretations, assumptions, and decisions &#8211; achieving clarity in your requirements &#8211; at least from your point of view.</p>
<h2>Ambiguity for the Readers</h2>
<p>As I mentioned earlier &#8211; using requirements is a dance &#8211; and it takes two, both the writer and the reader.  You need to write requirements so that they can only be interpreted in a single way, or you will stumble.</p>
<p><img class="alignnone" title="reading requirements" src="http://sehlhorst.smugmug.com/Other/blog/reading/973758126_88Kot-O.jpg" alt="woman reading" width="250" height="165" /></p>
<p>&#8220;You keep using that word.  I do not think it means what you think it means.&#8221; &#8211; <em>Inigo Montoya</em> (<a title="Princess Bride Quote" href="http://www.imdb.com/title/tt0093779/quotes">IMDB</a>)</p>
<p><strong>Shared Language</strong></p>
<p>The word &#8220;shall&#8221; as in &#8220;the system shall&#8230;&#8221; can be misinterpreted when your readers don&#8217;t share the same native language as you &#8211; which is why <a title="Don't Use &quot;Shall&quot;" href="http://tynerblain.com/blog/2009/04/22/dont-use-shall/">you must always use &#8220;must.</a>&#8220;</p>
<blockquote><p>Some good research on vocabulary size data for comprehension of english can be found <a title="Vocabulary Size " href="http://www.wordhacker.com/en/article/vocabularysizewordlists.htm">here</a>. The average native english speaker knows 20,000 word families. With a vocabulary of 5,000 english words, only 98.5% of the words in a given text will be understood. 5,000 words is a lot for a speaker of a second language (3,000 words is considered a<em>working knowledge</em>).</p>
<p>An <a title="Readability and Requirements" href="http://tynerblain.com/blog/2005/12/30/readability-and-requirements/">analysis of the reading-level</a> at which a document is written can be helpfull in identifying if the language is likely to be challenging for readers with limited vocabularies. The <a title="Gunning Fog measure of Readability" href="http://tynerblain.com/blog/2005/12/30/readability-and-requirements/">Gunning-Fog Index</a> provides a measure of the education level at which a text is written.</p>
<p><cite>Writing Unambiguous Requirements (2006)</cite></p>
</blockquote>
<p>Can&#8217;t write that section any better :).</p>
<p><strong>Ambiguous Use of Language</strong></p>
<p>I had the privilege to attend a presentation by professor Daniel M. Berry in 2007, on the ambiguous use of language in business rules and requirements.  In that presentation he referenced <em><a title="The Ambiguity Handbook" href="http://se.uwaterloo.ca/~dberry/handbook/ambiguityHandbook.pdf">The Ambiguity Handbook</a></em><a title="The Ambiguity Handbook" href="http://se.uwaterloo.ca/~dberry/handbook/ambiguityHandbook.pdf"> </a>that he authored (80 page pdf), which I just re-read last week.  There are many good examples of ambiguity in the use of English in business documents.</p>
<p>The following are some of the sources of ambiguity, for which I entirely credit professor Berry for pointing out to me.  I&#8217;ve only added some illustrative examples:</p>
<ul>
<li><strong>Plurality Causes Ambiguity</strong>.  Consider &#8220;Emails must include sender addresses&#8221; and &#8220;emails must include recipient addresses.&#8221;  Must each email include one sender address and one recipient address?  Must each email include multiple sender addresses?  Solution &#8211; don&#8217;t use plural subjects.  &#8221;Each email must include a sender address&#8221; and &#8220;each email must include recipient addresses.&#8221;</li>
<li><strong>Associative Ambiguity</strong>.  Professor Berry calls this the <em>parenthesis problem</em>.   What does &#8220;A and B or C&#8221; mean to you?  Does it mean &#8220;A, and either of B or C&#8221; or does it mean &#8220;either C, or both A and B&#8221; when you read it?  In math and programming, we learn very specific rules for how to interpret these types of structures.  We are also given <em>parentheses</em>, that we can use when we want to be specific and unambiguous.  The reader of your requirements is not a compiler, so don&#8217;t assume that she will interpret this the same way that you do.  Solution &#8211; use parentheses and explicit language to eliminate ambiguity that would arise from ignorance of the associative property.</li>
<li><strong>Anaphor Ambiguity</strong>.  For non-linguists: &#8220;don&#8217;t use pronouns.&#8221;  I love the example that <a title="anaphor example" href="http://en.wikipedia.org/wiki/Anaphora_(linguistics)">wikipedia </a>uses &#8211; &#8220;We gave the bananas to the monkeys because they were hungry.  We gave the bananas to the monkeys because they were ripe.<br /> 
<div id="_mcePaste">We gave the bananas to the monkeys because they were here.&#8221;  The pronoun, &#8220;they,&#8221; has an ambiguous binding.  Should &#8220;they&#8221; be a reference to the bananas or the monkeys?  In each of the first two sentences, you could reasonably assume that the reader will properly bind &#8220;they&#8221; to the monkeys and bananas respectively.  In the third sentence, an assumption of how the reader will interpret &#8220;they&#8221; is not reasonable.  Reasonable assumptions are still ambiguous &#8211; and the context is less likely to be obvious &#8211; so don&#8217;t use pronouns and rely on readers to bind them to the appropriate nouns.  Solution &#8211; repeat the noun for every reference.</div>
</li>
</ul>
<p><strong>Incompleteness Ambiguity</strong></p>
<p>Unwritten requirements are by definition ambiguous.  You must not assume that unstated requirements will be implemented.</p>
<p>A security exploit was recently discovered (and eliminated) in Facebook.  Previously, if you attempted to login to Facebook with an email address and a password that did not match the email address, Facebook would present you with a typical &#8220;failed login&#8221; screen and a link to reset your password.  However, in an effort to be friendly, Facebook would also include the first name and last name that were associated with that email account in the friendly warning message.</p>
<p>That is nice, except it is a privacy problem, and anyone who knew about this before could use the login page to discover the first and last name to associate with any email address.  &#8221;Bad people&#8221; with email address lists could discover the name to associate with many of those email addresses &#8211; allowing more sophisticated phishing or social engineering attacks.</p>
<p>The requirement to not provide any personal information when a user fails a login attempt was almost certainly an unwritten requirement.</p>
<h2>Conclusion</h2>
<p>Precision in your writing will reduce ambiguity in your requirements.  <a title="Active listening" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">Active listening</a> will help you discover when ambiguity has slipped through your editing net.  You can never completely eliminate this problem, but you can improve.  You must.</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+Writing+Unambiguous+Requirements+http%3A%2F%2Fbit.ly%2FacqMn4+" 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/2010/08/18/unambiguous-requirements/&amp;t=Writing+Unambiguous+Requirements" 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/2010/08/18/unambiguous-requirements/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Rupert Murdoch &#8211; Zero; John Nash &#8211; One</title>
		<link>http://tynerblain.com/blog/2010/07/20/nash-beats-murdoch/</link>
		<comments>http://tynerblain.com/blog/2010/07/20/nash-beats-murdoch/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 14:33:58 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[freemium]]></category>
		<category><![CDATA[game theory]]></category>
		<category><![CDATA[john nash]]></category>
		<category><![CDATA[murdoch]]></category>
		<category><![CDATA[nash equilibrium]]></category>
		<category><![CDATA[pay-wall]]></category>
		<category><![CDATA[paywall]]></category>
		<category><![CDATA[rupert murdoch]]></category>
		<category><![CDATA[times of london]]></category>
		<category><![CDATA[understanding your market]]></category>
		<category><![CDATA[word of mouth]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1246</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F07%2F20%2Fnash-beats-murdoch%2F", "shorturl": "http://bit.ly/9A1R0N", "style": "big", "title": "Rupert Murdoch - Zero; John Nash - One" }); vs. What happens when billionaire media magnate, Rupert Murdoch, pits his idea against a Nobel-prize winning idea from the beautiful mind of economist and mathematician John Nash? When you act on what you hope your market will do, [...]]]></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%252F2010%252F07%252F20%252Fnash-beats-murdoch%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9A1R0N%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Rupert%20Murdoch%20-%20Zero%3B%20John%20Nash%20-%20One%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F07%2F20%2Fnash-beats-murdoch%2F", "shorturl": "http://bit.ly/9A1R0N", "style": "big", "title": "Rupert Murdoch - Zero; John Nash - One" });</script></div>
<p><img class="alignnone" title="Rupert Murdoch" src="http://sehlhorst.smugmug.com/Other/blog/Ruper-Murdoch250/940675943_r6skK-O.jpg" alt="Wikicommons stock image of Rupert Murdoch" width="166" height="250" /> vs. <img class="alignnone" title="John Nash" src="http://sehlhorst.smugmug.com/Other/blog/John-Nash250/940675936_vTXvV-O.jpg" alt="Wikicommons stock image of John Nash" width="165" height="250" /></p>
<p>What happens when <a title="Rupert Murdoch on Wikipedia" href="http://en.wikipedia.org/wiki/Rupert_Murdoch">billionaire media magnate, Rupert Murdoch</a>, pits his idea against a Nobel-prize winning idea from the beautiful mind of <a title="John Nash on wikipedia" href="http://en.wikipedia.org/wiki/John_Forbes_Nash,_Jr."> economist and mathematician John Nash</a>?</p>
<p>When you act on what you <em>hope</em> your market will do, instead of what you <em>predict</em> your market will do &#8211; you&#8217;re in trouble.</p>
<p>This is a story about understanding your market, and an example of using game theory &#8211; specifically, the <a title="Nash Equilibrium" href="http://en.wikipedia.org/wiki/Nash_equilibrium">Nash Equilibrium</a> in &#8220;non-cooperative game theory&#8221; to predict market responses to your products.</p>
<h2><span id="more-1246"></span>Murdoch&#8217;s Idea</h2>
<p>To sum up the particular idea I&#8217;m talking about &#8211; Mr. Murdoch has put the Times of London behind a pay-wall (you have to subscribe to access the content online), and removed the articles from Google&#8217;s search index.  He did this because he believes that people accessing the content for free are &#8220;stealing it&#8221; and that the only way to make money in the news business online is by forcing people to pay for content.  For more nuanced and deeper discussions of what Mr. Murdoch is doing, check out these articles from <em><a title="Times of London paywall" href="http://www.theatlantic.com/science/archive/2010/07/on-rupert-murdochs-times-paywall/59878/">The Atlantic</a></em> explaining what he&#8217;s attempting, the <em><a title="times of london traffic stats jul 2010" href="http://www.editorandpublisher.com/Headlines/london-times-sees-66-traffic-drop-post-paywall-62033-.aspx">Editor &amp; Times</a></em><a title="times of london traffic stats jul 2010" href="http://www.editorandpublisher.com/Headlines/london-times-sees-66-traffic-drop-post-paywall-62033-.aspx"> report</a> of a 66% drop in traffic, <em><a title="behind the firewall" href="http://www.newser.com/off-the-grid/post/502/whats-really-going-on-behind-murdochs-paywall.html">Newser</a></em><a title="behind the firewall" href="http://www.newser.com/off-the-grid/post/502/whats-really-going-on-behind-murdochs-paywall.html">&#8216;s investigative journalism</a> of what&#8217;s happening inside the company, or <em><a title="murdoch's paywall foundering" href="http://www.businessinsider.com/murdochs-first-newspaper-paywalls-not-off-to-a-great-start-2010-7">Business Insider&#8217;s</a></em> take on the matter.</p>
<p><img class="alignnone" title="Times of London paywall" src="http://sehlhorst.smugmug.com/Other/blog/london-times/940784940_kNxNm-O.png" alt="" width="250" height="169" /></p>
<p>My opinion is that Mr. Murdoch expects his market will respond the way he wants them to &#8211; by subscribing to the online version of the Times of London &#8211; in stark contrast both to pundit predictions and what professor Nash&#8217;s <em><a title="Nash Equilibrium" href="http://en.wikipedia.org/wiki/Nash_equilibrium">Nash Equilibrium</a></em><a title="Nash Equilibrium" href="http://en.wikipedia.org/wiki/Nash_equilibrium"> model of non-cooperative gaming</a> predicts will happen.</p>
<p>As results have finally started surfacing, they appear to completely support what game-theory would predict and utterly refute what Mr. Murdoch would have hoped for.</p>
<h2>Game Theory for Predicting Market Behavior</h2>
<p>I was enthralled by Scott Steven&#8217;s lecture series, <em><a title="Game Theory lectures at Amazon" href="http://www.amazon.com/dp/1598034839?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=1598034839&amp;creative=373489&amp;camp=211189">Games People Play: Game Theory in Life, Business, and Beyond</a></em> &#8211; a DVD set of a series of lectures from The Teaching Company [link goes to Amazon].</p>
<p>Understanding your market involves not only <a title="understanding user personas and buyer personas" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">knowing what problems your customers face</a>, but also predicting how your competitors will behave.  Competitive analysis is not just capturing a snap-shot of their products and positioning <em>today</em>, but also forming predictions of how they will respond to <a title="market driven competitive advantage" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">the disruptions you will create in your market by innovating</a>.  Markets are not static &#8211; you have to understand both how your customers&#8217; needs will evolve and how your competitor&#8217;s offerings will change, in order to understand how your product will perform.</p>
<p>One of the &#8220;games&#8221; in game theory is called <em><a title="The Coordination Game" href="http://en.wikipedia.org/wiki/Coordination_game">The Coordination Game</a></em>, and it is the one that captures Mr. Murdoch&#8217;s conundrum.  The <em>coordination</em> piece of this game is in acknowledging that what you do (to pay-wall or <em>not</em> to pay-wall), and what your competitors do (pay-wall or not) are interdependent decisions, of which you only control your own decision.</p>
<p>You can&#8217;t (successfully) unilaterally decide what you are going to do, without taking into account what your competition is going to do.  And vice-versa.  That&#8217;s the part that makes it hard &#8211; there is a circular reference that has to be resolved.  I suspect that&#8217;s the source of elegance in the <em>Nash Equilibrium</em> &#8211; he realized that there are &#8220;stable&#8221; and instable combinations of the decisions &#8211; yours, and your competitors.</p>
<h2>The Pay-wall Coordination Game</h2>
<p>Mr. Murdoch and &#8220;everyone else&#8221; (his competition for consumers of news) are both faced with a choice &#8211; should they allow free access to the articles, or not.  Free access to articles can generate revenue by two mechanisms.</p>
<p>The first is one of the<a title="Freemium business models" href="http://tynerblain.com/blog/2009/02/24/freemium-model/"> freemium business models</a> &#8211; <em>billing Peter to pay for Paul</em> &#8211; charging money to advertisers for access to viewer&#8217;s attention.</p>
<p>The second mechanic is by <a title="Word of mouth marketing" href="http://tynerblain.com/blog/2007/09/18/dynamics-of-word-of-mouth/">leveraging word of mouth</a> &#8211; people reading your free article, then encouraging others to read your other articles.  This approach can either be used to get a percentage of people as paying customers (with a &#8220;leaky pay-wall&#8221; model that allows some free views, but encourages paid-subscriptions), or to get additional traffic that increases revenue from advertising.  One way to maximize this approach is by<a title="Viral product management" href="http://tynerblain.com/blog/2009/03/02/viral-product-management/"> making your product implicitly viral</a> so that it promotes itself.</p>
<p>Alternately, Mr. Murdoch, or any of his competitors can create a pay-wall, where only paying subscribers will have access to the content.  Presumably, certainly historically, a subscription model <em>with the same level of readership</em> &#8211; if that could be achieved &#8211; would generate more revenue for the publisher than either freemium model.</p>
<p>The crux is that we have tons of market data to show that &#8220;the same level of readership&#8221; simply will not happen.</p>
<p><strong>There are four possible scenarios that can happen in this market</strong> -</p>
<ol>
<li>Both Mr. Murdoch and &#8220;everyone else&#8221; institute pay-walls, making all online content available only to paying subscribers.</li>
<li>Mr. Murdoch erects a pay-wall, but everyone else continues to allow free access to content.</li>
<li>Mr. Murdoch allows free access to content while everyone else erects pay-walls to prohibit access to content.</li>
<li>No one erects a pay-wall, and free access is allowed to all content.</li>
</ol>
<p><img class="alignnone" title="Game Theory for Murdoch vs. Everyone" src="http://sehlhorst.smugmug.com/Other/blog/four-squares/941358190_PJ73g-O.png" alt="" width="441" height="442" /></p>
<p>[Update 2010.07.21: Why "everyone?"  See comment #2 below]</p>
<p>In scenario 1, assuming people don&#8217;t just stop reading online, everyone wins &#8211; everyone charges subscription prices, achieving the maximum amount of revenue.  So why didn&#8217;t this happen?  Because the decisions are interdependent, and because the market is starting out in scenario 4.</p>
<p>Mr. Murdoch has moved the market (from his perspective) into scenario 2, which is clearly bad for him, in hopes that everyone else will move as well, to reach scenario 1.  Once Mr. Murdoch put the Times of London into scenario 2, then everyone else&#8217;s best move is to stay there.  No one else will join him, because <em>everyone </em>else never will.  The market, once stabilized in scenario 4 (the starting point) can never move to scenario 1 &#8211; without collusion, which is conveniently illegal.</p>
<p><em>Someone</em> will always be there to refuse to move to scenario 1.  &#8221;Everyone else&#8221; is destined to allow free access, or exit the market.</p>
<h2>Understanding Your Customers</h2>
<p>It is possible that Mr. Murdoch looked at the <em>Wall Street Journal</em>, which has a pay-wall, and said &#8220;I want to do that too.&#8221;  And perhaps he discounted all of this game-theory &#8220;nonsense&#8221; because if it worked for them, it can work for him &#8211; the model is BS.</p>
<p>However, I believe the Journal&#8217;s market is different, and it works for them for different reasons.  The market for business news pays a premium for immediacy and quality of information &#8211; because getting the best information first is worth a lot of money to them.  There are &#8220;free&#8221; immediate sources of business news information, but the market indicates that it perceives that information to be of lower quality.  And there are free high-quality information sources, without the immediacy.</p>
<p>The reality, which you can only get from<a title="user goals and corporate goals" href="http://tynerblain.com/blog/2009/06/22/user-goals-and-corporate-goals/"> understanding your customer&#8217;s goals</a> &#8211; is that the business-news market is stable in scenario 1. It could be destabilized, by someone offering free, timely, high quality information.  If that happened, as professor Nash showed, the market would either re-stabilize in scenario 1 (the company that changes says &#8220;oops&#8221; and reverts their policy), or the market would transition to a stable state in scenario 4 (everyone offers free content).</p>
<p>The more concentrated the market [see: <a title="measuring market concentration and competitiveness" href="http://tynerblain.com/blog/2009/04/13/measure-market-concentration/">measuring market concentration</a>], the more likely a reversion to scenario 1.  The more competitive the market, the more likely that it will stabilize in scenario 3.</p>
<p>Non-business news on the internet?  Very competitive.  And stable in scenario 4, no matter what Mr. Murdoch might hope.  Sadly, there are profits to be made in scenario 4, but they aren&#8217;t as appealing as the double-rainbow of scenario 1 &#8211; however impossible it is to achieve.</p>
<h2>Attributions</h2>
<p>The two photos at the start of this article of Mr.s <a title="Murdoch image and license" href="http://en.wikipedia.org/wiki/File:Rupert_Murdoch_-_WEF_Davos_2007.jpg">Murdoch</a> and <a title="John Nash image source" href="http://en.wikipedia.org/wiki/File:John_Forbes_Nash,_Jr._by_Peter_Badge.jpg">Nash</a> are licensed through the <a title="Creative Commons" href="http://en.wikipedia.org/wiki/en:Creative_Commons">Creative Commons</a> <a title="CC2.0 link" href="http://creativecommons.org/licenses/by-sa/2.0/deed.en">Attribution Share-Alike 2.0 Generic</a> and the <a title="CC 3.0 license link" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en">Attribution Share-Alike 3.0 Unported</a> licenses, respectively.</p>
<p>All other content in this article is licensed per the Creative Commons link at the bottom of this page.</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+Rupert+Murdoch+%E2%80%93+Zero%3B+John+Nash+%E2%80%93+One+http%3A%2F%2Fbit.ly%2F9A1R0N+" 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/2010/07/20/nash-beats-murdoch/&amp;t=Rupert+Murdoch+%E2%80%93+Zero%3B+John+Nash+%E2%80%93+One" 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/2010/07/20/nash-beats-murdoch/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>The High Costs of Building the Wrong Product</title>
		<link>http://tynerblain.com/blog/2010/06/21/building-the-wrong-product/</link>
		<comments>http://tynerblain.com/blog/2010/06/21/building-the-wrong-product/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 14:15:12 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[1-10-100 rule]]></category>
		<category><![CDATA[bad product management]]></category>
		<category><![CDATA[cost of quality]]></category>
		<category><![CDATA[requirements bugs]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1229</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F06%2F21%2Fbuilding-the-wrong-product%2F", "shorturl": "http://bit.ly/bmtQmO", "style": "big", "title": "The High Costs of Building the Wrong Product" }); As product managers, we talk about creating the right solutions with our products. Understanding the very real problems our customers face, understanding the very real opportunities our markets present, and manifesting that understanding in a product roadmap. Other [...]]]></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%252F2010%252F06%252F21%252Fbuilding-the-wrong-product%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FbmtQmO%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22The%20High%20Costs%20of%20Building%20the%20Wrong%20Product%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F06%2F21%2Fbuilding-the-wrong-product%2F", "shorturl": "http://bit.ly/bmtQmO", "style": "big", "title": "The High Costs of Building the Wrong Product" });</script></div>
<p><img class="alignnone" title="Bug" src="http://sehlhorst.smugmug.com/photos/51917869-M.jpg" alt="A Praying Mantis" width="250" height="187" /></p>
<p>As product managers, we talk about creating the right solutions with our products.  Understanding the very real problems our customers face, understanding the very real opportunities our markets present, and manifesting that understanding in a product roadmap.</p>
<p>Other than being &#8220;not as good,&#8221; how expensive is it to build the wrong product?<br />
<span id="more-1229"></span></p>
<h2>The Cost of Poor Quality</h2>
<p><img class="alignnone" title="frayed cable" src="http://sehlhorst.smugmug.com/Other/blog/frayed-cable/908182336_gJtUG-O.jpg" alt="A frayed Steel cable" width="250" height="179" /></p>
<p>There&#8217;s an analog to the market dynamics of making poor product decisions &#8211; executing with poor quality.  Many research studies  and articles have identified the market impacts of poor quality.  This has become so well accepted that people today cite it like a law of physics (<a title="cost of quality" href="http://www.tylogix.com/Articles/The_Dollars_and_Sense_of_Software_Quality_Control_V011.htm">one example here</a> based on <a title="boehm in 1988" href="http://faculty.ksu.edu.sa/ghazy/Cost_MSc/R6.pdf">this 1988 IEEE research</a> by Barry Boehm and Philip Papaccio) as the &#8220;1-10-100 rule.&#8221;  The primary conclusion of that research is that ten dollars spent on fixing bugs:</p>
<ul>
<li>Costs and saves $10 when you catch (and fix) the bug during implementation.</li>
<li>Avoids $100 in costs when you catch the bug during QA and send the product back to development (then test again).</li>
<li>Avoids $1,000 in costs versus waiting until your customers catch the bug in the field, causing the team to remedy the problems, rush out a patch release, and/or go to heroic lengths to manage a PR problem.</li>
</ul>
<p>This is an opportunity in front of your product team &#8211; a 100x payback from investing in quality during the development process.  Of course, be pragmatic about it -<a title="measuring the cost of quality" href="http://tynerblain.com/blog/2006/02/22/software-testing-series-measuring-the-cost-of-quality/"> if the cost of testing exceeds the cost of bugs, don&#8217;t test</a>.</p>
<p>This is not a solved problem, by any stretch, but the solutions and methods to solve this problem are well understood now.  In fact, a <a title="boehm and Basili on cost of quality" href="http://www.cs.umd.edu/projects/SoftEng/ESEG/papers/82.78.pdf">2001 article by Barry Boehm and Victor Basili</a> shows that in some cases, the labor costs to resolve bugs can be as low as 5:1 &#8211; when considering a subset of smaller systems, when using more &#8220;agile&#8221; processes.  That lowered ratio does not take into account the lost market opportunities and the costs of cleaning up <em>collateral</em> damage to your product &#8211; just the immediately realizable (and measurable) costs of resolution.</p>
<p>One very real problem, when talking about &#8220;bugs&#8221; is in defining what a &#8220;bug&#8221; is.  And <a title="Where bugs come from - software development process analysis" href="http://tynerblain.com/blog/2006/01/22/where-bugs-come-from/">the definition of a bug is a matter of perspective</a>.  A developer can reasonably assert that &#8220;if it meets the spec it is not a bug, it is working as designed.&#8221;  What if the spec is wrong?  The developer may not be guilty, but collectively, your team screwed up.  There&#8217;s a &#8220;bug&#8221; in the requirements.</p>
<h2>What Is A Requirements Bug?</h2>
<p><img class="alignnone" title="flawed revenue projection" src="http://sehlhorst.smugmug.com/Other/blog/Revenue-300x234/908184921_okRC5-O.png" alt="A very unlikely hockey stick revenue forecast graph" width="300" height="234" /></p>
<p>Now things are getting interesting.</p>
<p>If you wrote a requirement that you interpret as &#8220;A&#8221; and your developers interpret as &#8220;B&#8221; &#8211; you definitely have a bug &#8211; the team won&#8217;t build the right product.  For each $1 you could spend making sure you have bug-free requirements, you could:</p>
<ul>
<li>Make sure you have a shared understanding of the documented requirements through <a title="Eliciting with Active Listening" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">active listening</a> before development begins ($1).  Following the <a title="The Rules of Writing Good Requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">Rules of Writing Requirements</a> will help prevent this miscommunication.</li>
<li>Wait until the engineering team is ready to demo their progress ($10).  They will have to build it again, because they built the wrong stuff.</li>
<li>Wait until development is complete and QA is validating that the code meets the spec ($100).  This gets tricky if you are thinking &#8220;A&#8221;, the developers are thinking &#8220;B&#8221;, and QA is thinking &#8220;C.&#8221;</li>
<li>In classic throw-it-over-the-wall mode, wait until the product is launched, and it is the wrong product ($1000).  Assuming &#8220;A&#8221; was the right problem to solve, the cost of entering the market with a solution to &#8220;B&#8221;, leaving &#8220;A&#8221; unaddressed, is impressively high.</li>
</ul>
<p>This gets interesting because the above assumes that &#8220;A&#8221; was the right problem to solve.  What if &#8220;G&#8221; was <a title="Writing Valuable Requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/">the right problem to solve</a>, and &#8220;A&#8221; was <a title="market data is more important than feature requests" href="http://tynerblain.com/blog/2008/08/19/managing-market-data/">the </a><em><a title="market data is more important than feature requests" href="http://tynerblain.com/blog/2008/08/19/managing-market-data/">wrong</a></em><a title="market data is more important than feature requests" href="http://tynerblain.com/blog/2008/08/19/managing-market-data/"> market problem</a>?  Even if everything (else) is working perfectly &#8211; you document requirements for &#8220;A&#8221;, the engineering team creates a marvelous &#8220;A&#8221; and it launches without implementation errors &#8211; you still fail, and incur the 1,000x cost of a failed product launch.</p>
<p>There is an even larger opportunity in front of your product team &#8211; a 1,000x payback on discovering and choosing to solve the right problems for your customers and markets.</p>
<ul>
<li>Would Palm still be independent if the Pre had solved a compelling problem?</li>
<li>Why did Intuit have to buy Mint.com &#8211; could they have embraced the same customers with Quicken?</li>
<li>What is Garmin going to do now that &#8220;free&#8221; GPS mapping and turn-by-turn directions are becoming ubiquitous? If it is &#8220;more of the same,&#8221; how much are they wasting?</li>
</ul>
<h2>Wrapping Up</h2>
<p><img class="alignnone" title="Wrapping" src="http://sehlhorst.smugmug.com/Other/blog/wrapping-paper/908188628_begak-O.jpg" alt="Wrapping paper rolls" width="250" height="181" /></p>
<p>I&#8217;m not aware of any studies that show that &#8220;requirements bugs&#8221; fit the same 1/10/100/1000 cost explosion model that &#8220;implementation bugs&#8221; exhibit.  Emotionally, it &#8220;feels about right&#8221; to me &#8211; it passes my &#8220;sniff test.&#8221;</p>
<p>There are times when days of research would have been required to avoid or redirect a few hours of implementation effort on projects I&#8217;ve worked on.  And I&#8217;ve seen man-years invested solving problems that didn&#8217;t involve much more research.</p>
<p>My intuition from products and teams I&#8217;ve worked with is that it probably averages out somewhere around 10x.</p>
<p>What does your gut (or your data &#8211; if you have some, post a link below!) tell you?</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+High+Costs+of+Building+the+Wrong+Product+http%3A%2F%2Fbit.ly%2FbmtQmO+" 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/2010/06/21/building-the-wrong-product/&amp;t=The+High+Costs+of+Building+the+Wrong+Product" 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/2010/06/21/building-the-wrong-product/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
		<item>
		<title>Consistent Requirements</title>
		<link>http://tynerblain.com/blog/2010/04/06/consistent-requirements/</link>
		<comments>http://tynerblain.com/blog/2010/04/06/consistent-requirements/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 06:07:30 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[consistent requirements]]></category>
		<category><![CDATA[rules of writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1205</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F04%2F06%2Fconsistent-requirements%2F", "shorturl": "http://bit.ly/dCP73h", "style": "big", "title": "Consistent Requirements" }); Consistency in writing requirements is important on two levels &#8211; strategic and tactical.  Tactically, you need to write your requirements with grammatical consistency, so that potentially ambiguous statements will be interpreted similarly.  You also need to write requirements that are logically consistent, so that [...]]]></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%252F2010%252F04%252F06%252Fconsistent-requirements%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FdCP73h%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Consistent%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F04%2F06%2Fconsistent-requirements%2F", "shorturl": "http://bit.ly/dCP73h", "style": "big", "title": "Consistent Requirements" });</script></div>
<p><img class="alignnone" title="writing consistent requirements logo - big 12 rules" src="http://sehlhorst.smugmug.com/photos/128628622-M.png" alt="writing consistent requirements logo" width="250" height="250" /></p>
<p>Consistency in writing requirements is important on two levels &#8211; strategic and tactical.  Tactically, you need to write your requirements with grammatical consistency, so that potentially ambiguous statements will be interpreted similarly.  You also need to write requirements that are logically consistent, so that you avoid &#8220;impossible&#8221; requirements and gaps of unspecified meaning.   Strategically, your requirements need to reflect a focus on markets and problems that are consistent with your business objectives and the vision your company is manifesting</p>
<h2><span id="more-1205"></span>Consistent Requirements &#8211; Revisiting</h2>
<p>Thirteen hundred ninety-six days ago (grin), I wrote about <a title="consistency in writing requirements" href="http://tynerblain.com/blog/2006/06/09/big-ten-rules-writing-consistent-requirements/">the importance of grammatical and logical consistency in writing requirements</a> &#8211; an emphasis on the tactical aspects of consistency in <em>writing</em> requirements.  This article adds a brief discussion on the consistency of the <em>requirements</em> you write.  This article is the sixth update of a series of articles on <a title="the rules of writing requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">the rules of writing requirements</a>.</p>
<h2>Grammatical Consistency</h2>
<p><img class="alignnone" title="yoda" src="http://sehlhorst.smugmug.com/Other/blog/yoda-small/829162992_csMf9-O.jpg" alt="" width="250" height="187" /> [<a title="commercial reuse-labeled source" href="http://picasaweb.google.com/lh/photo/7LgUrfs5IsyeY3MHzr0Eaw">source</a>]</p>
<p>Writing requirements is not like other forms of writing in one key way &#8211; you <em>don&#8217;t</em> want to vary the terms and language you use in your requirements documents.  Remember the critiques you received when you studied writing in school for a moment.  Your teacher told you not to repeatedly use the same word, but to use synonyms for that word &#8211; walked, ambled, stepped, capered, etc.  Those synonyms allowed you to create imagery and helped your readers avoid boredom.  Your teacher encouraged you to use metaphors that created even stronger imagery &#8211; flew, slogged, muddled, danced, etc.  Those metaphors allowed you to infuse emotion into your narrative and helped your writing come to life for your readers.</p>
<p>As Yoda said, <strong>&#8220;Unlearn, you must!&#8221;</strong></p>
<p>Requirements are not a narrative.  Your primary goal is not <em>entertainment</em>, it is <em>enlightenment</em>.  Don&#8217;t use varying terms to describe the same action or object &#8211; use the same terms over and over again.  Don&#8217;t vary the modifiers of terms except when you are explicitly varying the context and referenced items &#8211; and then make certain that you use the same modifiers consistently for the same context and references.  When dealing with anything that has some complexity, provide a figure or diagram (possibly in an appendix or glossary) that explains the explicit meanings of each term and term-modifier.</p>
<p>For example, if you are defining requirements for a classification system for authored works, be specific about the definitions of <em>author</em>, <em>editor</em>, <em>publisher</em>, and <em>reviewer</em>.  You may also need to define a term that is used collectively for all of them, like <em>creators</em>.</p>
<p>You must consistently use the same voice  - ideally the <em>active</em> voice.  And of course, <a title="you must not say 'the system shall...'" href="http://tynerblain.com/blog/2009/04/22/dont-use-shall/">you must not use &#8216;the system shall.&#8217;</a> [There's a great debate in the comments on that article - one thing to note - all of the people on both sides of the debate emphatically expressed their <em>consistent</em> use of one form or the other.]</p>
<h2>Logical Consistency</h2>
<p><img class="alignnone" title="commander data from sttng" src="http://sehlhorst.smugmug.com/Other/blog/data-small/829162995_fszNh-O.jpg" alt="commander data from star trek" width="250" height="222" /> [<a title="original image on flickr - licensed for commercial reuse" href="http://www.flickr.com/photos/t/236605/">source</a>]</p>
<p>Logical <em>in</em>consistency most commonly comes from expressing the same requirement twice.  If you use the exact same words to express a requirement twice, you&#8217;re being redundant and repetitive (grin #2).  Most likely, the second expression of the same requirement is both unintended, and worded differently &#8211; running the risk that it will be interpreted differently, and therefore inconsistently.</p>
<p>You will also create logically inconsistent requirements when you express mutually exclusive requirements.  These can be directly incompatible, like writing &#8220;the system must infer the value&#8230;&#8221; and &#8220;the user must provide the value&#8230;&#8221;   Or they can be indirectly inconsistent like &#8220;the animal must bark&#8221; and &#8220;the animal must be a cat&#8221; &#8211; which is logically inconsistent because cats cannot bark (thereby <a title="don't make requirements infeasible" href="http://tynerblain.com/blog/2009/11/30/attainable-requirements/">making at least one of the requirements infeasible</a>).</p>
<h2>Strategic Consistency</h2>
<p><img class="alignnone" title="stratego - the strategy game" src="http://sehlhorst.smugmug.com/Other/blog/stratego/829175535_CuorC-O.jpg" alt="stratego game board" width="250" height="187" /></p>
<p>One of the elements that defines <em><a title="writing valuable requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/">valuable</a></em><a title="writing valuable requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/"> requirements</a> is that they &#8220;support your business strategy.&#8221;  In the context of value, that means you have created <a title="decomposition of value with ishikawa diagrams" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">a decomposition model for how you intend to realize value</a> &#8211; manifesting a strategy or a component of a strategy.</p>
<p>A strategy, however is not always defined by a single measure.  Your strategy could include financial metrics and targets, as well as a stated mission regarding customer service levels, and a long-term investment that is hoped to eventually return long-term rewards.  Your requirements, while not only completely defining the mechanisms for achieving value, must also be consistent with the other elements of your strategy.</p>
<p>For example, you should not take advantage of uninformed costumers when you have a core value of integrity &#8211; regardless of how effective that may be at meeting financial goals.  The requirements that articulated the (subordinate) goal of grifting your customers (to maximize revenue) would be inconsistent with the goal of operating with integrity.</p>
<h2>Conclusion</h2>
<p>Consistent Requirements are requirements that</p>
<ul>
<li>Are not in conflict with any of your strategic objectives, vision, or corporate goals</li>
<li>Avoid logical inconsistencies</li>
<li>Utilize consistent structure, terms, and grammar</li>
</ul>

<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+Consistent+Requirements+http%3A%2F%2Fbit.ly%2FdCP73h+" 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/2010/04/06/consistent-requirements/&amp;t=Consistent+Requirements" 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/2010/04/06/consistent-requirements/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Business Goals and Requirements</title>
		<link>http://tynerblain.com/blog/2010/03/11/goals-and-requirements/</link>
		<comments>http://tynerblain.com/blog/2010/03/11/goals-and-requirements/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 17:11:00 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[business goals]]></category>
		<category><![CDATA[business requirements]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1181</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F03%2F11%2Fgoals-and-requirements%2F", "style": "big", "title": "Business Goals and Requirements" }); One of my colleagues got into a debate with one of his colleagues about the differences between goals and requirements.  His opponent fired the following salvo: &#8220;[That] is not a business requirement in any company of the world&#8230;&#8221; What you call your requirements is less [...]]]></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%252F2010%252F03%252F11%252Fgoals-and-requirements%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Business%20Goals%20and%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F03%2F11%2Fgoals-and-requirements%2F", "style": "big", "title": "Business Goals and Requirements" });</script></div>
<p><img class="alignnone" title="warehouse inventory level" src="http://sehlhorst.smugmug.com/Other/blog/warehouse/807733348_FDXS6-O.jpg" alt="Inventory in a warehouse" width="250" height="187" /></p>
<p>One of my colleagues got into a debate with one of his colleagues about the differences between goals and requirements.  His opponent fired the following salvo: &#8220;[That] is not a business requirement in any company of the world&#8230;&#8221;</p>
<p>What you <em>call </em>your requirements is less important than <em>how you communicate</em> them.</p>
<h2><span id="more-1181"></span>Labels</h2>
<p>I&#8217;ve worked with a lot of companies that use different <em>labels</em> to describe their descriptions of the problems that need to be solved. This is not another article about requirements versus specification (specification = design constraint, btw).</p>
<blockquote><p>If you&#8217;re not a long time reader who&#8217;s followed the debates and discussions on this topic in the past, check out these articles and comments, where we&#8217;ve had some great discussions on that topic &#8211; with particular thanks to <a title="Roger, on Twitter" href="http://twitter.com/rcauvin">Roger Cauvin</a> for keeping the debate front and center.</p>
<ul>
<li><a title="debating the difference between requirements and design" href="http://tynerblain.com/blog/2006/02/11/requirements-vs-design-which-is-which-and-why/">Requirements Versus Design: Which is Which and Why</a></li>
<li><a title="Article acknowledging different perspectives on 'requirements'" href="http://tynerblain.com/blog/2006/05/11/requirements-documents-one-mans-trash/">Requirements Docs &#8211; One Man&#8217;s Trash is&#8230;</a></li>
</ul>
<p>The central theme is that the debate about &#8220;what versus why&#8221; centers around differences in people&#8217;s perspective on the problem.</p>
<p><img class="alignnone" title="What versus Why versus How" src="http://sehlhorst.smugmug.com/photos/69105260-M.png" alt="Diagram of different perspectives on the same artifacts" width="482" height="420" /></p></blockquote>
<p>This challenge is not really about that (but it makes for good background).  The complaint my colleague received was really a critique of the way that the <em>why</em> of a set of requests was communicated and labeled.</p>
<h2>Actionable Goals</h2>
<p>Companies have strategic goals (increase shareholder value, gain market share, etc) that serve to guide the investments and activities of the organization.  However, for the teams that are creating products, those goals are too vague to be actionable.  I guess this is where <em>my</em> set of labels comes in.  I don&#8217;t think the labeling of a goal <em>as a goal</em> (versus labeling it <em>as a requirement</em>) is abstractly important, however, when people value making a distinction, here&#8217;s how I do it.</p>
<p>A <em>goal </em>is something your business (or user) is trying to achieve.  It is too abstract to have a single valid solution approach.  Once your business stakeholder(s) decide on a strategy by which they will achieve that goal, the business will define <em>requirements </em>for the actionable project(s) that execute this strategy.  This is an ideation step that lives inside the &#8220;why&#8221; box from a business analyst&#8217;s perspective.  Here&#8217;s an example:</p>
<h2>Warehouse Manager</h2>
<p><img class="alignnone" title="businesswoman" src="http://sehlhorst.smugmug.com/Other/blog/ok/807760870_z87Fe-O.jpg" alt="business woman giving thumbs-up sign" width="166" height="250" /></p>
<p>You&#8217;re in the IT department of a large company.  You&#8217;ve been assigned to support the warehouse manager (or COO, or vice president of order fulfillment or whatever).  Your warehouse manager is responsible for procuring the products that your company sells, keeping inventory on hand, and delivering those products to customers when they have been purchased.</p>
<p>Your warehouse manager is measured (or promoted) based on her performance relative to the following:</p>
<ul>
<li>The time that a customer has to wait between placing an order and receiving the product.</li>
<li>The cost impact of warehouse operations on the products.</li>
</ul>
<p>Your warehouse manager focuses on these two metrics because of your company&#8217;s goals &#8211; provide good customer service, be profitable, and grow revenue.  Those abstract goals influence product pricing &#8211; it must be low enough to grow revenue in the target markets, and be high enough to be profitable.  Since market pressures drive pricing decisions, typically a profitability target will then create cost-reduction pressures (profitability also influences pricing decisions, selection of markets, positioning within that market, etc).  A customer service strategy can also include a &#8220;you get your product quickly&#8221; component &#8211; as it does in this example.</p>
<p>Your warehouse manager now comes to you and says &#8220;I have an initiative to lower costs.&#8221;</p>
<p><strong>Is this a goal or is it a business requirement?</strong></p>
<p>Ultimately, it doesn&#8217;t matter what you call it, but for you to <em>actually do something</em> you need to know more.  That&#8217;s why <em>my</em> approach is to call it a goal.  Your warehouse manager&#8217;s problem is to lower costs.  You need to <a title="Problem decomposition with Ishikawa Diagrams" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">decompose that problem to understand</a> how you (and your team) can do something to help her achieve that goal.  The reason you have to do that is that you need <a title="Defining good problem statements" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">a problem statement at the right level of abstraction</a>.</p>
<p>In <a title="Top elicitation techniques" href="http://tynerblain.com/blog/2007/09/13/elicitation-techniques-2/">elicitation conversations</a> with your warehouse manager, you learn that all of the costs of operating the warehouse are allocated to the different business units, who operate as profit centers.  The warehouse operates as a cost center.  The warehouse manager treats each business unit as a customer, and provides a service of &#8220;fulfilling product orders&#8221; in exchange for funds that cover the costs of operation.  The allocation of costs is done per product that appears in the warehouse.  Since allocation is per product, it could be something like $1.30 per product in &#8220;warehouse costs.&#8221;  There are multiple sources of those costs (that are then allocated per product), and there are multiple ways to approach reducing the <em>cost per product</em>.</p>
<p>Your warehouse manager develops a strategy (probably a &#8220;mini-strategy&#8221; from the company&#8217;s perspective) to lowering costs.  She rules out &#8220;sell more products&#8221; as an approach, because she can&#8217;t control that.  She also can not affect her fixed costs (rent, depreciation, labor).</p>
<p>Eventually you discover that there is another cost hidden in the provisioning model &#8211; products are purchased, they sit in the warehouse for a while, then they are sold and delivered, and eventually money is collected from customers to pay for the products.  Your company has to pay in advance for the products, and doesn&#8217;t get their money back until funds are collected from the customers.  That money is &#8220;tied up in inventory&#8221; when it could have been invested otherwise &#8211; so there is a cost associated with high inventory levels, that directly correlates with the amount of inventory in stock.  When a new version / revision of a product is introduced, your inventory may become obsolete (it is definitely devalued).  And since markets are moving targets, your prospects of selling a product change over time &#8211; a risk that you will not be able to sell all of your inventory.</p>
<p>At the end of the day, the amount of inventory you have on hand has a cost.  The more you have, the more it costs.  A rule of thumb I heard 20 years ago was that inventory costs could be as high as 1/3 of the cost of the product for each year you keep it around.  If that is true, that is something like 0.5% added cost for every week the product is in inventory.  Here&#8217;s something the warehouse manager can potentially control.</p>
<p>Currently, your warehouse manager has 8 weeks of inventory on hand (on average) for products, which allows her to ship quickly.  She realizes she is adding 4% to the cost of the product.  She decides that if she can cut those costs in half, she will be a heroine.</p>
<p><img class="alignnone" title="business woman triumphs" src="http://sehlhorst.smugmug.com/Other/blog/hooray/807760868_acWdi-O.jpg" alt="image of businesswoman in victory" width="166" height="250" /></p>
<p>Her <em>business requirement</em> is to reduce inventory levels from 8 weeks (on average) to 4 weeks (on average).  She also has a constraint that no more than 1% of orders be delayed by more than a day (due to running out of inventory).</p>
<p>Now you have requirements that are <a title="writing unambiguous requirements" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">unambiguous </a>and <a title="verifiable and measurable requirements" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">measurable</a>.</p>
<h2>Conclusion</h2>
<p>Don&#8217;t trap yourself in worrying about the labeling of goals / requirements, but if you have to work with someone who does find that really important, before you call it a <em>requirement</em>, make sure it is at the right level of abstraction.  And of course, make sure you <a title="The rules of writing requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">follow the rules of writing requirements</a>.</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+Business+Goals+and+Requirements+http%3A%2F%2Fbit.ly%2FbLsZp2+" 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/2010/03/11/goals-and-requirements/&amp;t=Business+Goals+and+Requirements" 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/2010/03/11/goals-and-requirements/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

