<?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; Ishikawa Diagram</title>
	<atom:link href="http://tynerblain.com/blog/category/requirements/requirements-models/ishikawa-diagram/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>Why Do Products Fail?</title>
		<link>http://tynerblain.com/blog/2012/02/08/why-do-products-fail/</link>
		<comments>http://tynerblain.com/blog/2012/02/08/why-do-products-fail/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 16:38:54 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[failed products]]></category>
		<category><![CDATA[ishikawa]]></category>
		<category><![CDATA[product failure]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1662</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2012%2F02%2F08%2Fwhy-do-products-fail%2F", "shorturl": "http://bit.ly/yQtPP2", "style": "big", "title": "Why Do Products Fail?" }); Why do products fail?  Trying to organize all of the reasons that your product might fail is a Herculean effort.  Understanding how your product did, will, or might fail will help you focus on what you need to do next. An Exploration [...]]]></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%252F2012%252F02%252F08%252Fwhy-do-products-fail%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FyQtPP2%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Why%20Do%20Products%20Fail%3F%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2012%2F02%2F08%2Fwhy-do-products-fail%2F", "shorturl": "http://bit.ly/yQtPP2", "style": "big", "title": "Why Do Products Fail?" });</script></div>
<p><img class="alignnone" title="checkmate" src="http://sehlhorst.smugmug.com/Other/blog/i-zs527m5/0/O/checkmate.jpg" alt="photo of a chessboard, showing a king on its side after checkmate" width="250" height="187" /></p>
<p>Why do products fail?  Trying to organize all of the reasons that your product might fail is a Herculean effort.  Understanding how your product did, will, or might fail will help you focus on what you need to do next.</p>
<h2><span id="more-1662"></span>An Exploration of Product Management</h2>
<p>A personal goal for me is to become better at product management, so that I can help create better products.</p>
<p>As a product manager, the <em>most important </em>thing you should be doing is <a title="The value of insight" href="http://tynerblain.com/blog/2011/04/01/the-value-of-insights/">understanding the problems that your customers face</a>.  If you treat &#8220;improving at product management&#8221; as the product, you should start with an exploration of the problem space.  I&#8217;m framing that problem space as <em>products that fail</em>.  I think it is also fair to also think about products that under-perform.  They &#8220;succeed&#8221; given the goals by which they are being measured, but they never realize their full potential.  I&#8217;ll keep the &#8220;not as good as it could be&#8221; notion in the back of my head, and talk to &#8220;failed&#8221; as the larger issue.</p>
<p>There are conversations, blogs, books, processes, and frameworks for &#8220;how to be a (good) product manager.&#8221;  I suspect looking at this from the outside-in (problem first, solution second) may yield some interesting insights.  Thanks to Leisa Reichelt for her article on <a title="Why most User Experience work is bad" href="http://www.disambiguity.com/why-most-ux-is-shite/">why most UX is bad</a>, which inspired me to have the conversation here, approaching the problem as a root cause analysis.</p>
<p>As an <em>agile product manager</em>, I&#8217;m going to approach this iteratively.  I hope that you will provide insights and corrections, helping to adapt this as we go.  Your contributions will make this better, faster.</p>
<h2>Root Cause Analysis of Failed Products</h2>
<p>Ishikawa diagrams were originally created to allow engineers to figure out why something broke &#8211; a visual tool for organizing root cause analyses.  I&#8217;ve been using <a title="Articles that use Ishikawa Diagrams" href="http://tynerblain.com/blog/category/requirements/requirements-models/ishikawa-diagram/">this powerful decomposition tool</a> for several years to solve problems and organize my thoughts.  It may provide the perfect framework for gaining understanding about why products fail.</p>
<p>Let&#8217;s dive right in.  Here&#8217;s my first crack at the very top level of an Ishikawa for product failure.</p>
<p><img class="alignnone" title="Product Failure Reasons - high level" src="http://sehlhorst.smugmug.com/Other/blog/i-Hccs5qx/0/O/20120208Why-Do-Products-Fail.png" alt="" width="450" height="264" /> [<a title="Product Failure - high level Ishikawa" href="http://sehlhorst.smugmug.com/Other/blog/i-qFDzgS3/0/O/20120208Why-Do-Products-Fail.png">larger version</a>]</p>
<p>Looks pretty sparse (for now).  I will fill it in, as I drill down into each area.</p>
<p>If you&#8217;re like me, you&#8217;ve got some &#8220;reasons for failure&#8221; in your head right now &#8211; maybe from past experience, maybe from watching products in the market today.  <strong>Do any of those reasons <em>not</em> map into the categories above?</strong> Tell us about it in the comments (or tell me privately, if you must) &#8211; that&#8217;s the first vector for informing an improved version of this diagram.</p>
<p>Here are some prose descriptions of what I&#8217;m thinking about (for now) for each of those branches on the diagram &#8211; I expect them to fill out with smaller branches attached to each of the main branches.</p>
<p><span style="font-weight: bold;">Product Fails in the Market</span></p>
<ul>
<li><strong>Business Case is Flawed</strong> &#8211; This is where we would capture things like a product strategy that is not profitable, for example, your model was <em>dependent</em> on exponential growth &#8211; so even though you had consistently growing market share, it wasn&#8217;t enough for the product to be considered &#8220;a success&#8221; by you.</li>
<li><strong>Picked the Wrong Market</strong> &#8211; Maybe this market is about to go away, like buggy whips or audio cassettes.  Maybe the competitors in this market are just too good.  Maybe entering this market is too divergent from your corporate strategy and dilutes focus and investment in your company&#8217;s other products.  Another example would be if your team does not have the skills and resources needed to win in a particular market.</li>
<li><strong>Takes Too Long to Enter Market</strong> &#8211; Whatever it is you&#8217;re doing to enter the market, it took you too long.  Competitors have &#8220;out-gunned&#8221; you, your customer&#8217;s needs have changed, etc.  This is to capture causes where even if everything else was good, you simply didn&#8217;t move quickly enough.  At first blush, I expect organizational problems (lack of alignment, bureaucracy, insufficient resources) will all land here.</li>
<li><strong>Doesn&#8217;t Solve the Right Problems</strong> &#8211; This is where most product managers focus most of their time &#8211; making sure we&#8217;re actually solving the right problems (the ones customers are willing to pay to solve).  Problems of design &#8211; where we <em>intended to solve the right problem</em>, but the proposed solution doesn&#8217;t cut it &#8211; would <em>not</em> be in this branch &#8211; they would be in the &#8220;not good enough&#8221; branch.</li>
<li><strong>Positioning &amp; Sales Approach is Wrong</strong> &#8211; For the first iteration, this is my catch-all for marketing and sales.  All of the problems that are &#8220;your potential customers don&#8217;t think of your product as a solution to their problems (even though it is).&#8221;  Also the problems of &#8220;your potential customers decided not to purchase (when they should have)&#8221; and &#8220;your potential customers have never heard of your product.&#8221;  This is definitely an area where you can contribute more than I can to the framework.  How would you (product marketing managers, I&#8217;m looking at you) frame this?</li>
<li><strong>Product is Not Good Enough</strong> &#8211; Execution is key here.  Not solving problems completely (although that might move to the &#8220;right problems&#8221; branch) is an example.  Bad design is an example &#8211; both bad user-experience and bad architecture.  Poor execution also lands here &#8211; broken windows, sloppy implementations, poor quality.  For this branch to work, &#8220;product&#8221; is not just <em>the</em> product that your development team builds, but also your customer relationships, distribution, services, etc.</li>
</ul>
<h2>Open Questions in This Model</h2>
<p>There are definitely some design decisions I made in the approach above that are worth questioning.  Here are some that come to mind for me &#8211; add your own in the comments.</p>
<ul>
<li><strong>Designs that fail to solve the target problems</strong> &#8211; I put this in the the &#8220;not good enough&#8221; bucket, because I felt like there was value in grouping the &#8220;how&#8221; separate from the &#8220;why.&#8221;  Many times, an inadequate design is a design that works great for inadequate requirements &#8211; which means the problem is in the &#8220;why&#8221; column.  How would you organize &#8220;bad requirements execution&#8221; and &#8220;bad design execution&#8221; in this model?</li>
<li><strong>Pricing and Cost &#8211; together, they reflect profitability</strong>.  &#8221;Not profitable&#8221; implies a business case problem.  Incorrect pricing implies a positioning problem or is a red herring that is masking a sales problem.  High cost is reflective of bad design decisions and/or execution problems (both of which are in the &#8220;not good enough&#8221;) bucket.  Perhaps if you can&#8217;t create the product at the cost you need to, for your business model to work, when selling at a given price in order to compete, you have picked the wrong market.  Where would you put pricing and cost issues?</li>
<li><strong>Team Capabilities and Support.</strong> Not having (enough of) the right skills on a team limits what solutions you can create.  Not having enough support to gain needed skills constrains the solution space as well.  When your team does not have what it takes, or have what they need, to create solutions that will succeed in a given market, where would you put this?  For now, it is in the &#8220;picked the wrong market&#8221; bucket, because trying to compete in that market is infeasible.  There&#8217;s probably a better way to frame this &#8211; how would you do it?</li>
</ul>
<h2>A Litmus Test</h2>
<p>One experiment to validate this model is to look at the main causes of project failure and see if they map well into this space.  In the Chaos Report findings from the Standish Group, the following are the top ten responses from the companies they surveyed, along with my thoughts about how they map into this framework.</p>
<ol>
<li>Lack of User Input &#8211; In my experience, this manifests both as <em>not solving the right problems</em> and as delivering a product that is <em>not good enough</em>.  The mechanisms are different flavors of &#8220;not listening.&#8221;</li>
<li>Incomplete Requirements &amp; Specifications &#8211; Ends up causing delays, and possibly not solving the right problems, or having designs that are not good enough (because the requirements that drove the designs were not good enough).</li>
<li>Changing Requirements &amp; Specifications &#8211; I put this squarely in the &#8220;your mindset is broken&#8221; bucket.  <a title="Markets Evolve - Can You Keep Up?" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">Requirements change</a>, even if your requirements document does not.  Depending on how this plays out (for your team, for your process), you either slog on and deliver solutions to the wrong problems, or you take too long to deliver.</li>
<li>Lack of Executive Support &#8211; This can be a <em>takes too long</em> problem.  Or it could be that lack of support causes a product to be abandoned (even if it were succeeding), or constrains options for your team to the point that you aren&#8217;t able to succeed within the parameters.  This one definitely doesn&#8217;t fit the model.  Should we update the model, or treat this one as &#8220;out of scope?&#8221;</li>
<li>Technology Incompetence &#8211; insufficient skill results in <em>not good enough</em> and usually delivery <em>takes too long</em>.  If really bad, it results in &#8220;impossible (for <em>this</em> team) to deliver.&#8221;  For the really bad cases, does it land in <em>picked the wrong market</em>, because that market is infeasible?</li>
<li>Lack of Resources &#8211; Just a subset of lack of executive support.</li>
<li>Unrealistic Expectations &#8211; in the worst cases, it is a problem with the business model.</li>
<li>Unclear Objectives &#8211; lands in <em>not solving the right problem.</em></li>
<li>Unrealistic Time Frames &#8211; same as unrealistic expectations.</li>
<li>New Technology &#8211; yes, change is hard.</li>
</ol>
<p>Not surprisingly, the list from the Chaos report uses a project-centric language.  Other than the (very valid) &#8220;failure profile&#8221; that lack of executive support causes projects to fail, the model seems to hold up reasonably well.</p>
<p>Your turn &#8211; what would you add or change?</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+Why+Do+Products+Fail%3F+http%3A%2F%2Fbit.ly%2FyQtPP2+" 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/2012/02/08/why-do-products-fail/&amp;t=Why+Do+Products+Fail%3F" 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/2012/02/08/why-do-products-fail/feed/</wfw:commentRss>
		<slash:comments>80</slash:comments>
		</item>
		<item>
		<title>Know Your Competition &#8211; Comparing Products Part 6</title>
		<link>http://tynerblain.com/blog/2011/12/21/comparing-products-6/</link>
		<comments>http://tynerblain.com/blog/2011/12/21/comparing-products-6/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 16:08:53 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[comparing products]]></category>
		<category><![CDATA[design context]]></category>
		<category><![CDATA[incremental development]]></category>
		<category><![CDATA[market problems]]></category>
		<category><![CDATA[persona]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1584</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F12%2F21%2Fcomparing-products-6%2F", "shorturl": "http://bit.ly/s1ZilY", "style": "big", "title": "Know Your Competition - Comparing Products Part 6" }); You start with a point of view about what makes a minimum viable product.  When your product launches, it is your customer&#8217;s point of view that matters.  You must understand which problems your customers care about solving, and [...]]]></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%252F12%252F21%252Fcomparing-products-6%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fs1ZilY%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Know%20Your%20Competition%20-%20Comparing%20Products%20Part%206%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2011%2F12%2F21%2Fcomparing-products-6%2F", "shorturl": "http://bit.ly/s1ZilY", "style": "big", "title": "Know Your Competition - Comparing Products Part 6" });</script></div>
<p><img class="alignnone" title="Multiple Pills that Compete with Each Other" src="http://sehlhorst.smugmug.com/Other/blog/i-mGNDKrW/0/O/pills.jpg" alt="" width="250" height="155" /></p>
<p>You start with a point of view about what makes a minimum viable product.  When your product launches, it is <em>your customer&#8217;s point of view</em> that matters.  You must understand which problems your customers care about solving, and what solutions are available to your customers today.  You need to understand your competition to make informed decisions about your product.  This is the latest in a <a title="Comparing Products - Introduction" href="http://tynerblain.com/blog/2011/11/15/comparing-products-1/">series on comparing products</a> &#8211; jump back to the beginning of the series to catch up, we&#8217;ll wait.<br />
<span id="more-1584"></span></p>
<h2>Overall Product Comparison Process</h2>
<p>This is a relatively long series.  Each article will start with a recap of the overall process.</p>
<p>Getting useful 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><a title="Comparing Products - Identify Your Customers" href="http://tynerblain.com/blog/2011/11/22/comparing-products-2/">Identify your customers.</a></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="Identifying important problems as a basis for comparing products" 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><strong><a title="Comparing Products - Important Customers" 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></strong></li>
<li><strong>Discover which (competitive) products your customers consider to be your competition. </strong>(This Article)</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>
<h2>No Competition</h2>
<p><img class="alignnone" title="El Camino - half car, half truck" src="http://sehlhorst.smugmug.com/Other/blog/i-Kh3nxK5/0/O/el-camino.jpg" alt="" width="250" height="155" /></p>
<p><strong>If you think your product has no competition, you&#8217;re wrong.</strong></p>
<p>The photo above shows an <em>El Camino</em>, a combination of a car and a truck.  The front of the vehicle, the cabin interior, and the overall height / profile of the vehicle is that of a car; but the vehicle has a tailgate and a truck bed for hauling stuff.  A pretty novel idea at the time.  There were no other car-truck combination vehicles, but that doesn&#8217;t mean the El Camino had no competition.</p>
<p><img class="alignnone" title="Mini with a trailer" src="http://sehlhorst.smugmug.com/Other/blog/i-q8S6ZXd/0/O/mini-with-trailer.jpg" alt="" width="246" height="185" /></p>
<p>You should not define competitive products as the products that exactly match the features of your product.  You should not define competitive products as those that solve (exactly) the same set of problems that your product solves.  Every interesting problem already has a solution &#8211; and therefore, you have competition.  It may be that there are not any <em>particularly good solutions</em> in the market.  It may be that the competitive products are not well known, and would not be likely to compete effectively.</p>
<p><img class="alignnone" title="overloaded car" src="http://sehlhorst.smugmug.com/Other/blog/i-FhrFGML/0/O/overloaded-car.jpg" alt="" width="250" height="185" /></p>
<p>It may be that the solution your customers choose is &#8220;deal with it.&#8221;  The &#8220;deal with it&#8221; solution, at first glance, from a B2C (business &#8211; to &#8211; consumer) perspective feels like &#8220;there is no competition,&#8221; but I believe that embracing that point of view puts you at risk of being myopic about your market.  In the B2B (business &#8211; to &#8211; business) area, &#8220;deal with it&#8221; is one version of the &#8220;in house solution&#8221; competitor &#8211; a very real scenario.  Stacking ridiculous amounts of stuff on top of your car is analogous to managing your accounts receivable in a spreadsheet.  You can do it, but it is a solution that is fraught with other risks.</p>
<p>Your customer generally has four options from which to choose when deciding if they should buy your product.</p>
<ol>
<li>Buy your product.  Hooray.</li>
<li>Buy someone else&#8217;s product.</li>
<li>Build their own solution.  Your customer believes that <em>rolling their own</em> is a better alternative to purchasing a solution from someone else.</li>
<li>Deal with the problem.  The cost of the solution is believed to be higher than the cost of the problem.</li>
</ol>
<p>How do you identify which products are compelling competitors?</p>
<h2>Problem Abstraction</h2>
<p>One thing you learn as a product manager, when eliciting requirements, is to <a title="The Reason Why" href="http://tynerblain.com/blog/2006/02/21/the-reason-why/">keep asking &#8220;why?&#8221;</a> (and <a title="Another Use for Why" href="http://tynerblain.com/blog/2006/10/24/another-use-for-why/">more </a>and <a title="The importance of Asking Why" href="http://tynerblain.com/blog/2005/12/13/everything-i-needed-to-know-i-forgot-in-kindergarden/">more </a>on asking &#8220;why?&#8221; &#8211; check out the comments on these articles).  The goal in elicitation is to find the actual underlying problem, and not just <a title="Your Problem Statement is the Problem" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">the obvious manifestation of the problem</a>.  One technique you can use is to <a title="Defining Problems with Ishikawa Diagrams" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">create an Ishikawa Diagram that helps you define the problem(s) your product is attempting to solve</a>.</p>
<p>Your goal is to find the right level of abstraction at which to determine who your competition is.  If we consider <strong>Tim, the hi-tech prosumer who consumes niche content</strong>, we would see that the decomposition of his high level goals looks like the following:</p>
<p><img class="alignnone" title="Tim's Goal Decomposition" src="http://sehlhorst.smugmug.com/Other/blog/i-ZhJkWkF/0/O/20111221Comparing-Products.png" alt="" width="450" height="256" /> [<a title="Persona Goal Decomposition - Tim" href="http://sehlhorst.smugmug.com/Other/blog/i-nd8KQGZ/0/O/20111221Comparing-Products.png">larger image</a>]</p>
<p>There are several benefits to using this approach of describing the decomposition of Tim&#8217;s goals:</p>
<ol>
<li>You get traceability of your requirements, allowing you to see <a title="Writing Valuable Requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/"><em>why</em> each goal matters</a>, from Tim&#8217;s perspective.</li>
<li>The graphical layout forces you to <a title="Writing Concise Requirements" href="http://tynerblain.com/blog/2009/08/03/concise-requirements/">be <em>concise</em> in how you describe Tim&#8217;s goals</a>.</li>
<li>You have a framework for validating that you have defined the <a title="Writing Complete Requirements" href="http://tynerblain.com/blog/2010/02/23/complete-requirements/"><em>complete</em> set of requirements</a> needed to satisfy Tim.</li>
<li>Looking at &#8220;everything&#8221; in one view helps you assure that your <a title="Writing Consistent Requirements" href="http://tynerblain.com/blog/2010/04/06/consistent-requirements/">requirements are <em>consistent</em></a>.</li>
<li>You know &#8220;when to stop&#8221; in decomposition when your <a title="Writing Atomic Requirements" href="http://tynerblain.com/blog/2010/09/14/atomic-requirements/">requirements are <em>atomic</em></a>.</li>
<li>You have a framework for assuring that you focus on <a title="Writing Passionate Requirements" href="http://tynerblain.com/blog/2010/09/27/passionate-requirements/">those goals that Tim is <em>passionate</em> about</a>.</li>
<li><strong>You have tractable goals that you can use to think <em>outside of the box</em> when identifying competitors.</strong></li>
<li>You have a clear and visceral tool for communicating with your team, to inspire innovative designs and clever solutions.</li>
</ol>
<h2>Finding Competitors</h2>
<p>Some of the competitive solutions will be very straightforward, and obvious based on your understanding of your product domain.  Others you will discover through research.</p>
<p>When we look at the <em><a title="Kindle Fire at Amazon" href="http://www.amazon.com/exec/obidos/ASIN/B0051VVOB2/tynerblain-20/">Kindle Fire</a></em> as a product, we know from Amazon&#8217;s positioning that Tim will be able to read books &amp; magazines (in color), consume multimedia content, browse the internet, stream movies, and borrow books.  He&#8217;ll have access to &#8220;millions of books,&#8221; be able to &#8220;read anywhere,&#8221; and connect with people over email from the device.  The <a title="Nook Tablet at B&amp;N" href="http://www.barnesandnoble.com/p/nook-tablet-barnes-noble/1104687969">Barnes &amp; Noble <em>Nook Tablet</em></a> is positioned directly as a competitor to the Kindle Fire (and <a title="Nook Tablet" href="http://www.amazon.com/exec/obidos/ASIN/1400501466/tynerblain-20/">can even be purchased through Amazon</a>).</p>
<p>It is occasionally annoying to read reviews of the <em>Kindle Fire </em>that basically say &#8220;not an <em>iPad </em>killer,&#8221; where the reviewer compares the features of the Kindle Fire, a <em>single purpose device with multiple capabilities</em>, with the iPad, <em>a multi-purpose device that can be used for (many) single purposes</em>.  The iPad is a viable competitor for the Kindle Fire, but a comparison in the other direction does not make sense.  The products are <em><a title="Introduction to Substitute and Complementary Goods" href="http://tynerblain.com/blog/2009/12/07/substitutes-and-complements/">asymmetric substitutes</a></em> &#8211; they are only substitutes for each other in a particular context.  If you are Tim, trying to enjoy niche content, then the iPad is a viable competitive product.  If you are a 15 year old boy who wants to play a first person shooter when you&#8217;re being shuttled to soccer practice, the Kindle Fire is a non-starter.</p>
<p><img class="alignnone" title="Needle in a Haystack" src="http://sehlhorst.smugmug.com/Other/blog/i-Xk5fnrc/0/O/haystack.jpg" alt="" width="250" height="166" /></p>
<p>Finding a needle in a haystack is easier than identifying competitive products.  You know there is only one needle &#8211; once you find it, you stop looking.</p>
<p><strong>Identifying competitive products is more akin to finding out how many needles are in the haystack</strong></p>
<p>You can do research on the internet &#8211; start with the positioning from already identified competitors, look for editorials, rumor articles, reviews, research papers, customer reviews, discussion forums.  Search social media streams &#8211; find conversations (and broadcasts) about the product and the domain.  This gives you either minimal or overwhelming information, depending on how many competitors are already positioning themselves as products in this market segment.</p>
<p>Interview people who share goals with your personas &#8211; they don&#8217;t<em> have to </em>match your personas (but they can) &#8211; you are trying to discover solutions that you don&#8217;t yet know about.  Find out how they address those goals.  Maybe they use a web browser on their desktop computer, cobbling together a cabal of single-purpose solutions.  If they already own a competitive product, find out what they did <em>before</em> they bought that product.  As an example, someone like our <em>Tim</em> persona, before buying a purpose-built product, did the following:</p>
<ul>
<li>Used The Sword and Laser podcast to discover new content and get recommendations.</li>
<li>Used Facebook to get and share suggestions with his friends, and have conversations about his favorite works.</li>
<li>Used wikipedia and artist individual websites to find other works by his favorite artists.</li>
<li>Subscribed by email to artists that published serials, blogs, other recurring content.</li>
<li>Purchased tangible copies of works from Amazon.com.</li>
<li>Borrowed tangible copies of works from IRL (in-real-life) friends.</li>
<li>Purchased ebooks in pdf, epub or other formats that could be read on his computer and phone.</li>
<li>Used Dropbox (or drag-and-drop by USB) to synchronize content across devices.</li>
</ul>
<p><strong>The problems that people are solving did not come into existence when the solutions were invented.</strong> The problems predate the solutions. [Note:if you have a Forrester subscription, check out Mary Gerush's <em><a title="Understand the lifecycle of requirements" href="http://www.forrester.com/rb/Research/exploit_real_requirements_life_cycle/q/id/57954/t/2">Exploit the Requirements Lifecycle</a></em> for a more detailed discussion].</p>
<p>The <em>roll your own </em>solution is a viable &#8220;competitor&#8221; for a B2C product.  In the B2B world, this is usually called <em>best of breed</em>. [Note: it is usually called this by one of the vendors of one of the pieces of the cobbled-together solution].  Using these amalgam-of-products solution strategies can make sense &#8211; and for some customers it will be the best solution.</p>
<p><img class="alignnone" title="Christina Persona" src="http://sehlhorst.smugmug.com/Other/blog/i-9FWtRFK/0/O/d250px.jpg" alt="" width="250" height="213" /> <img class="alignnone" title="Tim" src="http://sehlhorst.smugmug.com/Other/blog/i-D6h24dt/0/O/e250px.jpg" alt="" width="250" height="234" /></p>
<p>We know that Christina and Time (two of our personas, <a title="Personas in Context Example" href="http://tynerblain.com/blog/2011/11/29/comparing-products-part-3-market-problems/">defined earlier in the series</a>) are different personas &#8211; they value different goals differently.  They will also use different approaches to create their own <em>mix and match</em> solutions to their problems.  Previously, I said that you didn&#8217;t <em>have to</em> interview people who represented your personas in order to identify competitors.  You do, however, need to figure out which product bundles represent the <em>roll your own</em> solution for each persona.  That is best done by interviewing representative customer prospects.</p>
<h2>Our Example Competitors List</h2>
<p>In this series, we are showing the mechanics of performing a product comparison, not sharing an actual analysis of the Kindle Fire.  As such, this is (again) where I get to manufacture illustrative data.  Here&#8217;s the list of competitive products that could have resulted from the research and analysis described above:</p>
<ol>
<li>The Kindle Fire</li>
<li>The Nook Tablet</li>
<li>The Kindle Touch</li>
<li>The iPad 2</li>
<li>A laptop running windows, with a pdf reader, the free kindle app, and an HTML 5-compliant web browser.</li>
</ol>
<p>The list above is not exhaustive.  Like most analysis activities, you can go on forever, but with diminishing returns.  Where you draw the line is a matter of risk mitigation.  Add as many competitors as you feel you need to accurately assess how well your product (or a future version of your product) will compete in the market.  There is a risk associated with both too much analysis and too little analysis.</p>
<p><strong>Too much analysis slows you down</strong> and is expensive.  You will get a comprehensive view, and minimize the risk of missing something, but you run the risk of taking too long.  You also run the risk of never stopping &#8211; you can never find <em>all</em> of the needles in the haystack &#8211; <strong>and therefore you run the risk of never shipping or shipping too late.</strong></p>
<p><strong>Too little analysis saves money and time, but you run the risk of delivering the wrong product</strong>.  If you happen to identify all of the competitors that have (or will have) success in the market, you&#8217;ll be sufficiently informed (because your view will be a super-set of your customers&#8217; views).  If you overlook a product that is driving the market, you run the risk of watching the world go by through rose colored glasses &#8211; you&#8217;ll watch people buy that other product, and not understand why they aren&#8217;t buying yours.</p>
<p>Here&#8217;s where <em>agile</em> provides a perspective that lets you escape the catch-22.  If you do &#8220;too much&#8221; you can never recover.  The money you spent is a <a title="Definition of Sunk Cost" href="http://tynerblain.com/blog/2006/03/24/definition-of-sunk-cost/">sunk cost</a>.  The time you lost is gone.</p>
<p>If you do too little, you can always do more later, when you realize you need to, as long as your team is capable of embracing change.</p>
<h2>Summary</h2>
<p>To create a competitive product, you need to know how your product stacks up against the competition &#8211; and that means you need to know who the competition is.  A product marketing manager may take this information to emphasize strengths and &#8220;turn weaknesses into strengths.&#8221;  A product manager can use the insights from this analysis to paint an informed picture of what the product needs to be (and why).</p>
<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><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 your customers care about solving.</a></li>
<li><a title="Assessing problem-importance when comparing products" 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><strong><a title="Comparing Products part 5 - Important Customers" 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></strong></li>
<li><strong>Discover which (competitive) products your customers consider to be your competition.</strong> (This article)</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 <a title="Matthiew's Profile" href="http://www.flickr.com/people/myglesias/">Matthiew Yglesias</a> for the <a title="Matthiew Yglesias" href="http://www.flickr.com/photos/myglesias/476095305/sizes/l/in/photostream/">El Camino</a> 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+Know+Your+Competition+%E2%80%93+Comparing+Products+Part+6+http%3A%2F%2Fbit.ly%2Fs1ZilY+" 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/12/21/comparing-products-6/&amp;t=Know+Your+Competition+%E2%80%93+Comparing+Products+Part+6" 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/12/21/comparing-products-6/feed/</wfw:commentRss>
		<slash:comments>28</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>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>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>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>Attainable Requirements</title>
		<link>http://tynerblain.com/blog/2009/11/30/attainable-requirements/</link>
		<comments>http://tynerblain.com/blog/2009/11/30/attainable-requirements/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 20:03:18 +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[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[attainable requirements]]></category>
		<category><![CDATA[rules of requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1138</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F11%2F30%2Fattainable-requirements%2F", "style": "big", "title": "Attainable Requirements" }); Unless you live in a world filled with unicorns and rainbows, writing realistic requirements is critical.  When you set unattainable goals, the best result you can hope for is a frustrated engineering team.  Write requirements that are attainable, and your team will surprise you with what [...]]]></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%252F2009%252F11%252F30%252Fattainable-requirements%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Attainable%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F11%2F30%2Fattainable-requirements%2F", "style": "big", "title": "Attainable Requirements" });</script></div>
<p><img class="alignnone" title="attainable requirements logo" src="http://sehlhorst.smugmug.com/photos/128628575-M.png" alt="" width="250" height="250" /></p>
<p>Unless you live in a world filled with unicorns and rainbows, writing realistic requirements is critical.  When you set unattainable goals, the best result you can hope for is a frustrated engineering team.  Write requirements that are attainable, and your team will surprise you with what they can achieve.</p>
<h2><span id="more-1138"></span>Attainable Requirements &#8211; Revisiting</h2>
<p>A little over three years ago (ten unicorn years), I wrote <em><a title="writing attainable requirements" href="http://tynerblain.com/blog/2006/06/07/writing-attainable-requirements/">Writing Attainable Requirements</a></em>, as part of the <em><a title="The rules of writing requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">Big Rules of Writing Requirements</a></em> series.  In that article, we focused on the unique situations that every team faces &#8211; politics and people, and the shared challenge of implicit practicality.  Those factors are as important today as they were then.</p>
<p><img class="alignnone" title="no unicorns" src="http://sehlhorst.smugmug.com/Other/blog/Wappenatlechaschau/727825581_cEP5G-O.png" alt="" width="166" height="192" /></p>
<h2>Defining <em>Attainable</em></h2>
<p>Attainability, for requirements, is simply the answer to the question &#8211; <em>can this be reasonably done</em>?  Most, but not all, of the answer to that question comes from understanding if your team can build and test a solution to the problem you identify with your requirement.  Being able to create a solution requires that the problem you&#8217;re solving is tractable, and that the team creating the solution has the skills to solve it.</p>
<p>Being able articulate a problem and it&#8217;s solution is necessary, but insufficient &#8211; solving the problem requires that there be a feasible solution.</p>
<p>As the founders of the agile development movement explained in their pitch for &#8220;low overhead&#8221; process &#8211; <em>people trump process</em>.  I think it was Alistair Cockburn who added, &#8220;but politics trumps people.&#8221;</p>
<p>Finally, process is the often-overlooked element of determining attainability.  Realizing the benefits of a novel solution to an existing problem usually involves process changes &#8211; sometimes significant ones.</p>
<p>The next few sections go into more detail on each of these &#8211; <strong>tractability, feasibility, people, and process</strong>.</p>
<h2>Tractability</h2>
<p><img class="alignnone" title="large black bear" src="http://sehlhorst.smugmug.com/Other/blog/Blackbearlarge-small/727836946_MFCx8-O.jpg" alt="" width="157" height="250" /></p>
<p>Goldilocks ruled out the <em>large</em> bed because it was <em>too</em> large.  <em>Eating the elephant, drinking from the fire-hose, boiling the ocean</em> &#8211; these are all common phrases in the American vernacular, because so many people try to do <em>too much </em>(at one time).  There are many ways to decompose a large, intractable problem into smaller, addressable components.  <span style="background-color: #ffffff; ">Practicality requires that the problem you&#8217;re trying to solve is not <em>too</em> large.</span></p>
<p>If everything you do is <em>small</em>, however, you won&#8217;t ever accomplish anything <em>big</em>.  That&#8217;s where<a title="strategic thinking" href="http://www.strategicproductmanager.com/2009/11/26/strategic-thinker/"> strategic product management</a> shines.  As part of understanding your market, you identify large, valuable problems to be solved.  To solve those large problems, you have to break them up into smaller problems, and then address them individually.  You also have to make sure your team understands the big picture and the larger problem that ultimately needs to be solved.  A great way to share context while decomposing problems is with the use of <a title="Ishikawa diagrams for problem decomposition" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">Ishikawa diagrams</a>.</p>
<p><img class="alignnone" title="simple ishikawa diagram" src="http://sehlhorst.smugmug.com/photos/302635390_W2GiV-O.jpg" alt="" width="450" height="269" /></p>
<p>And zooming in&#8230;</p>
<p><img class="alignnone" title="branch of an ishikawa diagram" src="http://sehlhorst.smugmug.com/photos/302640001_zmjrk-L.jpg" alt="" width="350" height="175" /></p>
<p>Maintaining <a title="providing context to agile teams" href="http://tynerblain.com/blog/2008/10/01/agile-product-management-providing-context/">context is a particularly critical component of working with agile teams</a>, where each deliverable&#8217;s possible size is constrained further to what a team can accomplish in an iteration.</p>
<blockquote><p><a href="http://photos.smugmug.com/photos/384746454_ASdyM-L.gif"><img title="market ishikawa" src="http://photos.smugmug.com/photos/384746439_MCSvi-L.gif" alt="" /></a>[<a title="market driven ishikawa" href="http://photos.smugmug.com/photos/384746454_ASdyM-L.gif">click for larger version</a>]</p>
<p>For some problems (and some teams!) this may be enough information to provide the context to develop a product backlog.  And your agile team will move forward into managing their own execution from the product backlog stage.  For larger or more complex problems (such as this example), you will need more detailed communication before diving into user stories / use cases.</p>
<p>The same Ishikawa diagram, with more detail, looks like the following:</p>
<p><a href="http://photos.smugmug.com/photos/384746511_Un8EL-L.gif"><img title="detailed market driven ishikawa" src="http://photos.smugmug.com/photos/384746482_NFmAJ-L.gif" alt="" /></a>[<a title="detailed market driven ishikawa" href="http://photos.smugmug.com/photos/384746511_Un8EL-L.gif">click for larger version</a>]</p>
<p><cite><a title="agile product management - providing context to teams" href="http://tynerblain.com/blog/2008/10/01/agile-product-management-providing-context/">Agile Product Management: Providing Context</a></cite></p></blockquote>
<p>This reduced granularity represents the smallest go-to-market <em>atomic</em> requirement.  Further decomposition results in smaller requirements, but they become too small, because they are no longer independently valuable.  I&#8217;m not talking about &#8220;the sum of the whole is greater than the sum of the parts&#8221; stuff here &#8211; I&#8217;m talking about &#8220;if you <em>only</em> get X, without Y and Z, it has no value&#8221; stuff.</p>
<h2>Feasibility</h2>
<p>Even after decomposing market problems into addressable chunks, you still have to make sure that there are feasible solutions.  One of the brighter software developers I worked with <em>back in the day</em> used to say &#8220;We&#8217;re writing software &#8211; it&#8217;s all ones and zeros &#8211; we <em>can do </em>anything.&#8221;  He also followed that up with &#8220;&#8230;but <em>should</em> we be doing <em>that</em>?&#8221;  The team I was working with at the time probably could do just about anything.  But not everything can be done with a given budget and a specific deadline.  Some things are simply infeasible.</p>
<p>Scrum teams measure <em>velocity</em> &#8211; a reflection of how much software they deliver in a given iteration, as a function of how much work they believe is involved in delivering.  This is a great &#8220;protected&#8221; measure of efficiency.  The team is protected from requests to do work that has little or no value &#8211; by measuring throughput in terms of effort, a team can get more efficient at doing more.  A requirement is infeasible, and therefore unattainable, when it exceeds what the team can accomplish given a fixed amount of capacity.  Project managers refer to this as the <em>Iron Triangle</em> &#8211; given scope, cost, and quality, pick any two as inputs and the third will be a variable output (absorbing the impact of uncertainty that arises during the development process).  I prefer to use <a title="scheduling software delivery with timeboxes" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">timeboxes </a>rather than that rusty old triangle, to emphasize my perspective that quality is inherent in delivery, and should not be a &#8220;variable output of uncertainty.&#8221;  Because quality is what usually bears the brunt of uncertainty.</p>
<p><img class="alignnone" title="fixed capacity" src="http://sehlhorst.smugmug.com/photos/64224627-M.png" alt="" width="223" height="128" /> plus <img class="alignnone" title="quality is inherent in delivery" src="http://sehlhorst.smugmug.com/photos/64224642-M.png" alt="" width="79" height="153" /> yields <img class="alignnone" title="filling a timebox with quality and capability" src="http://sehlhorst.smugmug.com/photos/64224630-M.png" alt="" width="223" height="154" /></p>
<p><span style="background-color: #ffffff; ">When the solution to a defined problem is prohibitively expensive, it is not attainable.  The notion of <a title="include both cost and value when prioritizing" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">cost should also be considered in the context of value</a>.  Requirements with higher value can justify implementing solutions with higher costs.</span></p>
<p>Prohibitively expensive solutions make requirements unattainable.  Relatively expensive (relative to their value) solutions also reflect unattainable requirements.  You need to collaborate with your implementation team to understand the costs associated with any particular requirement to know if it is attainable.  This is one of the strongest arguments against <em>throw-it-over-the-wall</em> interactions between product managers and implementation teams.  Without that feedback about feasibility and cost of a solution, you can&#8217;t assure that the requirements you are proposing are attainable.</p>
<p>Regular readers of Tyner Blain will realize that this is just an alternate way of stressing the<a title="prioritization and the ROI of requirements" href="http://tynerblain.com/blog/2007/02/07/prioritization-with-roi-and-utility/"> importance of considering ROI when defining requirements</a>.</p>
<h2>Politics</h2>
<p>There are political realities that every organization faces.  It could be a <em>benevolent dictator</em> CEO, or an executive with an agenda or pet project.  It may simply be that there is value in the problems you&#8217;ve identified, but solving them is not aligned with your corporate strategy.  You may be focusing on dominating an existing market, where expansion into new markets is the company&#8217;s focus &#8211; or vice versa.  You may be focusing on top-line growth opportunities, while the company is fixated on cost-reduction in a time of economic contraction.</p>
<p>Each of these scenarios causes you to be fighting an uphill battle internally.  When that hill is too steep, you&#8217;re writing unattainable requirements.</p>
<h2>Process</h2>
<p>When deciding what to build, you also have to think about how you launch.  Launching, as <a title="dave daniels launch clinic" href="http://pragmaticmarketing.typepad.com/launchclinic/">Dave Daniels regularly points out on his Launch Clinic blog</a>, is not just putting your product up on your website for sale.  You have to think organizationally about all of the other moving parts:</p>
<ul>
<li><span style="background-color: #ffffff;">Do your customers have the ability to absorb an update to your software?</span></li>
<li><span style="background-color: #ffffff;">Can your customer service reps be trained in time to promote and support the new capabilities?</span></li>
<li><span style="background-color: #ffffff;">Will your sales team be able to communicate a message that helps them close deals based on what you&#8217;ve just built?</span></li>
</ul>
<p>Process is more than just the process of typing, compiling, and testing code.  Process includes everything needed to successfully go to market and sustain your product.  If you&#8217;re defining requirements that are too far ahead of your market they are not attainable.  If your requirements embody process changes that are too difficult or expensive for your customers or your organization to absorb, your requirements are not attainable.</p>
<h2>Conclusion</h2>
<p>Attainable requirements are requirements that</p>
<ul>
<li><span style="background-color: #ffffff; ">Have a reasonable cost to implement,</span></li>
<li><span style="background-color: #ffffff; ">Are aligned with your company&#8217;s strategy and stakeholder&#8217;s agendas, and</span></li>
<li><span style="background-color: #ffffff; ">Result in solutions that can be consumed by your company and your customers.</span></li>
</ul>
<p>Make sure you&#8217;re writing <em>attainable</em> requirements.</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+Attainable+Requirements+http%3A%2F%2Fbit.ly%2F6eSabn+" 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/2009/11/30/attainable-requirements/&amp;t=Attainable+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/2009/11/30/attainable-requirements/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Concise Requirements</title>
		<link>http://tynerblain.com/blog/2009/08/03/concise-requirements/</link>
		<comments>http://tynerblain.com/blog/2009/08/03/concise-requirements/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 03:23:17 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<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[Software development]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[concise requirements]]></category>
		<category><![CDATA[writing good requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1010</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F08%2F03%2Fconcise-requirements%2F", "style": "big", "title": "Concise Requirements" }); Concise requirements give your team a useful, easy to read and easy to change understanding of what must be done.  Great requirements exist to do three things: Identify the problems that need to be solved. Explain why those problems are worth solving. Define when those problems are [...]]]></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%252F2009%252F08%252F03%252Fconcise-requirements%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Concise%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F08%2F03%2Fconcise-requirements%2F", "style": "big", "title": "Concise Requirements" });</script></div>
<p><img class="alignnone" title="concise requirements logo" src="http://sehlhorst.smugmug.com/photos/128628545-M.png" alt="" width="250" height="250" /></p>
<p><em>Concise</em> requirements give your team a useful, easy to read and easy to change understanding of what must be done.  Great requirements exist to do three things:</p>
<ol>
<li>Identify the problems that need to be solved.</li>
<li>Explain why those problems are worth solving.</li>
<li>Define when those problems <em><span style="text-decoration: underline;">are</span></em> solved.</li>
</ol>
<h2><span id="more-1010"></span>Concise Requirements &#8211; Revisiting</h2>
<p><img class="alignnone" title="ipod 2006" src="http://sehlhorst.smugmug.com/photos/610301383_BDte6-L.jpg" alt="" width="149" height="250" /><img class="alignnone" title="ipod 2009" src="http://sehlhorst.smugmug.com/photos/610301393_sfN5r-L.jpg" alt="" width="141" height="250" /></p>
<p>In the three years since we last looked at <em><a title="writing concise requirements" href="http://tynerblain.com/blog/2006/05/31/writing-concise-requirements/">Writing Concise Requirements</a></em> from the <em><a title="Writing Good Requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">Big Ten Rules of Writing Requirements</a></em>, the iPod evolved to give us a better experience.  Let&#8217;s see if we can do the same with the topic of brevity in requirements.  The size of our community here has grown ten-fold, and the people who were here back then have grown just as much.  It makes sense to look at this again.</p>
<p>Writing concise requirements is not just minimizing the number of words you use.  Writing concise requirements is presenting the most important information in the easiest format for your audience to consume.</p>
<h2>Concise Requirements Identify the Problems That Need to be Solved</h2>
<p>Ultimately, requirements are the problems that we choose to solve.  A concise requirements artifact (formal document, index card, photo of a whiteboard, whatever) is one that has the highest signal-to-noise ratio possible.  You&#8217;re maximizing the amount of communication, and minimizing the cost of communicating.</p>
<p><img class="alignnone" title="signal and noise" src="http://sehlhorst.smugmug.com/photos/610324412_eSzfc-L.png" alt="" width="241" height="210" /></p>
<p>You want your requirements document to read like the lines, not the points.  If the line (the signal) is what you really want, and you communicate a big pile of points (the signal, hidden in the noise), you run the very real risk that your audience will misinterpret the signal.</p>
<p><a title="writing complete user stories" href="http://tynerblain.com/blog/2009/07/06/writing-complete-user-stories/">User stories</a> provide the best example of clarity that comes from conciseness.  The format you should use, based on Mike Cohn&#8217;s great book, <em><a title="user stories applied at amazon" href="http://www.amazon.com/dp/0321205685?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0321205685&amp;creative=373489&amp;camp=211189">User Stories Applied</a></em><a title="user stories applied at amazon" href="http://www.amazon.com/dp/0321205685?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0321205685&amp;creative=373489&amp;camp=211189">,</a> is</p>
<blockquote><p>As a [<strong>role</strong>], I want to [<strong>do something</strong>] [<strong>with some frequency</strong>] so that I can/will [<strong>achieve some goal</strong>]</p></blockquote>
<p>The user story is not <em>always</em> the right communication format &#8211; it depends on what problems you&#8217;re solving, and who is on your team.  <a title="use cases vs user stories" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">Sometimes, use cases work better than user stories</a>.  Conciseness is important for use cases too.  Start with a <a title="use case naming tips" href="http://tynerblain.com/blog/2007/01/22/how-to-write-good-use-case-names/">good use case name</a>.</p>
<h2>Concise Requirements Explain Why Those Problems Are Worth Solving</h2>
<p>Last week&#8217;s article on <em><a title="Writing Valuable Requirements" href="http://tynerblain.com/blog/2009/07/29/valuable-requirements/">Valuable Requirements</a></em> focused on <em>why</em> particular problems should be solved.  Your focus should be on value, and that article discussed five ways to assure that your requirements are valuable.  One of the techniques,<a title="finding the root causes of problems" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/"> the use of an Ishikawa diagram</a>, provides a method for identifying the root causes of problems.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;"><img style="padding: 0px; margin: 0px;" src="http://sehlhorst.smugmug.com/photos/302635390_W2GiV-O.jpg" alt="excessive car operating costs" width="450" height="269" /></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">[<a style="color: #0000aa; text-decoration: none; padding: 0px; margin: 0px;" title="large excessive car costs example cause and effect diagram" href="http://sehlhorst.smugmug.com/photos/302635439_BqV4v-L.jpg">larger image</a>]</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">Imagine that you have a collection of user stories, representing problems to be solved for your users.  You need a way to demonstrate why <em>this</em> user story should be implemented and why <em>that</em> one shouldn&#8217;t.  You can often use the Ishikawa diagram in the same way.  A particular <strong>goal is achieved</strong> when a user is able to <strong>do something</strong>.  Perhaps several somethings are required.  The point is that you can use the Ishikawa to drive home the point &#8211; if <em>this set of user stories</em> are all implemented, then <em>this goal will be achieved</em>.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">There are two reasons this is important &#8211; first, you&#8217;re providing context for your team.  They understand <em>why</em> they are doing something.  Second, you can make changes easily, because you can see the impact of those changes.  By understanding the cause-and-effect relationships between problems and their values (user stories and their goals), you can see the impact of changing one or the other.</p>
<h2>Concise Requirements Define When Those Problems <em>Are</em> Solved</h2>
<p>Clarity is the goal of conciseness.  It isn&#8217;t enough to say &#8220;work on this.&#8221;  It&#8217;s important to know <em>why</em> you&#8217;re working on it, but that still isn&#8217;t enough.  You have to know when you&#8217;re <em>done</em>.  When you&#8217;re defining problems to be solved (and therefore solutions), you must also define the <em>measures</em> by which the solution will be judged.</p>
<p>A measurement of success for &#8220;Cost of Operation is Too High&#8221; might be &#8220;reduce costs of operation by 10%.&#8221;  This gives you a testable criteria for knowing when that problem has been <em>sufficiently</em> solved.  Sticking with the Ishikawa, you can also map out the strategy for achieving that lofty goal.  You can say that the goal is to reduce fuel expenses by 20%, reduce cost of maintenance by 5%, and reduce payments by 15%.  This process continues &#8211; a 20% reduction in fuel spend requires that you operate with your tires within 5% of nominal pressure, and that you reduce the aerodynamic drag coefficient by 7% (or whatever).</p>
<p>This gives you clarity in your objectives.</p>
<p>User stories, when combined with user acceptance criteria, provide that last connection of testability that lets your team know when they are done.</p>
<p><img class="alignnone" title="acceptance criteria for user stories" src="http://sehlhorst.smugmug.com/photos/584149015_prgqx-L.png" alt="" width="450" height="305" /></p>
<p>There aren&#8217;t many things more frustrating to a development team than having them solve the wrong problems.  One of those things might be having their solution be rejected because it isn&#8217;t <em>enough</em>.  Writing acceptance criteria clearly and concisely lets the team know exactly when they can move on to the next problem.</p>
<p>Providing a crisp understanding of acceptance criteria also facilitates iterative development.  One challenge teams always face is <a title="how to use timeboxes for agile development" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">making improvements that fit within the timebox</a> of a given iteration.  Imagine a user story with 4 acceptance criteria, where the story is too big to complete in one sprint.  When talking with your development team, you may find that the story is too big because satisfying all of the acceptance criteria is too big.  This is where many teams miss an opportunity &#8211; by defining <em>all</em> of the acceptance criteria that are believed to be needed <em>eventually</em> and requiring that they all be implemented <em>now</em>.  One of those criteria is going to be more important than the others.  Implement the story such that is satisfies the most important criteria (timeboxing) now, and rewrite or enhance it to meet the additional criteria later.</p>
<h2>Conclusion</h2>
<p>Software Product Success depends not only on identifying the &#8220;right stuff&#8221; to build, but on making sure the team builds it and builds it right.</p>
<p>Concise requirements improve your ability to communicate with your team, thereby improving their ability to build the right stuff right.</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+Concise+Requirements+http%3A%2F%2Fbit.ly%2F2803EW+" 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/2009/08/03/concise-requirements/&amp;t=Concise+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/2009/08/03/concise-requirements/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Valuable Requirements</title>
		<link>http://tynerblain.com/blog/2009/07/29/valuable-requirements/</link>
		<comments>http://tynerblain.com/blog/2009/07/29/valuable-requirements/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 04:54:34 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[valuable requirements]]></category>
		<category><![CDATA[writing valuable requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1002</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F07%2F29%2Fvaluable-requirements%2F", "style": "big", "title": "Valuable Requirements" }); Writing valuable requirements is important.  It doesn&#8217;t matter how well your teams execute if they are off building the wrong products / capabilities / features.  The right products and capabilities are the ones that have relevant value. Valuable requirements solve problems in your market. Valuable requirements [...]]]></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%252F2009%252F07%252F29%252Fvaluable-requirements%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Valuable%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F07%2F29%2Fvaluable-requirements%2F", "style": "big", "title": "Valuable Requirements" });</script></div>
<p><img class="alignnone" title="the first rule of writing requirements logo" src="http://sehlhorst.smugmug.com/photos/128628528-M.png" alt="" width="250" height="250" /></p>
<p>Writing <em>valuable</em> requirements is important.  It doesn&#8217;t matter how well your teams execute if they are off building the wrong products / capabilities / features.  The right products and capabilities are the ones that have <em>relevant</em> value.</p>
<ul>
<li>Valuable requirements solve problems in your market.</li>
<li>Valuable requirements support your business strategy.</li>
<li>Valuable requirements solve problems for your users.</li>
<li>Valuable requirements meet your buyers&#8217; criteria.</li>
<li>Valuable requirements don&#8217;t <em>over-solve</em> the problems.</li>
</ul>
<h2><span id="more-1002"></span>Valuable Requirements &#8211; Revisiting</h2>
<p><img class="alignnone" title="Puppy Scout" src="http://sehlhorst.smugmug.com/photos/578544627_BfDyP-L.jpg" alt="" width="187" height="250" /><img class="alignnone" title="scout as adult" src="http://sehlhorst.smugmug.com/photos/604778004_HJ8FF-L.jpg" alt="" width="170" height="250" /></p>
<p>A little over three years ago, I compiled the <em><a title="Ten Rules of Writing Requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">Big Ten Rules of Writing Good Requirements</a></em>, which ended up with an even dozen &#8220;rules.&#8221;  The first rule was <a title="writing valuable requirements" href="http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/">writing valuable requirements</a>.  Three years is a long time.  <em>Our</em> environment has changed.  Many great insights have come into our neck of the software development woods from many inspired voices.  I&#8217;ve personally learned a lot.  My focus has changed from being more focused on product specification (back then) to being more engaged in business strategy (today).  Our audience here has grown ~ 10x since the original rules were published.  My dog has tripled in size.  Perhaps my writing has even improved.</p>
<p>Given that, it makes sense to revisit the topic now.</p>
<h2>Valuable Requirements Solve Problems in your Market</h2>
<p>I struggled a little about starting with &#8220;strategy&#8221; or starting with &#8220;the market.&#8221;  Pragmatic Marketing&#8217;s Framework (<a title="pragmatic marketing grid video" href="http://www.pragmaticmarketing.com/seminars/files/pragmaticmarketingframework">recently updated</a>) starts with the market.  When I first watched the great video, where Jim Foxworthy introduces the updates to the grid, I was a little concerned about that.  Market first, strategy second.  Why not strategy first and market second?  I decided that I was happy with their presentation, since the framework is a tool for product managers.  Product managers usually have responsibility for a market, as a component of their company&#8217;s strategy &#8211; so the sequencing makes sense for a product manager audience.  Jim also puts it in perspective &#8211; their framework is focused on the company&#8217;s strategy for attacking a particular market.  I&#8217;ll stick with that here too.</p>
<p>To understand what problems are valuable for a particular market (or market segment) you have to approach it from your customer&#8217;s perspective.  What are the problems they are trying to solve?</p>
<p>Your customers might be distributors of retail products, who&#8217;s business it is to acquire, store, and redistribute small products.  They are in a business where their customers value accuracy, timeliness, and low cost of delivery.  Your customers may value solutions that allow them to more accurately redistribute products (they receive pallets full of items, and then redistribute them a case at a time).  They may value solutions that allow them to adapt to changes in orders with minimal turn-around time.  Or they may get the most value out of cost reductions.  Talk with your customers, <a title="ten supercharged active listening skills" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">listen to them talk about their problems</a>.  When I was working for an enterprise software company years ago, our CEO stressed that he wanted to be solving the problems that keep our customer CEOs up at night.  Find out what those problems are.</p>
<p>The next challenge is in breaking those problems down into something actionable.  If your customers&#8217; biggest problem is cost reduction, how do you solve it?  The first step is to understand where the costs are.  One way to visualize and decompose the problems your customers face is with an<a title="Ishikawa diagrams for decomposing problems" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/"> Ishikawa diagram (check this out to learn how to use an Ishikawa)</a>.</p>
<p>The following diagram shows a decomposition of &#8220;The cost of driving is too high&#8221; problem:</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;"><img style="padding: 0px; margin: 0px;" src="http://sehlhorst.smugmug.com/photos/302635390_W2GiV-O.jpg" alt="excessive car operating costs" width="450" height="269" /></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">[<a style="color: #0000aa; text-decoration: none; padding: 0px; margin: 0px;" title="large excessive car costs example cause and effect diagram" href="http://sehlhorst.smugmug.com/photos/302635439_BqV4v-L.jpg">larger image</a>]</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">Now you&#8217;ve identified a set of problems that are valuable to your customers.  The Ishikawa can help you make sure you&#8217;re <a title="good problem statements and bad problem statements" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">identifying problems, not the manifestations of problems</a>.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">You also have to understand what solutions are already available to your customers.  If you have a competitor that already offers a very good solution to one of the identified problems, your customers will find less value in a solution from you.</p>
<h2>Valuable Requirements Support Your Business Strategy</h2>
<p>With a set of problems in hand that are worth solving, you have to figure out which ones are aligned with <em>your</em> company&#8217;s strategy.</p>
<p>In the Ishikawa above, one of the problems that car owners face is excessively high payments (on their car loan).  Another problem is that the cost of maintenance is too high.  If your company provides financing products (loans and leases), trying to solve the <em>cost of maintenance</em> problem for your customers is probably out of alignment with your strategy.  Making the financing of a vehicle more affordable (while still profitable for your company) is probably a well-aligned problem.</p>
<p>Your company will also have a strategy for engaging the market &#8211; target market share levels, target market segments to penetrate, etc.  You may be trying to become <a title="market-driven competitive advantage" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">a visionary company with your finger on the pulse of your market</a> &#8211; or you may be trying to get mass adoption of your product by solving a very common problem, but solving it better than your competitors.  Your strategy for winning in this market may be to differentiate your offerings by <a title="product differentiation" href="http://tynerblain.com/blog/2007/01/23/differentiate-your-product/">solving different problems</a> than your competitors, or <a title="blue ocean strategy" href="http://tynerblain.com/blog/2009/04/29/personas-and-blue-oceans/">defining a unique market</a>.</p>
<p>Another way to think about alignment with your business strategy is to think about the owners of your company&#8217;s strategic goals &#8211; your <a title="stakeholder goals" href="http://tynerblain.com/blog/2007/10/11/stakeholder-goals/">internal stakeholders</a>.  Most projects will fail (or be killed) without internal champions who believe in the ideas.</p>
<p>When you&#8217;re aligned with a part of your company strategy,  you&#8217;re aligned with whoever is the owner of that component of the strategy, and you&#8217;re providing value to that stakeholder.  Sometimes there are many components and stakeholders.  You can adapt some <a title="stakeholder value matrix" href="http://tynerblain.com/blog/2007/10/25/stakeholder-value-matrix/">process-improvement prioritization techniques</a> that Roger Burlton teaches to get an understanding of which goals are important to whom.</p>
<h2>Valuable Requirements Solve Problems for Your Users</h2>
<p>Products are used by people.  People use those products to accomplish goals.  They may be using your product for their employers, in which case they have &#8220;practical goals&#8221; (finish quickly) that represent how their company&#8217;s goals (lowered costs) are realized.  And those people usually interact with other people.  You can quickly<a title="visualizing your product's ecosystem" href="http://tynerblain.com/blog/2007/03/13/visualize-stakeholder-analysis/"> build a visualization of who are the users</a> (and indirect users).</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;"><img style="padding: 0px; margin: 0px;" title="stakeholder interactions" src="http://sehlhorst.smugmug.com/photos/135723894-M.jpg" alt="stakeholder interactions" /></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">[<a style="color: #0000aa; text-decoration: none; padding: 0px; margin: 0px;" title="larger stakeholder interaction onion diagram" href="http://sehlhorst.smugmug.com/photos/135723902-O.png">larger image</a>]</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">You can think of this as an ecosystem of users of your product.  <a title="creating personas for goal driven development" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">Develop personas</a> and their goals to represent these users.  You can apply the same Ishikawa-based problem-decomposition technique when needed to make sure you&#8217;re uncovering the real problems (too many people abandon the sign-up process) and not the manifestations of those problems (users have to click too much).</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">When your users are not your customers, your users have personal and practical goals that represent their individual contributions to achieving your customer&#8217;s goals.  And your users achieve those goals by doing stuff.  You can represent that stuff with <a title="writing complete user stories" href="http://tynerblain.com/blog/2009/07/06/writing-complete-user-stories/">user stories</a> or <a title="agile use cases" href="http://tynerblain.com/blog/2007/03/28/how-to-start-use-cases/">use cases</a>.  The key element is to make sure that you&#8217;ve identified the valuable activities, the ones that are required to achieve goals.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;"><img style="padding: 0px; margin: 0px;" title="user stories and goals" src="http://sehlhorst.smugmug.com/photos/584149015_prgqx-L.png" alt="" width="450" height="305" /> [<a style="color: #0000aa; text-decoration: none; padding: 0px; margin: 0px;" title="goals are achieved through user stories" href="http://sehlhorst.smugmug.com/photos/584148954_P4px6-O.png">larger version</a>]</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">The above diagram is used when assessing the completeness of requirements, which is an element of assuring valuable requirements.  If a goal has value, you have to identify the set of user stories required to achieve the goal.  Those user stories therefore have value.  User stories that don&#8217;t support a goal don&#8217;t have value.</p>
<h2>Valuable Requirements Meet Your Buyer&#8217;s Criteria</h2>
<p>The people who buy your products are sometimes not the people who use your products.  Even when the same person is both buyer and user, that person&#8217;s <em>mental model</em> for buying is different from their model for using a product.  If you can&#8217;t convince someone to buy your product, it doesn&#8217;t matter how great it would have been had they bought it.</p>
<p>Here are the opening soundbites from an earlier article on<a title="buyer personas" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/"> buyer personas</a>.</p>
<ul>
<li>Buyer Persona: If you build what he thinks he wants, he&#8217;ll come.</li>
<li>User Persona: If you build what he actually needs, he&#8217;ll come back.</li>
</ul>
<p>And the closing summary points (it&#8217;s a <em>long</em> article):</p>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 20px; padding: 0px;">
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 20px; padding: 0px;">Buyer personas make purchases when products appear to address their internal view of what the problems are.</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 20px; padding: 0px;">User personas love products when those products solve the real problems.</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 20px; padding: 0px;">Don’t confuse buyers (who need to buy products to solve user problems) with users (who need to solve their own problems).</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 20px; padding: 0px;">When buyers and users are the same people, acknowledge the buyer-goals distinctly from the user-goals.</li>
</ul>
<p>There are also several <a title="buyer and user persona discussion" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">really great insights in the discussion thread</a> &#8211; including great comments from Shaun Connolly, Edele Revella, and David Meerman Scott!</p>
<h2>Valuable Requirements Don&#8217;t <em>Over-Solve</em> the Problems</h2>
<p><a title="kano analysis" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">More is better, right</a>?  Not always.  Sometimes, &#8220;more&#8221; is a waste.  There are really two ways to think about how much is too much.</p>
<p><strong>The ROI of Incremental Improvements</strong></p>
<p><img class="alignnone" title="roi and utility curves" src="http://sehlhorst.smugmug.com/photos/57708984-M.png" alt="" width="400" height="400" /></p>
<p>Because of the law of diminishing returns, the next &#8220;more&#8221; is always worth less than the previous &#8220;more.&#8221;  Think of it in terms of improving fuel-economy.  If you have a car that gets 10 mpg, and you drive 100 miles a day, you have to buy 10 gallons of gas a day.  If you improve the mpg by 10 mpg (to 20 mpg), you&#8217;ll save 5 gallons of gas per day.  Huge value.  If you improve the mpg by another 10 mpg (to 30 mpg), you&#8217;ll save an additional 1.3 gallons of gas per day.  Some value.  Another 10 mpg buys you 0.8 gallons per day.  Diminishing returns.</p>
<p>The cost of achieving &#8220;more&#8221; is also a factor.  The simplified diagram above shows a linear representation of cost as a black line.  The diminishing returns of value are represented as the red curve.  The optimal investment point is where the two curves are tangent (have the same slope) &#8211; marked with the blue circle.  Less investment leaves money on the table &#8211; additional investment is done at a loss.</p>
<p><strong>Good Enough is Enough</strong></p>
<p>You don&#8217;t need to super-solve the problem.  How much more would you pay for a car that got 10,000 mpg than one that got 1,000 mpg?  If you drove 100 miles a day, the difference between the two (from a value standpoint) is trivial.  Over the course of 100 days, you would save 9 gallons <em>total</em> with the car that had <em>ten times the fuel efficiency</em>.</p>
<p>Why haven&#8217;t microwave ovens been getting faster every year? Because the move from a 1-hr baked potato to a 5-minute baked potato is <em>good enough</em>.  You don&#8217;t need to get it under 4 minutes.</p>
<p>This is known as <em><a title="satisficing" href="http://tynerblain.com/blog/2008/11/12/satisficing-sprints/">satisficing</a></em><a title="satisficing" href="http://tynerblain.com/blog/2008/11/12/satisficing-sprints/"> </a>- stopping when something is good, not trying to make it &#8220;perfect.&#8221;  Additional &#8220;goodness&#8221; will not result in enough additional sales to justify the investment.</p>
<h2>Conclusion</h2>
<p>The tagline for Tyner Blain is <em>Software Product Success</em>.  On an elevator, I explain that you have to not only &#8220;build stuff right&#8221; but you have to &#8220;build the right stuff.&#8221;  And the right stuff is the valuable stuff.</p>
<p>Define valuable requirements to make sure you&#8217;re building the right stuff.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; line-height: 1.4em; padding: 0px;">

<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+Valuable+Requirements+http%3A%2F%2Fbit.ly%2Fd4mNks+" 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/2009/07/29/valuable-requirements/&amp;t=Valuable+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/2009/07/29/valuable-requirements/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Failure To Launch (Your Product)</title>
		<link>http://tynerblain.com/blog/2009/02/19/failure-to-launch/</link>
		<comments>http://tynerblain.com/blog/2009/02/19/failure-to-launch/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 22:21:37 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[ishikawa]]></category>
		<category><![CDATA[launch]]></category>
		<category><![CDATA[product launch]]></category>
		<category><![CDATA[root cause analysis]]></category>
		<category><![CDATA[start-up]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=835</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F02%2F19%2Ffailure-to-launch%2F", "style": "big", "title": "Failure To Launch (Your Product)" }); Jump forward in time to the day of your next big product launch (first release, new features, new market segment, etc).  And your site/application crashes due to the &#8220;unexpected&#8221; demand.  All you can do now is look for a bucket of water 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%252F2009%252F02%252F19%252Ffailure-to-launch%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Failure%20To%20Launch%20%28Your%20Product%29%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F02%2F19%2Ffailure-to-launch%2F", "style": "big", "title": "Failure To Launch (Your Product)" });</script></div>
<p><img class="alignnone" title="rocket launch failure" src="http://sehlhorst.smugmug.com/photos/476802889_vAUQs-L.jpg" alt="" width="250" height="186" /></p>
<p>Jump forward in time to the day of your next big product launch (first release, new features, new market segment, etc).  And your site/application crashes due to the &#8220;unexpected&#8221; demand.  All you can do now is look for a bucket of water to put out the fire.  What could you have done to prevent this disaster?  Jump back to today and start doing it!</p>
<h2><span id="more-835"></span>Backwards Planning</h2>
<p>Depending on how you look at things, this is a backwards planning exercise, or a variation of the  <em><a title="remember the future - innovation games book excerpt" href="http://800ceoread.com/excerpts/archives/006538.html">remember the future</a></em><a title="remember the future - innovation games book excerpt" href="http://800ceoread.com/excerpts/archives/006538.html"> innovation game</a>, or risk management, or proactive product management.  You can avoid a disaster by imagining what might happen, then hypothetically figuring out why it (would have) happened.  That leads to planning how you could prevent it.  And now you&#8217;ve left the dream world of a <a title="gedanken experiments" href="http://en.wikipedia.org/wiki/Thought_experiment">Gedanken experiment</a> and returned to the real world of product management.</p>
<h2>Problem Triage</h2>
<p>The way to approach this is straightforward.  Imagine some failure scenarios and the importance of preventing them:</p>
<p> </p>
<ol>
<li>Imagine a failure scenario.</li>
<li>&#8220;Predict&#8221; the likelihood of the failure.</li>
<li>&#8220;Estimate the impact of the failure.</li>
<li>Repeat for each scenario</li>
</ol>
<p>You can prioritize your failure scenarios by multiplying the likelihood of each with the impact of each, and sorting them from largest to smallest.  Then determine which ones you&#8217;re willing to address, and which ones you&#8217;re willing to risk.  You may not be able to predict the likelihood of some failures (at least until you do a root cause analysis).  Take each of these and put them directly above the scenario with the next highest impact.  The rationalle is that these are so bad, that you really want to find out how likely they are to happen.  Once you predict likelihood (see below) you can reprioritize.</p>
<h2>Root Cause Analysis</h2>
<p>For the failure scenarios you choose to address, the next step is to do a root cause analysis that identifies why it might have happened.  The best tool for capturing this analysis is an <a title="ishikawa diagrams" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">Ishikawa diagram</a>.  Consider that one problem you might face is your website crashing.</p>
<p><img class="alignnone" title="base problems ishikawa" src="http://sehlhorst.smugmug.com/photos/476855598_rsvGg-O.png" alt="" width="450" height="275" />[<a title="larger ishikawa diagram" href="http://sehlhorst.smugmug.com/photos/476855601_kAYeo-L.png">click for larger version</a>]</p>
<p>Essentially, you can crash your site by having too many users, too many concurrent users, or too many concurrent sign-ups.  Developing a cause-and-effect diagram (another name for an Ishikawa diagram) is usually an iterative and exploratory process.  You probably won&#8217;t create the simple version above first.  You may ask your implementation team &#8220;What can cause the website to crash?&#8221;  For each of their answers, you identify when that situation can happen.  Or you start top down.  Most likely, a mix of the two.  Your completed root cause analysis may look like the following:</p>
<p><img class="alignnone" title="complete failure analysis" src="http://sehlhorst.smugmug.com/photos/476855607_Vwh58-O.png" alt="" width="450" height="230" />[<a title="larger root cause analysis diagram" href="http://sehlhorst.smugmug.com/photos/476855612_J5jvk-L.png">click for larger version</a>]</p>
<p>At this point, your team can probably predict many (maybe all) of the root causes of a website crash.  The predictions may be conditional &#8211; &#8220;we can handle 10 concurrent users, but 20 probably kill us, and 100 definitely would.&#8221;  Developers are notoriously good at answering questions with conditional statements that reveal the nuances of their thinking.</p>
<p>Remember that you&#8217;re looking back from the future.  At product launch, what are you hoping for / reasonably expecting?  For this example, assume it is 10,000 total users, with 100 concurrent users (normally) and 500 concurrent signups.  You determine these numbers by working with your PR, marketing, or mar-com people (or wearing those hats, when it is all you).  Your plan is to do a big launch with a demo and a promo code for signup.  You know your audience will have internet connections, and will have twitter running at the time of your presentation.  You expect/dream of an immediate burst of signups, followed by tweets and word of mouth, and eventually blog articles causing additional growth over the next couple of weeks.</p>
<p>Use this data to feed back into the developer&#8217;s conditional responses.  If you&#8217;re like me, you will have found &#8220;absolute certainty of failure&#8221; from something.  And you may have even identified the thresholds for each element.  For example, database loading can handle 75 concurrent users, but with the current implementation, you only have enough database connections available to support 25 concurrent users.</p>
<p>Jumping back to the present, you now have some very discrete, and very important things to do before your launch.  If you need to, revisit the prioritized list of failure scenarios.  By looking at the next level of detail, have you found that the order of importance (to fix) has changed?  What about the &#8220;must fix&#8221; versus &#8220;willing to risk&#8221; line?  Has it moved?</p>
<p>Fold the &#8220;must fix&#8221; items into your backlog, and prioritize them relative to the other capabilities on your roadmap.  As a side note &#8211; make sure you&#8217;ve built in some testing to make sure you actually prevent the problems.  This might even be a great opportunity to implement &#8220;performance regression tests&#8221; &#8211; it is not enough to prevent bugs, you have to prevent slowdowns.</p>
<h2>Rethinking the Problem</h2>
<p>Without going into details on <em>how</em> the team will solve each problem, make sure that together you keep the Ishikawa diagrams in mind, and see how any proposed solutions might &#8220;reappear&#8221; on the diagram.  For example, rewriting your database connections to use asynchronous processes and a set of pooled connections may prevent a crash, but it may really hurt performance.  You may not have time to find an elegant solution.  So stop and rethink the problem.</p>
<p>At this point, you&#8217;ve said</p>
<ol>
<li>Given a marketing plan / launch strategy, we would crash the website.</li>
<li>We can make changes between now and the launch that will double the number of concurrent users we can support (or whatever), but that is not enough to support the launch strategy.</li>
<li>Solution: Change the launch strategy.</li>
</ol>
<p>Maybe you can&#8217;t support a wide-open promo-code based signup.  You should modify your launch so that it can only create as much demand as your product (including pending improvements) can support.  Maybe you limit it to the first 1,000 new users (probably more code to write to enforce the limit).  Maybe you launch with per-user invitations, where you can control the speed of propagation of invites (start with 100, when those have been sent, make another 100 available, etc).</p>
<h2>Entire Team Problem</h2>
<p>This is a problem that is solved collaboratively, by the entire team.  It is not just a &#8220;go write the code&#8221; problem.  What your product can support at a launch should drive how you choose to launch, just as how you choose to launch should drive what you want your product to support.  </p>
<p>You may have to delay a key capability in order to scale.  Does your marketing team know this?  Slightly less bad than crashing would be announcing a feature that is disabled.  Still need to announce the feature?  Pre-announce it: &#8220;Coming in a month&#8230;&#8221;</p>
<p>This stuff is important for every company and product, but it is especially critical for start-ups.  As a start-up, you have limited opportunities to grow, and a limited safety-net to catch you when you fail to capitalize on those opportunities.  So make sure everyone (not just the development team) is aligned to make the best use of each opportunity.</p>
<h2>Conclusion</h2>
<p>You have an opportunity to prevent problems.  All you have to do is imagine that they have happened in the future, figure out why they would have happened, then do what it takes (in software, or organizationally) to prevent them.</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+Failure+To+Launch+%28Your+Product%29+http%3A%2F%2Fbit.ly%2FetPdZv+" 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/2009/02/19/failure-to-launch/&amp;t=Failure+To+Launch+%28Your+Product%29" 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/2009/02/19/failure-to-launch/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Agile Product Management: Providing Context</title>
		<link>http://tynerblain.com/blog/2008/10/01/agile-product-management-providing-context/</link>
		<comments>http://tynerblain.com/blog/2008/10/01/agile-product-management-providing-context/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 01:27:13 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile product management]]></category>
		<category><![CDATA[ishikawa]]></category>
		<category><![CDATA[ishikawa diagrams]]></category>
		<category><![CDATA[rolling wave planning]]></category>
		<category><![CDATA[sdlc]]></category>
		<category><![CDATA[software development lifecycle]]></category>
		<category><![CDATA[timebox]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=714</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F10%2F01%2Fagile-product-management-providing-context%2F", "style": "big", "title": "Agile Product Management: Providing Context" }); Agile development methodologies succeed because they help development teams be as effective as possible.  Development teams do not, however, work in complete isolation.  The company they work for has a strategy.  The company manages a portfolio of products, and targets a particular product [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F10%252F01%252Fagile-product-management-providing-context%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Agile%20Product%20Management%3A%20Providing%20Context%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F10%2F01%2Fagile-product-management-providing-context%2F", "style": "big", "title": "Agile Product Management: Providing Context" });</script></div>
<p><img class="alignnone" title="Sharpening Steel" src="http://photos.smugmug.com/photos/384746390_YYUuF-L.jpg" alt="" width="250" height="188" /></p>
<p>Agile development methodologies succeed because they help development teams be as effective as possible.  Development teams do not, however, work in complete isolation.  The company they work for has a strategy.  The company manages a portfolio of products, and targets a particular product at specific market problems.  Within that context, an agile team can thrive.  What&#8217;s the best way to provide that context?</p>
<p><span id="more-714"></span></p>
<h2>Agile Development in Context</h2>
<p>Mike Cohn of Mountain Goat Software gave a presentation to the bayXP group in March 2007 on <a title="agile estimation presentation" href="http://www.mountaingoatsoftware.com/presentation/51-planning-and-tracking-on-agile-projects">agile estimation and planning</a> (video and pdf at link).  As part of setting the stage for his planning presentation, he describes the software development ecosystem as an onion.  So did I, coincidentally, in 2006.  The gist of both onions is that <a title="software development process" href="http://tynerblain.com/blog/2006/01/29/describing-the-software-development-process/">software development</a> is implementation, in the context of design, driven by requirements, formed to address market opportunities.  Mike&#8217;s onion provides specific insights into the execution approach of an agile team, so let&#8217;s frame this conversation using his terms (but a new visual).</p>
<p><img class="alignnone" title="Agile process onion" src="http://photos.smugmug.com/photos/384746404_w7Nzz-L.gif" alt="" width="450" height="450" /></p>
<ul>
<li>A company has a strategy.  [Example: "Organize the world's information..."]</li>
<li>A company has a portfolio of products that is intended to provide a mechanism by which the company can achieve its strategy.  [Example: Gmail, Chrome, Gears, Reader, Docs, etc.]</li>
<li>Each product (or service) the company creates is an intentional part of the portfolio, targeted at specific markets or market segments, with an intention to solve specific problems.  [Example: Gears allows people to consume online content when offline.]</li>
<li>A product is delivered through a series of releases. [Example: Chrome release 0.2.149.30.]</li>
<li>The work that goes into a release, when practicing incremental development, may be decomposed into multiple iterations.  [Example: Chrome iteration 0.2.149.29, not released, but built and tested]</li>
<li>In scrum, the completion of tasks within an iteration are managed daily.  [Example: Today, I will add the 'check for updates' to the 'About Chrome' popup.]</li>
</ul>
<p>Many people talk about the agile process as if it encompassed the entire perspective shown above.  It doesn&#8217;t.  When you talk about the software development lifecycle from the strategy level down, you&#8217;re really talking about business strategy.  Agile development happens in the context of a business strategy, a product portfolio designed to achieve those strategic goals, and the product in that portfolio that is being developed.</p>
<p>Saeed Khan puts it pretty well in <a title="saeed on agile" href="http://onproductmanagement.wordpress.com/2008/04/29/agiledev_and_pm/">his first article about agile / scrum</a>:</p>
<blockquote><p>Keep in mind, Agile/Scrum is a DEVELOPMENT methodology. It is a great model for developers and engineers and other R&amp;D team members to work and communicate more efficiently. There are very clear benefits to this model. It provides greater visibility into current work status, work remaining, can identify development hurdles earlier and can communicate them outward more easily.</p></blockquote>
<p>I agree with Saeed.  In the diagram above, the layers that represent &#8220;what we do&#8221; have black text and borders (Strategy, Portfolio, and Product).  The layers that represent &#8220;how we do it&#8221; have white text and borders (Release, Iteration, Daily).  In Mike Cohn&#8217;s presentation on agile planning, he specifically calls out that agile planning happens in this (inner) scope.</p>
<p>Managing a product backlog (in scrum) is the place where things blur a little.  Determining what goes into the product backlog is &#8220;what we do&#8221;, prioritizing those product backlog items is &#8220;when do we do it&#8221;, and fitting them into individual releases (<a title="scheduling with timeboxes" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">timeboxes</a> and <a title="rolling wave planning" href="http://tynerblain.com/blog/2006/07/25/incremental-project-mgmt/">rolling-wave planning</a>) is &#8220;how we do it.&#8221;  As agile teams stress, communication here is the key.</p>
<p>The true challenge that companies face is to provide agile development teams with the context needed to develop software.</p>
<h2>Providing Context to Agile Teams</h2>
<p>Product management is primarily a strategic activity, combining market insights () with company strategy to design a product portfolio, and to determine which problems a particular product should solve, for a particular market segment.  This leads to a <a title="buyer persona and user persona" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">focus on buyer personas and user personas</a>.</p>
<p>Establishing and maintaining the connection between market insights and agile development teams will develop <a title="distinctive competence from being market driven" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">a distinctive competence for your company</a>.  One key is to connect <a title="stakeholder goals" href="http://tynerblain.com/blog/2007/10/11/stakeholder-goals/">stakeholder goals</a> with implementation activities.  This involves translation from the language of business to the language of developers.</p>
<p>An effective bridge across that communication divide has to be visceral and very straightforward.  Many agile team members rail against anything that looks like overhead, and the manifesto even codifies this disposition &#8211; &#8220;<a title="agile manifesto" href="http://tynerblain.com/blog/2006/05/10/agile-values-alistair-cockburn-on-the-agile-manifesto/">working software over comprehensive documentation</a>.&#8221;</p>
<p>Our magic decoder ring must be simple, explicit, and light-weight.  Sounds like a job for the Ishikawa diagram.</p>
<h2>Ishikawa Diagrams for Agile Product Management</h2>
<p>The Ishikawa diagram, also known as a cause-and-effect diagram or as a fishbone diagram, can be used to <a title="ishikawas for product managers" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">describe and decompose market problems</a>.  Consider the following near-real-world example:</p>
<p>You&#8217;re developing a product for sales reps.  The key to your product&#8217;s success is user adoption, and you believe the way to get that adoption is by helping sales reps to maximize their compensation.  Sales reps are generally managed via commission-based compensation models.  You establish &#8220;Maximize Sales Compensation&#8221; as a goal for your software (for these users, in this market segment).  You then acknowledge that there are a series of &#8220;smaller&#8221; problems that have to be solved before sales reps actually can maximize their compensation.  An Ishikawa diagram of your results would look like the following (consider only the main branches):</p>
<p><a href="http://photos.smugmug.com/photos/384746454_ASdyM-L.gif"><img class="alignnone" title="market ishikawa" src="http://photos.smugmug.com/photos/384746439_MCSvi-L.gif" alt="" width="450" height="179" /></a>[<a title="market driven ishikawa" href="http://photos.smugmug.com/photos/384746454_ASdyM-L.gif">click for larger version</a>]</p>
<p>For some problems (and some teams!) this may be enough information to provide the context to develop a product backlog.  And your agile team will move forward into managing their own execution from the product backlog stage.  For larger or more complex problems (such as this example), you will need more detailed communication before diving into user stories / use cases.</p>
<p>The same Ishikawa diagram, with more detail, looks like the following:</p>
<p><a href="http://photos.smugmug.com/photos/384746511_Un8EL-L.gif"><img class="alignnone" title="detailed market driven ishikawa" src="http://photos.smugmug.com/photos/384746482_NFmAJ-L.gif" alt="" width="450" height="179" /></a>[<a title="detailed market driven ishikawa" href="http://photos.smugmug.com/photos/384746511_Un8EL-L.gif">click for larger version</a>]</p>
<p>For the largest and most complex problems, this is still not enough.  You can take each major branch of the Ishikawa diagram and create a child Ishikawa diagram.  However, from an agile standpoint (as in &#8220;staying close to your market&#8221;), you don&#8217;t want to do all of that detailed analysis up front.  Once you&#8217;ve prioritized the main branches in your main Ishikawa diagram, you will want to go to the next level of detail only for the first branch.  You want to make sure that you are delivering &#8220;working software&#8221; &#8211; not &#8220;comprehensive documentation.&#8221;  Delay your detailed analysis to the last practical moment.</p>
<p>Assuming you chose &#8220;Improve Predictability of Sales&#8221; as the first market problem to address with your product.  And within that choice, you are going to tackle &#8220;Align Solutions to Customer Problems&#8221; first.  Your child Ishikawa diagram could look like the following:</p>
<p><a href="http://photos.smugmug.com/photos/384746474_PvgoW-L.gif"><img class="alignnone" title="decomposed ishikawa" src="http://photos.smugmug.com/photos/384746465_CZCFd-L.gif" alt="" width="450" height="183" /></a>[<a title="decomposed ishikawa market problem" href="http://photos.smugmug.com/photos/384746474_PvgoW-L.gif">click for larger version</a>]</p>
<p>At this point, you would start writing user stories (or defining use cases) around recording customer problems, searching for &#8216;comparable problems&#8217;, predicting the problems a customer might face (before your first sales call), etc.  Those user stories will then get mapped to releases and iterations, and their implementation will be managed through the daily standups.</p>
<h2>Outbound Communication of Agile Delivery</h2>
<p>This problem-decomposition approach was presented top-down, specifically around providing the needed context to an agile development team to guide their design and implementation activities, giving them the opportunity to intentionally solve valuable problems, in alignment with the company&#8217;s strategy.</p>
<p>This same approach can be leveraged in outbound communication of what the team will deliver (and when).  You can easily construct a product roadmap that is actually an &#8220;agile problem roadmap.&#8221; [Ed: can I trademark that?  Probably not, since <a title="agile roadmaps" href="http://www.enthiosys.com/problems-we-solve/agile-roadmaps/">Enthiosys already does it</a>, but without the word <em>problem</em>.]  In the short term, talk about specific problems (&#8220;Align Solutions to Customer Problems&#8221;) that you are solving.  In the longer range plan, talk about the next level of problems (&#8220;Improve Predictability of Sales&#8221;).  The team is not committing to a widget or feature.  The team is committing to providing a solution to a particular problem in a given release.</p>
<p>When you commit to a particular feature, you inhibit your ability to change as you learn.  And that&#8217;s bad.  You need to be able (after each iteration) to say &#8220;This problem is still valuable, but our previous idea about how to solve it turned out to be a bad idea.&#8221;  If you communicate at the feature level, you&#8217;ve added overhead to your process &#8211; you now have to manage expectations and update your communications, EVERY time you change designs.</p>
<p>You introduce another problem &#8211; these Ishikawa diagrams are so easy to read, and you&#8217;re now managing your roadmap based on problems being solved in a given iteration/release &#8211; should you tell everyone?  Many product managers sidestep the &#8220;Do we make our roadmap public?&#8221; question because they don&#8217;t create an easy to consume roadmap.  With this approach, you do.  So you have to decide if it needs to be a secret.</p>
<h2>Zero-Overhead Planning</h2>
<p>Early in this article, I said &#8220;agile team members rail against anything that looks like overhead.&#8221;  Creating Ishikawa diagrams is zero-overhead.  Or nearly so.  99% of the work that is displayed through the Ishikawa is work that you have to do anyway, to have <a title="successful products are intentional products" href="http://tynerblain.com/blog/2008/05/19/successful-products/">an intentional approach to product creation</a>.  The only overhead that is introduced is in the creation of <a title="how to create an ishikawa diagram" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">the Ishikawa diagram</a>.  If your thoughts aren&#8217;t already organized this way, you&#8217;re in trouble.  It takes almost no time to create the diagram that reflects what you should already be thinking.</p>
<p>And that qualifies as low-overhead.  And high value.  That should win over any resistance from the team.</p>
<h2>Conclusion</h2>
<p>As a product manager, you have to synthesize market problems, and develop a product vision to solve those problems that is aligned with your strategy.  As someone who is &#8220;part of&#8221; or &#8220;working with&#8221; (whichever matches your situation) an agile development team, you need a way to provide context to your implementation team.  That context can easily be conveyed with an Ishikawa diagram, with almost no incremental effort.  Your team can easily consume the diagram, and it gives them the freedom to explore different solution designs.  It also enables you to communicate your plans with the rest of the company (and externally, if desired).</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+Product+Management%3A+Providing+Context+http%3A%2F%2Fbit.ly%2FepEXar+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/10/01/agile-product-management-providing-context/&amp;t=Agile+Product+Management%3A+Providing+Context" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/10/01/agile-product-management-providing-context/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Buyer Personas And User Personas</title>
		<link>http://tynerblain.com/blog/2008/07/22/buyers-and-users/</link>
		<comments>http://tynerblain.com/blog/2008/07/22/buyers-and-users/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 03:35:24 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[adelle revella]]></category>
		<category><![CDATA[buyer persona]]></category>
		<category><![CDATA[david meerman scott]]></category>
		<category><![CDATA[kadient]]></category>
		<category><![CDATA[personas]]></category>
		<category><![CDATA[product marketing]]></category>
		<category><![CDATA[the new rules of marketing & pr]]></category>
		<category><![CDATA[user persona]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=691</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F07%2F22%2Fbuyers-and-users%2F", "shorturl": "http://bit.ly/gAUby8", "style": "big", "title": "Buyer Personas And User Personas" }); A lot of people stand up a variation of &#8220;If you build it, he will come&#8221; (from Field of Dreams) as a copy-writing hook for whatever they are about to tell you about creating products/services/whatever.  We&#8217;re no better.  We&#8217;re going 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%252F2008%252F07%252F22%252Fbuyers-and-users%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FgAUby8%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Buyer%20Personas%20And%20User%20Personas%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F07%2F22%2Fbuyers-and-users%2F", "shorturl": "http://bit.ly/gAUby8", "style": "big", "title": "Buyer Personas And User Personas" });</script></div>
<p><img src="http://sehlhorst.smugmug.com/photos/336964830_g9bY8-L.jpg" alt="buyer persona" width="250" height="200" /><img src="http://sehlhorst.smugmug.com/photos/336966309_nhLj5-L.jpg" alt="user persona" width="250" height="183" /></p>
<p>A lot of people stand up a variation of &#8220;If you build it, he will come&#8221; (from <a title="field of dreams" href="http://en.wikipedia.org/wiki/Field_of_Dreams"><em>Field of Dreams</em></a>) as a copy-writing hook for whatever they are about to tell you about creating products/services/whatever.  We&#8217;re no better.  We&#8217;re going to tell you that there is a big difference between the people who buy your product and the people who use your product.</p>
<blockquote><p>If you build what he thinks he wants, he will come.</p></blockquote>
<p>Actually, we need two catchy quotes.</p>
<blockquote><p>If you build what he actually needs, he will come back.</p></blockquote>
<p>For good measure, let&#8217;s plug my recent article in <em>The Pragmatic Marketer</em>, <a title="word of mouth marketing" href="http://www.pragmaticmarketing.com/publications/magazine/6/3/maximize-your-word-of-mouth-marketing-turning-users-into-fans"><em>Maximize Your Word of Mouth Marketing: Turning Users Into Fans</em></a> with a gratuitous quote.</p>
<blockquote><p>If you build it right, he&#8217;ll bring his friends.</p></blockquote>
<p>These quotes (the first two) highlight the differences between buyer personas and user personas.</p>
<p><span id="more-691"></span></p>
<h2>Personas Are Not Personas</h2>
<p>It can be incredibly confusing to anyone not already entrenched in product management or marketing, to hear someone talk about personas.  The buyer persona is a very different person than a user persona.  Understanding one influences how you sell a product, understanding the other is key to getting insights about how people will use your product.  There&#8217;s a bit of a catch-22 here &#8211; you have to sell the product (even free products have to be &#8220;sold&#8221;) before anyone ever uses the product.  And if you sell someone a product they hate, you&#8217;re worse off than if you never made the sale.</p>
<p>If you want to &#8220;test out&#8221; of the rest of this article, here&#8217;s the crux:</p>
<ul>
<li>A buyer wants a product that has capabilities that <em>match his mental model of what is required to solve</em> valuable problems.</li>
<li>A user needs a product that <em>solves </em>her valuable problems.</li>
</ul>
<h2>Peony Problem</h2>
<p><img src="http://sehlhorst.smugmug.com/photos/336967841_FUtpX-L.jpg" alt="florist" width="250" height="214" /></p>
<p>You are part of a booming florist business that has a problem.  Your profitability is too low on the flowers you sell.</p>
<p>One of your store managers, Eunice, looks at what you pay for flowers (very little), and what you sell them for (a lot).  She also determines that overhead (rent, salaries, etc) costs are reasonable.  However, Eunice notices that you throw away half of the flowers you buy.</p>
<p><img src="http://sehlhorst.smugmug.com/photos/336990281_DCWqc-L.gif" alt="florist problem ishikawa" width="450" height="227" /></p>
<p>[Note: Check out our article on defining problems to see how and why to create <a title="Ishikawa cause and effect diagram for defining problems" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">an Ishikawa diagram</a> like this one.]</p>
<p>Your company policy is to throw away flowers after you&#8217;ve had them for 2 days, because they wilt as soon as your customers get them home if you don&#8217;t.</p>
<p><img src="http://www.smugmug.com/photos/336996823_NAiH5-L.gif" alt="problem to be solved ishikawa diagram" width="444" height="219" /></p>
<h2>Amaranth Analysis</h2>
<p>Eunice also reviews orders and purchases of flowers &#8211; there&#8217;s no regularity in ordering.  The average number of flowers purchased every day is about the same, but the individual amounts vary wildly.  If you ordered fewer flowers, you would save on waste, but you would lose out on some sales, and risk damaging relationships with loyal customers.  She decides that the solution isn&#8217;t to just order fewer flowers (you need that inventory on hand), but to make the inventory last longer, so that you can have the same amount on hand, but order fewer flowers.  Eunice gets approval from the owner of the florist to purchase a walk-in cooler for storing the inventory, and then asks Fiona, the head of operations, to make it happen.</p>
<p>Brenda runs operations.  She handles accounting, and ordering of supplies, payroll, all the things that keep the business running.  She doesn&#8217;t know flowers, but she knows the flower business.  Brenda now has a problem &#8211; she needs to purchase a walk-in cooler.</p>
<p>Eunice is your user.</p>
<p>Brenda is your buyer.</p>
<p>This is the important distinction.  Eunice has a problem that is solved by <em>using</em> your product.  Brenda has a problem that is solved by <em>purchasing</em> your product.</p>
<h2>Helping The User</h2>
<p>If you&#8217;re a product manager, you already know how to help Eunice the user.  You <a title="using personas to define goals" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">define a <em>user</em> persona and her problems and goals</a>.  You <a title="three prioritization approaches" href="http://tynerblain.com/blog/2006/01/18/prioritizing-requirements-three-techniques/">prioritize those problems</a>, <a title="build a better product roadmap" href="http://tynerblain.com/blog/2008/04/28/dont-build-a-stupid-product-roadmap/">build a product roadmap</a>, and make sure <a title="interaction design and structured requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">your software process benefits from the user persona</a> you&#8217;ve defined.  Of course, <a title="personas overdone" href="http://tynerblain.com/blog/2006/12/14/overdoing-personas/">don&#8217;t overdo your persona development</a>.</p>
<p>But what do you do with a <em>buyer</em> persona?  If you apply product management first principles, you recognize that the buyer has a problem (Brenda needs to buy a solution for Eunice&#8217;s problem).  So, create a solution for that problem.  Marketing experts might not think about it that way, but that&#8217;s what they do.  They understand the perceptions in the minds of buyers, and design marketing campaigns &#8211; and influence product development &#8211; to make sure there is both a product and a campaign that addresses the buyer persona&#8217;s problems.</p>
<h2>Helping The Buyer</h2>
<p>Shaun Connolly sums up his approach with two quotes from a recent article:</p>
<blockquote><p><strong>For both proprietary and commercial open source software</strong>, the Product Manager needs to focus on <a href="http://productmanagementtips.com/2008/06/01/buyproducts/">creating a product that people will actually buy</a>! Plain and simple.</p>
<p>For any new product offering, one of the first places I focus is on understanding and documenting the <a href="http://www.buyerpersona.com/">Buyer Personas</a>. After all, how the heck are you going to create real value for customers if you don&#8217;t know who&#8217;s buying? User personas, while not the same, are also useful to understand.</p>
<p><cite><a title="Pdm article" href="http://connollyshaun.blogspot.com/2008/07/product-managers-chief-assholes-or.html">Product Managers: Chief *Holes or Value Creators?</a>, Shaun Connolly</cite></p></blockquote>
<p>Shaun is definitely stressing the importance of one side of our catch-22, getting that initial sale.  Note that Shaun also links to a good article by Gopal Shenoy, <a title="products customers will buy" href="http://productmanagementtips.com/2008/06/01/buyproducts/"><em>Build Products That Customers Will Buy&#8230;</em></a></p>
<p>OK, so what is a buyer persona?  Adele Revella has an entire blog dedicated to <a title="buyer personas" href="http://buyerpersonas.typepad.com/">buyer personas</a> (and an article devoted to answering the question &#8220;<a title="what is a buyer persona" href="http://www.buyerpersona.com/2006/11/whats_a_buyer_p.html">what is a buyer persona?</a>&#8221;</p>
<h2>Don&#8217;t Confuse The Buyers With The Users</h2>
<p>Adele has a <a title="persona misuse" href="http://www.buyerpersona.com/2008/07/personas-tell-t.html">great article lambasting some marketing work</a> that Microsoft has done for their CRM product &#8211; apparently posting videos of their buyer personas, and treating them as if they are user personas.  Adele is being gracious, I think, in suggesting that the mistake was merely in sharing the buyer personas externally, when they should be for internal use only.  I suspect that this team has mixed the concepts, since the &#8220;buyer persona&#8221; Adele uses as an example is describing her problems as a user.</p>
<p>In any case, it is disheartening to see anyone have (and share!) such a disparaging and condescending idea of who their users and/or buyers are.</p>
<h2>When Your Buyers ARE Your Users?</h2>
<p>David Meerman Scott just posted an article, <a title="buyer personas for saas" href="http://www.webinknow.com/2008/07/how-well-do-you.html"><em>How well do you know your buyer personas?</em></a>, where he shines the spotlight on <a title="Kadient" href="http://www.kadient.com/">Kadient</a>, a SaaS (software as a service) company.  Kadient helps sales people manage their sales collateral (RFPs, white papers, proposals, etc).  David&#8217;s article is the latest in his theme of the importance of focusing on buyer personas.  He and Kadient share a couple buyer persona examples for us.  As it turns out, the personas they shared happen to be both buyers and users.  There are probably also buyer-only personas that they could have picked, but this choice is great.  It acknowledges for us that your buyer can also be your user.</p>
<p>Considering that Adele&#8217;s article just warned us not to mix them up, consider this as a corrolary to the maxim &#8211; Don&#8217;t confuse buyers and users, except when they are the same person.</p>
<p>One of Kadient&#8217;s combination buyer + user personas is Anya.  Check out David&#8217;s article for the full details.  One thing David shares with us is Anya&#8217;s goals.  Remember from our example with Eunice and Brenda &#8211; Eunice (the user) has goals to solve problems with her work, and Brenda has the goal of solving Eunice&#8217;s problem.  With Anya, she has both user-goals and buyer-goals.</p>
<p>David&#8217;s example captures both, but it might be tricky to tease them apart.  As a buyer, Anya is trying to match a <em>mental model</em> of what will work.  As a user, she has specific objectives.  Here&#8217;s the goal section from Kadient&#8217;s persona:</p>
<blockquote><p>Anya needs to bring in the numbers every quarter, to remain secure in her position at the top of the sales performance chart. To do this, she knows that if she can spend less time doing administrative duties and looking for information and creating materials for her buyers, she can work more opportunities and maximize her face-time with customers. The service offerings she sells change frequently, and she knows she needs to be armed with the latest, most accurate messaging and content.</p></blockquote>
<p>Breaking it down into two goals, half-buyer and half-user:</p>
<ul>
<li>Buyer Goal: &#8220;she knows that if she can spend less time doing administrative duties and looking for information and creating materials for her buyers&#8221;</li>
<li>User Goal: &#8220;she can work more opportunities and maximize her face-time with customers&#8221;</li>
</ul>
<p>And</p>
<ul>
<li>Buyer Goal: &#8220;she knows she needs to be armed with the latest, most accurate messaging and content&#8221;</li>
<li>User Goal: &#8220;The service offerings she sells change frequently&#8221;</li>
</ul>
<p>This is a buyer persona example, and the buyer goals are explicit &#8211; &#8220;She knows..&#8221; is a clear indicator of her mental model of what she believes she needs to solve her problems.  That is the key information for properly marketing to Anya.</p>
<p>The user goals are not crisply defined, but support a statement from Anya&#8217;s &#8220;bio&#8221; &#8211; &#8220;Anya wants to ensure she always remains at the top of the team.&#8221;  One way she could do that is by maximizing face time with customers and working more opportunities (as a means to close more sales).  Anya also acknowledges a nuanced goal &#8211; her service offerings change frequently &#8211; and those changes presumably can negatively impact her ability to sell.  It is ok, for a buyer persona, that the user goals need a little more inference.  But that&#8217;s ok &#8211; the team at Kadient will be using this persona primarily to sell their services to Anya, not to design them.</p>
<p>Ideally, your buyer&#8217;s <em>mental model</em> of the needed solution will align well with the user&#8217;s problems.  That isn&#8217;t guaranteed, even when the buyer and the user are the same person.</p>
<h2>Summary</h2>
<ul>
<li>Buyer personas make purchases when products appear to address their internal view of what the problems are.</li>
<li>User personas love products when those products solve the real problems.</li>
<li>Don&#8217;t confuse buyers (who need to buy products to solve user problems) with users (who need to solve their own problems).</li>
<li>When buyers and users are the same people, acknowledge the buyer-goals distinctly from the user-goals.</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+Buyer+Personas+And+User+Personas+http%3A%2F%2Fbit.ly%2FgAUby8+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/07/22/buyers-and-users/&amp;t=Buyer+Personas+And+User+Personas" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/07/22/buyers-and-users/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Defining Problems at ProductCamp Austin 1</title>
		<link>http://tynerblain.com/blog/2008/06/23/defining-problems-at-pca1/</link>
		<comments>http://tynerblain.com/blog/2008/06/23/defining-problems-at-pca1/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 02:18:00 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Austin TX]]></category>
		<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[cause and effect diagram]]></category>
		<category><![CDATA[fishbone diagram]]></category>
		<category><![CDATA[ishikawa]]></category>
		<category><![CDATA[pca]]></category>
		<category><![CDATA[productcamp]]></category>
		<category><![CDATA[productcamp austin]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=687</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F06%2F23%2Fdefining-problems-at-pca1%2F", "style": "big", "title": "Defining Problems at ProductCamp Austin 1" }); Jun 14th was the first productcamp in Austin (and the second one anywhere).  It was a great event, and here&#8217;s the presentation that I did on how to define the strategic problems that drive our products. Defining Problems Here&#8217;s the presentation I [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F06%252F23%252Fdefining-problems-at-pca1%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Defining%20Problems%20at%20ProductCamp%20Austin%201%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F06%2F23%2Fdefining-problems-at-pca1%2F", "style": "big", "title": "Defining Problems at ProductCamp Austin 1" });</script></div>
<p><img src="http://www.productbeautiful.com/productcamp/big_banner.gif" alt="productcamp austin logo" width="650" height="127" /></p>
<p>Jun 14th was the first productcamp in Austin (and the second one anywhere).  It was a great event, and here&#8217;s the presentation that I did on how to define the strategic problems that drive our products.</p>
<p><span id="more-687"></span></p>
<h2>Defining Problems</h2>
<p>Here&#8217;s the presentation I gave at <a title="pca1" href="http://barcamp.org/ProductCampAustin">ProductCampAustin 1</a>, posted on slideshare.  Just click on the forward/back arrows in the center of the bottom of the image, and it will cycle through the presentation &#8211; you don&#8217;t even have to leave Tyner Blain.</p>
<div id="__ss_479341" style="width: 425px; text-align: left;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=defining-problems-1214103303491294-8" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=defining-problems-1214103303491294-8" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<div style="width: 425px; text-align: left;">
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img style="border:0px none;margin-bottom:-5px" src="http://static.slideshare.net/swf/logo_embd.png" alt="SlideShare" /></a> | <a title="View Defining Problems on SlideShare" href="http://www.slideshare.net/ssehlhorst/defining-problems?src=embed">View</a> | <a href="http://www.slideshare.net/upload?src=embed">Upload your own</a></div>
</div>
<h2>Following Along</h2>
<p>In keeping with the &#8220;don&#8217;t put a lot of words on your slides&#8221; tradition, the presentation is probably all but impossible to follow without some notes.  So here are some notes, organized by slide.  The presentation builds on concepts we&#8217;ve talked about here over the years, and in the notes below, I&#8217;ll link to some of those previous articles to provide more depth (instead of typing out everything I said).</p>
<ul>
<li><strong>Slide 1</strong>.  There are two key elements to achieving software product success.  Build the right stuff, and build it right.  This presentation is about building the right stuff.</li>
<li><strong>Slide 2</strong>.  Specifically, when we start a project, it is to achieve some business objective.  The challenge is to find the right level of abstraction for that objective.  &#8220;Increase shareholder value&#8221; is too nebulous, and &#8220;Replace a legacy system&#8221; is too lacking in context.  Today we will apply a very powerful, but simple technique to help define the business objectives at the right level of detail to be actionable, while providing the right context to validate that we&#8217;re doing the right thing. My goal is for everyone to leave here with a new skill that they can immediately apply.</li>
<li><strong>Slide 3</strong>.  Everyone has <a title="requirements documents from different perspectives" href="http://tynerblain.com/blog/2006/05/11/requirements-documents-one-mans-trash/">a different perspective on a software project</a>, and from those vantage points, perceives different elements of the project as the &#8220;why, what, and how&#8221; of the project.</li>
<li><strong>Slide 4</strong>.  Keeping in mind that people have different perspectives, let&#8217;s also look at a modified version of Karl Wiegers&#8217; <a title="structured requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">structured approach to requirements definition</a>.</li>
<li><strong>Slide 5</strong>.  Introducing the<a title="ishikawa fishbone cause and effect diagram" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/"> Ishikawa diagram</a>.</li>
<li><strong>Slide 6</strong>.  Set up the &#8220;deflated tires&#8221; problem from the article linked in (slide 5).</li>
<li><strong>Slide 7</strong>.  Showed the discovery process and representation of &#8220;real problems&#8221; closing out the theme from slides 5 and 6.</li>
<li><strong>Slide 8</strong>.  A real-world project I joined mid-stream for a client.  The project was a &#8220;collection of stuff&#8221; and no two people would give the same answer for &#8220;why are we doing it&#8221; and many people unashamedly admitted that they had no idea why.  No idea why!</li>
<li><strong>Slide 9</strong>.  Turns out, here&#8217;s what a view of the value for that program really looked like.  The team went from chaos to context.  Suddenly, scope discussions and prioritization decisions had a framework for validation.  There was also an organized way to begin completeness analysis.  Much easier to say &#8220;we&#8217;re getting this value&#8221; than to say &#8220;we&#8217;re doing these things &#8211; did we miss anything?&#8221;</li>
<li><strong>Slide 10</strong>.  I facilitated the folks in the room creating an Ishikawa from scratch.  We started with what we thought was the problem statement (provided by John Milburn from the back of the room) &#8211; &#8220;Traffic in Austin on Fridays is too bad.&#8221;  We ended with &#8220;John has work-life balance problems&#8221;, one of which comes from missing dinner with his wife, which can happen because of a combination of bad traffic and bad planning by John.  We also explored several solution-paths, including increasing the capacity of the roads and of the vehicles.  The ideas <em>clicked</em> for several people in the room.</li>
<li><strong>Slide 11</strong>.  Another real-world example, this one used in <a title="good product roadmap approach" href="http://tynerblain.com/blog/2008/04/28/dont-build-a-stupid-product-roadmap/">planning of a product roadmap for an 18-24 month view</a> of the problems the team was signing up to solve.</li>
<li><strong>Slide 12</strong>.  Special thanks to the sponsors that made our inaugural ProductCampAustin a success!  My prediction for the next one (fall/winter 2008): 250 attendees.  So if you&#8217;re the sponsoring type, start planning on how you can help out.</li>
</ul>
<p>Thanks again to everyone who attended, and special thanks to <a title="Seilevel home page" href="http://www.seilevel.com/index.php">Tal Boyd of Seilevel</a>, who video taped my whole presentation.  I just haven&#8217;t figured out how to split the 400+MB m4v file into something I can upload onto youtube.</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+Defining+Problems+at+ProductCamp+Austin+1+http%3A%2F%2Fbit.ly%2FdPHXIU+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/06/23/defining-problems-at-pca1/&amp;t=Defining+Problems+at+ProductCamp+Austin+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/2008/06/23/defining-problems-at-pca1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Defining Problems With Cause And Effect Diagrams</title>
		<link>http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/</link>
		<comments>http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/#comments</comments>
		<pubDate>Wed, 28 May 2008 02:09:23 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[cause and effect diagram]]></category>
		<category><![CDATA[fish bone diagram]]></category>
		<category><![CDATA[fishbone diagram]]></category>
		<category><![CDATA[ishikawa]]></category>
		<category><![CDATA[problem statement]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=683</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F05%2F27%2Fcause-and-effect-diagrams%2F", "style": "big", "title": "Defining Problems With Cause And Effect Diagrams" }); The Cause and Effect diagram is also known as a fish bone diagram, because it resembles the skeleton of a fish. Using a cause and effect diagram can be the most effective way to define the problems that you intend 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%252F2008%252F05%252F27%252Fcause-and-effect-diagrams%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Defining%20Problems%20With%20Cause%20And%20Effect%20Diagrams%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F05%2F27%2Fcause-and-effect-diagrams%2F", "style": "big", "title": "Defining Problems With Cause And Effect Diagrams" });</script></div>
<p><img src="http://sehlhorst.smugmug.com/photos/302602335_YEYkK-L.jpg" alt="fish head" width="250" height="187" /></p>
<p>The <em>Cause and Effect</em> diagram is also known as a fish bone diagram, because it resembles the skeleton of a fish.  Using a cause and effect diagram can be the most effective way to define the problems that you intend to solve with your product.  Get your stakeholders engaged in your program with this compelling visual!</p>
<p><span id="more-683"></span></p>
<h2>Getting To The Root Of The Problem</h2>
<p>In our recent article about <a title="problem statement tips" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">writing good problem statements</a>, we pointed out a common mistake people make with problem statements &#8211; they confuse the manifestation of a problem with a problem.</p>
<blockquote><p>Problem manifestation [<em>noun</em>] &#8211; an example of a way in which a problem is exhibited, without appreciating the true nature of the problem. Ex: The problem manifestation is that the tires on my car are under-inflated. The problem is that my car is too expensive to maintain.</p>
<p>This distinction is relevant. The cost of operating the car is too high. That is the problem. It happens to be that one reason that the cost is too high is under-inflated tires. If you focus your energy on getting properly inflated tires, it will help (by improving fuel economy a little, and by reducing the frequency of tire replacement) with costs anecdotally. But you will not have solved the problem that costs are too high. Unless you get lucky. Costs can be high because the engine is inefficient or damaged, the aerodynamics of the car are bad, or any of a number of reasons. If you solve <em>the problem</em> by addressing a single <em>manifestation</em> of the problem, without understanding the whole problem, it is only because of luck.</p>
<p><cite><a title="problem manifestations" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">Your Problem Statement is The Problem</a></cite></p></blockquote>
<p>In the comments on that article, <em>The Demon </em>points out that it is not always easy to identify the right level of abstraction for your problem.  The cause and effect diagram makes it brilliantly simple not only to get to the root of the problem, but to communicate this cause-and-effect hierarchy of problem decomposition.</p>
<h2>Cause And Effect Diagram Example</h2>
<p>The cause and effect diagram is so visceral that the easiest way to communicate how it works is to show an example.  Here&#8217;s what the cause and effect diagram would look like for the example problem above, where the cost of operating the car is too high.</p>
<p><img src="http://sehlhorst.smugmug.com/photos/302635390_W2GiV-O.jpg" alt="excessive car operating costs" width="450" height="269" /></p>
<p>[<a title="large excessive car costs example cause and effect diagram" href="http://sehlhorst.smugmug.com/photos/302635439_BqV4v-L.jpg">larger image</a>]</p>
<p>The main problem is that the cost of operation is too high.  This is the far-right, or fish-head part of the diagram (it is sometimes called a fish bone diagram).</p>
<p>The problem can be decomposed into three separate problems: spending too much on fuel, maintenance, and payments.  Each of those problems can be further decomposed.  Note that &#8220;under-inflated tires&#8221; appears twice &#8211; once as a cause of low miles per gallon (MPG) and once as an excess maintenance cost.</p>
<p>Alternately, you could recognize that spending too much on fuel could be due to lower fuel economy <em>or</em> excessively high prices.  You could then choose to decompose the problem slightly differently:</p>
<p><img src="http://sehlhorst.smugmug.com/photos/302640001_zmjrk-L.jpg" alt="alternate decomposition" width="350" height="175" /></p>
<p>[<a title="larger alternate decomposition of problem" href="http://sehlhorst.smugmug.com/photos/302640026_Au4VF-L.jpg">larger image</a>]</p>
<p>Either approach results in crystal clarity that <em>under-inflated tires</em> is one root cause of low fuel economy, which is one cause of excessive spending on fuel, which is one cause of excessive operating costs.  This visual approach helps significantly when trying to identify the right level of abstraction for expressing the problems in your problem statement.</p>
<h2>Problem Abstraction Is A Side Benefit</h2>
<p>The really cool part is that the help you get in finding the right level of abstraction for your problem is just icing on the cake.  [Ed: No jokes about fish-bone cake.  Ick!]</p>
<p>The real benefit comes in <a title="communicating with stakeholders" href="http://tynerblain.com/blog/2006/07/14/communicating-intent-with-stakeholders/">communicating</a> and <a title="completeness validation" href="http://tynerblain.com/blog/2006/07/06/requirement-completeness-validation-with-use-cases/">validating </a>the problem decomposition with your <a title="stakeholder problems" href="http://tynerblain.com/blog/2007/10/11/stakeholder-goals/">stakeholders</a>.</p>
<p>Someone questioned me once on <a title="writing passionate requirements" href="http://tynerblain.com/blog/2006/06/15/writing-passionate-requirements/">the value of writing <em>passionate</em> requirements</a>.  Show one of these to your team, and you&#8217;ll get enthusiastic, passionate responses.  You&#8217;ll get kudos from the business for demonstrating that you understand their needs.  You&#8217;ll get praise from the implementation team for providing them with context.</p>
<h2>Using Visio To Create A Cause And Effect Diagram</h2>
<p>Creating a cause and effect diagram in Microsoft Visio is really easy, there&#8217;s a built in template, and it&#8217;s a good one.  Create a new drawing and select the &#8220;Cause and Effect Diagram Shapes&#8221; template (under &#8220;Business Process&#8221;):</p>
<p><img src="http://sehlhorst.smugmug.com/photos/302607395_Bhv3f-L.jpg" alt="template selection in visio" width="444" height="189" /></p>
<p>Visio will create a new drawing with a blank cause and effect diagram set up for you:</p>
<p><img src="http://sehlhorst.smugmug.com/photos/302609064_ofhkB-L.jpg" alt="blank fish bone diagram" width="450" height="268" /></p>
<p>Fill in the boxes with the large problems.  To get to the next level of detail (such as &#8220;Fuel Economy is Too low&#8221; in the last example), select the &#8220;Primary Cause&#8221; shape and drag it onto the diagram.  Attach the arrowhead to one of the branches (the fish &#8220;ribs&#8221;) and start typing.  For once, Visio&#8217;s default layout is where you want it.</p>
<p><img src="http://sehlhorst.smugmug.com/photos/302649129_DwfMD-L.jpg" alt="primary cause visio shape" width="51" height="56" /></p>
<p>To get a secondary cause shape (such as &#8220;Bad Aerodynamics&#8221; in the last example), select the &#8220;Secondary Cause&#8221; shape and drag it onto the diagram.  Attach the arrowhead to the &#8220;primary cause&#8221; arrow you just created.</p>
<p><img src="http://sehlhorst.smugmug.com/photos/302649096_8QNyS-L.jpg" alt="secondary cause shape in visio" width="57" height="60" /></p>
<h2>Conclusion</h2>
<p>You already have a <a title="problem statement importance" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">good justification for defining problems</a> at the right level of abstraction.  Now you know how to easily create a cause and effect diagram to find the right problem definition.  As a bonus, communicating with stakeholders just got a lot easier &#8211; include this in your BRD.</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+Defining+Problems+With+Cause+And+Effect+Diagrams+http%3A%2F%2Fbit.ly%2FgRnkYo+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/&amp;t=Defining+Problems+With+Cause+And+Effect+Diagrams" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

