<?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; Requirements</title>
	<atom:link href="http://tynerblain.com/blog/category/requirements/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog</link>
	<description>Software product success.</description>
	<lastBuildDate>Thu, 11 Mar 2010 17:11:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Business Goals and Requirements</title>
		<link>http://tynerblain.com/blog/2010/03/11/goals-and-requirements/</link>
		<comments>http://tynerblain.com/blog/2010/03/11/goals-and-requirements/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 17:11:00 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[business goals]]></category>
		<category><![CDATA[business requirements]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[writing requirements]]></category>

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

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1174</guid>
		<description><![CDATA[
I came across a really interesting article LukeW.com, showing how making changes to the way an input form on a website increased interaction by 25 to 40%.  The changes reflect the value of thinking outside-in, investing in user experience, and performance measurement.
Bonus: the idea is cool.

Mad Libs Input Form
[full size image available in Luke's [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="mad libs pads" src="http://sehlhorst.smugmug.com/Other/blog/mad-libs-on-table/800579804_irVsp-O.jpg" alt="image of mad libs pads" width="250" height="187" /></p>
<p>I came across a really interesting article <a title="LukeW" href="http://www.lukew.com/">LukeW.com</a>, showing how making changes to the way an input form on a website increased interaction by 25 to 40%.  The changes reflect the value of thinking outside-in, investing in user experience, and performance measurement.</p>
<p>Bonus: the idea is cool.</p>
<p><span id="more-1174"></span></p>
<h2>Mad Libs Input Form</h2>
<p><img class="alignnone" title="mad libs form example" src="http://sehlhorst.smugmug.com/Other/blog/mad-libs-small/800576580_TZurw-O.png" alt="before and after screenshot of mad libs input form redesign" width="250" height="237" />[<a title="luke's article on mad libs input form" href="http://www.lukew.com/ff/entry.asp?1007">full size image available in Luke's article</a>]</p>
<p>The idea being presented is to replace the old boring web input form designed for a computer.  The new, fun form is a fill-in-the-blank (aka Mad Libs) layout.  The <a title="mad libs web form" href="http://www.lukew.com/ff/entry.asp?1007">article </a>is on <a title="About Luke" href="http://www.lukew.com/about/index.asp">Luke Wroblewski&#8217;s</a> site.  The team at Vast.com created and tested a version of this form for the Kelly Blue Book site.  [Luke cites Huffduffer.com as the first place where he saw this technique.] Thanks, Luke for sharing this with all of us!</p>
<h2>Outside-In Development</h2>
<p>Product managers are acutely aware of the need to solve market problems.  We are regularly reminded that we&#8217;re creating solutions for people in our markets who use our products to solve their problems. When we write requirements, we avoid writing design specifications, and thereby lose the ability to enforce that the proposed solutions also take an outside-in approach.  We <a title="prioritization example from an outside-in perspective" href="http://tynerblain.com/blog/2009/10/19/agile-prioritization/">maintain an outside-in perspective</a>, but we lost the ability to influence an outside-in aesthetic.</p>
<p>Note: Outside-In Software Development is a great book, <a title="outside-in software development book review" href="http://tynerblain.com/blog/2007/09/27/outside-in/">you should read it</a>.</p>
<p>That&#8217;s one area where user experience works well in concert with product management &#8211; assuring that the same drivers of <em>what</em> to build are informing the design of <em>how</em> it is built.</p>
<p>The genius (or at least elegance) of this Mad Libs form from Vast  / Kelly Blue Book is that it humanizes the experience of requesting that a nearby dealer contact you to discuss a possible purchase of a car from them.  The forms we&#8217;ve all had to fill out on countless web sites are very <em>inside-out</em>.  They expose the inner workings of the program &#8211; &#8220;gather this info, and that info, and this other info.&#8221;  Those forms force users to do what the program wants.  Blech.  The form that Ron Kurti designed, however, forces the program to do what the users want.  Huzzah!</p>
<h2>Bad Requirements Prevent Elegance</h2>
<p>I&#8217;ve written about the importance of <a title="writing requirements without design" href="http://tynerblain.com/blog/2009/11/03/design-free-requirements/">writing design-free requirements</a> several times.  Avoiding design constraints in your requirements is even one of the pillars of the <a title="twelve rules of writing good requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">big 10 rules of writing requirements</a>.</p>
<p>If you had written the requirements for this <em>contact the dealer</em> page, would you have specified the design of the form?</p>
<p>Most of the requirements analysts I&#8217;ve worked with would have.  I&#8217;ve even worked with companies that have developed templates / stencils defining <em>how</em> these interface specifications must be documented &#8211; requiring that all the fields be aligned, with specific pixel gaps, etc.</p>
<p>If you had specified the design (read: limited the choices of the designer), you would have prevented this solution.</p>
<p>Mr. Kurti&#8217;s elegant solution is clearly better.</p>
<p>One way to write the requirements that would not have prevented this solution would be with a <a title="user stories compared to use cases" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">user story and acceptance criteria</a>:</p>
<blockquote><p>As a car-shopper, I want to engage a car dealer, once every few years, so that I can purchase the car I selected.</p>
<ul>
<li>The car-shopper can provide his contact info (name, email, phone) for the car dealer.</li>
<li>The system will display the information identifying the selected vehicle.</li>
<li>The system will display the information identifying the dealer being contacted.</li>
<li>The system will include an opt-in newsletter-subscription option.</li>
<li>The system will notify the specified dealer when the car-shopper indicates.</li>
</ul>
</blockquote>
<p>The user story nudges the developers into an outside-in perspective by emphasizing the <a title="user goals vs corporate goals" href="http://tynerblain.com/blog/2009/06/22/user-goals-and-corporate-goals/">user&#8217;s goal</a>.  The <a title="acceptance criteria can be testable, non-functional requirements" href="http://tynerblain.com/blog/2009/02/10/agile-non-functional-reqs/">acceptance criteria</a> make it clear that <em>any</em> solution that meets those criteria is acceptable to the product manager.  It allows the interaction designer to create a compelling solution, rather than forcing him to recreate a boring experience.</p>
<h2>Measurement Rocks</h2>
<p>The Vast team measured the impact of making this change to their form, and saw between a 25% and 40% increase in conversion (people contacting dealers versus people abandoning the process when they see the form).  That&#8217;s <strong>a</strong> <em><strong>lot</strong></em><strong> more leads</strong> for the dealers, and presumably a lot more money for Kelly Blue Book and Vast.  This is a great example of how you can <a title="measuring the ROI of design" href="http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/">measure the impact of investing in user experience</a>, because it should spark ideas for you.</p>
<p><strong>What can you measure and test and improve?</strong></p>
<p><strong><span style="font-weight: normal;">Now <em>that&#8217;s </em><a title="definition of return on investment" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">ROI</a> for you.</span></strong></p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Measuring+Great+Design+%E2%80%93+Mad+Libs+Input+Form+http://bit.ly/9nBLX9+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2010/03/01/measuring-interaction-design/&amp;t=Measuring+Great+Design+%E2%80%93+Mad+Libs+Input+Form" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/03/01/measuring-interaction-design/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Complete Requirements</title>
		<link>http://tynerblain.com/blog/2010/02/23/complete-requirements/</link>
		<comments>http://tynerblain.com/blog/2010/02/23/complete-requirements/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:01:54 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Kano Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[complete requirements]]></category>
		<category><![CDATA[rules of requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1168</guid>
		<description><![CDATA[
You give your requirements to the engineering team, and they look complete.  The team builds your product, you launch it and the market soundly rejects it.  Why?  Because your requirements weren&#8217;t complete &#8211; they didn&#8217;t actually solve the problem that needed to be solved.

Complete Requirements &#8211; Revisiting
Going back almost four years, I wrote Writing Complete [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="big ten rules of requirements logo" src="http://sehlhorst.smugmug.com/photos/128628589-M.png" alt="big ten rules of writing requirements logo #5" width="250" height="250" /></p>
<p>You give your requirements to the engineering team, and they <em>look</em> complete.  The team builds your product, you launch it and the market soundly rejects it.  Why?  Because your requirements weren&#8217;t <em>complete</em> &#8211; they didn&#8217;t actually solve the problem that needed to be solved.</p>
<p><span id="more-1168"></span></p>
<h2>Complete Requirements &#8211; Revisiting</h2>
<p>Going back almost four years, I wrote <em><a title="writing complete requirements" href="http://tynerblain.com/blog/2006/06/08/writing-complete-requirements/">Writing Complete 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.  That article centered on two key ideas of requirements completeness.</p>
<ul>
<li>Data, not opinion, is the most important input into determining completeness.</li>
<li>There is no <em>absolute </em>way to determine the completeness of your requirements in advance.</li>
</ul>
<p>Completeness is best measured by market acceptance, so technically you can&#8217;t know if your requirements were complete until your customers buy (or fail to buy) your product.  This doesn&#8217;t mean you should give up on this <em>rule</em> of requirements &#8211; you can still focus on, and improve, the completeness of your requirements.</p>
<h2>Objective and Heuristic Assessment</h2>
<p><img class="alignnone" title="raven" src="http://sehlhorst.smugmug.com/Other/blog/raven/795282939_wKV8c-O.jpg" alt="picture of raven with a blue eye" width="250" height="250" /></p>
<p>Given a market problem and the associated requirements (which you can argue are actually the same thing), you can review those requirements to determine if they objectively <em>appear to be</em> complete.  This assessment is based on what you objectively know about your market (needs, opportunity costs, competitive alternatives, etc).  You can also apply heuristic, or logical analysis to identify <em>gaps</em> in the language of your requirements.</p>
<p><strong>Objective assessment</strong> is the application of market knowledge (data) to determine if the nature of the problem is being addressed completely by your requirements.  A bird-feeding maven would know that the requirements for your bird feeder would be incomplete if they didn&#8217;t address the problem of squirrels stealing food from the birds.</p>
<p><strong>Heuristic analysis </strong>is the identifications of logical omissions in your requirements, without the need to apply market insights.  A logician would know that the requirements for your bird feeder were incomplete if they didn&#8217;t address the need to refill an empty feeder.</p>
<p>When you&#8217;re writing requirements, you need to do both.  Heuristic analysis of your requirements will identify where your requirements do not fully solve the problems you already know about &#8211; an eCommerce checkout process without the ability to receive payment, for example.  Objective assessment will help you identify the problems that you overlooked but need to solve &#8211; the need to allow customers to have different billing and shipping addresses when placing an order online, for example.</p>
<p><strong>Complete Requirements for Incomplete Solutions</strong></p>
<p><img class="alignnone" title="gummy worms" src="http://sehlhorst.smugmug.com/photos/415923338_gzWKd-L.jpg" alt="image of worms on the table - illustrating a metaphor" width="250" height="187" /></p>
<p>Don&#8217;t confuse having complete <em>requirements</em> (a good thing) with completely solving a problem (not always a good thing).  In agile development, the idea of <a title="satisficing with sprints" href="http://tynerblain.com/blog/2008/11/12/satisficing-sprints/">satisficing is key to scoping individual iterations</a>.  The idea, simply put, is to solve <em>enough of the problem</em>, and not delay delivery (and value) until you can build a solution to the entire problem.  Because of the law of diminishing returns, for many market problems, there is little or no incremental value in solving the entire problem.  Those resources can be better applied to solving additional problems.</p>
<p><a title="kano analysis webinar" href="http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/">Kano analysis</a> provides a framework for identifying which market problems <em>must be</em> completely solved, and which ones have a <em>more is better</em> characteristic.  In practice, <em>more is better</em> problems exhibit the law of diminishing returns, and should not be &#8220;completely&#8221; solved.</p>
<p><img class="alignnone" title="kano analysis - more is better" src="http://sehlhorst.smugmug.com/Other/blog/more-is-bettersmall/795296523_Y2haG-O.png" alt="diminishing returns nature of real world features" width="450" height="336" /> [<a title="kano analysis - more is better" href="http://sehlhorst.smugmug.com/Other/blog/more-is-betterbig/795296527_3Y9YM-O.png">larger image</a>, or view the entire <a title="Kano Analysis for Product Managers" href="http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/">Kano analysis presentation</a>]</p>
<h2>Conclusion</h2>
<p>Complete Requirements are requirements that</p>
<ul>
<li>Identify all of the market problems that need to be solved and their nature (absolute vs. diminishing returns).</li>
<li>Are logically complete in their coverage / articulation of those market needs.</li>
</ul>
<p>To objectively improve the completeness of your requirements, apply market data in an assessment of your requirements.  To heuristically improve the completeness of your requirements, look for logical inconsistencies and gaps in reasoning or coverage.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Complete+Requirements+http://bit.ly/cgxzsL+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/02/23/complete-requirements/&amp;t=Complete+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/02/23/complete-requirements/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Most Engaging Articles of 2009</title>
		<link>http://tynerblain.com/blog/2010/01/05/most-engaging-articles-of-2009/</link>
		<comments>http://tynerblain.com/blog/2010/01/05/most-engaging-articles-of-2009/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 07:00:18 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Administrivia]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[top ten list]]></category>
		<category><![CDATA[tyner blain]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1161</guid>
		<description><![CDATA[
Engagement &#8211; that&#8217;s what this whole product management blogging thing is about.  Check out what Tyner Blain readers found to be the most engaging articles in 2009.
Deep Dives

If you&#8217;re new to Tyner Blain, you may be surprised by the length of the articles here.  I joke that they are long because I don&#8217;t have time [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="engagement" src="http://sehlhorst.smugmug.com/Other/blog/engagement-ring/757754045_4RPCx-O.jpg" alt="" width="250" height="190" /></p>
<p>Engagement &#8211; that&#8217;s what this whole product management blogging thing is about.  Check out what Tyner Blain readers found to be the most engaging articles in 2009.</p>
<h2><span id="more-1161"></span>Deep Dives</h2>
<p><img class="alignnone" title="diving deep" src="http://sehlhorst.smugmug.com/Other/blog/diving/757757107_gNAMt-O.jpg" alt="" width="250" height="187" /></p>
<p>If you&#8217;re new to Tyner Blain, you may be surprised by the length of the articles here.  I joke that they are long because I don&#8217;t have time to edit.  <a title="Stewart on Twitter" href="http://twitter.com/stewartrogers">Stewart Rogers</a> jokes that they are long because I&#8217;m incapable of writing a short article.  If you&#8217;ve been here a while, you know what you&#8217;re in for.  If you&#8217;ve been here a <em>long</em> while, then you&#8217;re glad (like me) that I don&#8217;t write one per day any more.</p>
<p>Product Management is simultaneously a broad and deep discipline, requiring us to have a breadth of perspective combined with a depth of insight.  We then have to apply that in a market context, effectively navigating the political waters of our organizations.  Most of the articles here either try to skim the breadth of a range of related topics, or plumb the depths of a single topic.  Doing that in under a thousand words is pretty hard.  Most of the articles here also link to other articles, to try and provide even more depth and context, and encourage additional critical thinking.</p>
<p>One measure of the<em> quality</em> of the articles here is how often they stimulate readers to read further, or dive deeper into the topics.  While web analytics won&#8217;t allow us to measure how thought-provoking an article is, we can look to see how many people dive into the linked articles, versus how many people move on to something else.  We can measure the <em>bounce rate</em> of an article to see how often people leave a page without following any of the &#8220;tell me more&#8221; links.</p>
<p>Looking at ~170,000 page views at Tyner Blain in 2009, narrowed down to only those articles with at least 100 page views, here is the top-ten list of most engaging (or &#8220;least abandoned&#8221; if you&#8217;re a &#8220;cup is half empty&#8221; person) articles:</p>
<ol>
<li><a title="Introduction to a series of articles on use cases" href="http://tynerblain.com/blog/2005/12/18/use-case-series-introduction/">Use Case Series: Introduction</a>: A collection of articles on the &#8220;traditional&#8221; forms of use cases &#8211; informal, formal, UML.</li>
<li><a title="agile development of use cases" href="http://tynerblain.com/blog/2007/04/02/agile-development-of-use-cases/">Agile Development of Use Cases</a>: A dive into the dynamics and cadence of an agile process for developing use cases.</li>
<li><a title="Managing Market Data" href="http://tynerblain.com/blog/2008/08/19/managing-market-data/">How Do </a><em><a title="Managing Market Data" href="http://tynerblain.com/blog/2008/08/19/managing-market-data/">You</a></em><a title="Managing Market Data" href="http://tynerblain.com/blog/2008/08/19/managing-market-data/"> Manage Market Data?</a>: A collection of articles exploring different market-immersion techniques in depth.</li>
<li><a title="Scheduling Requirements Changes" href="http://tynerblain.com/blog/2006/04/11/scheduling-requirements-changes-part-2/">Scheduling Requirements Changes &#8211; Part 2</a>: A focus on practical techniques for managing change with an agile development process.</li>
<li><a title="BPMN Mea Culpa" href="http://tynerblain.com/blog/2006/08/22/yesterdays-bpmn-post-was-a-big-fat-lie/">Yesterday&#8217;s BPMN Post Was A Big Fat Lie</a>: A mea culpa and clarification of interest to folks following the <a title="Introduction to BPMN" href="http://tynerblain.com/blog/2006/07/18/foundation-series-business-process-modeling/">BPMN</a> Series.</li>
<li><a title="why ask why?" href="http://tynerblain.com/blog/2005/12/13/everything-i-needed-to-know-i-forgot-in-kindergarden/">Everything I Needed To Know I Forgot in Kindergarten</a>: Why asking <em>why?</em> is important.</li>
<li><a title="Plan Your Sprint by ROI" href="http://tynerblain.com/blog/2008/10/16/planning-sprints-by-roi/">Plan Your Next Sprint by ROI &#8211; Part 1</a>: Prioritizing by <em>Bang for the Buck</em>, not just <em>Bang</em>.</li>
<li><a title="10 Agile Mistakes" href="http://tynerblain.com/blog/2007/01/03/going-agile-ten-common-mistakes/">Ten Common Mistakes of Going Agile</a>: A collection of articles about common pitfalls encountered when adopting agile practices.</li>
<li><a title="Never Completing a Project" href="http://tynerblain.com/blog/2007/08/06/perpetually-almost-finished-projects/">Perpetually </a><em><a title="Never Completing a Project" href="http://tynerblain.com/blog/2007/08/06/perpetually-almost-finished-projects/">Almost</a></em><a title="Never Completing a Project" href="http://tynerblain.com/blog/2007/08/06/perpetually-almost-finished-projects/"> Finished Projects</a>: Organizing a project with discrete deliverables and rolling-wave planning to avoid the &#8220;90% done, 90% remaining&#8221; problem.</li>
<li><a title="Timeboxes are better than the Iron Triangle" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">How To Use Timeboxes for Scheduling Software Delivery</a>: One of my personal favorites.  A rational approach to making trade-offs when your &#8220;perfect&#8221; plan has to change.</li>
</ol>
<p>OK Stewart, that&#8217;s only 519 words.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Most+Engaging+Articles+of+2009+http://bit.ly/6vlxog+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/01/05/most-engaging-articles-of-2009/&amp;t=Most+Engaging+Articles+of+2009" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/01/05/most-engaging-articles-of-2009/feed/</wfw:commentRss>
		<slash:comments>1</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[
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.
Attainable Requirements &#8211; Revisiting
A little over three [...]]]></description>
			<content:encoded><![CDATA[<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>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Attainable+Requirements+http://bit.ly/8RT4vE+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/11/30/attainable-requirements/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Design-Free Requirements</title>
		<link>http://tynerblain.com/blog/2009/11/03/design-free-requirements/</link>
		<comments>http://tynerblain.com/blog/2009/11/03/design-free-requirements/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 16:16:06 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[big ten rules]]></category>
		<category><![CDATA[product management and design]]></category>
		<category><![CDATA[rules of requirements]]></category>
		<category><![CDATA[rules of writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1106</guid>
		<description><![CDATA[
Design-Free requirements are important for two reasons, and hard for two other reasons.
Design-free requirements are hard because you &#8220;know what you want&#8221; when you should be documenting &#8220;why you want it.&#8221;  Writing design-free requirements can be hard when you don&#8217;t trust your development team to &#8220;do the right thing&#8221; even though it is not your [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Design-Free Requirements Logo" src="http://sehlhorst.smugmug.com/photos/128628560-M.png" alt="" width="250" height="250" /></p>
<p>Design-Free requirements are important for two reasons, and hard for two other reasons.</p>
<p>Design-free requirements are hard because you &#8220;know what you want&#8221; when you should be documenting &#8220;why you want it.&#8221;  Writing design-free requirements can be hard when you don&#8217;t trust your development team to &#8220;do the right thing&#8221; even though it is not your job to design the solution.</p>
<h2><span id="more-1106"></span>Design-Free Requirements &#8211; Revisiting</h2>
<p><img class="alignnone" title="alphabet soup" src="http://sehlhorst.smugmug.com/photos/89784885-M.jpg" alt="" width="250" height="187" /></p>
<p>It has been three years since I wrote <em><a title="Separating Requirements from Design" href="http://tynerblain.com/blog/2006/06/02/writing-design-free-requirements/">Writing Design-Free Requirements</a></em> as part of <em><a title="The rules of writing requirements" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">The Big Ten Rules of Writing Requirements</a></em>.  In that time, agile development practices have moved from being an esoteric development methodology to being the topic on the tips of everyone&#8217;s tongues as executives and organizations try to either (1) get the benefits of the state of the art in software-development process or (2) do something shiny and fashionable.</p>
<p>The previous article centered on elements of designs within MRD, PRD, and SRS artifacts.  A regular <a title="Alphabet Soup of Requirements Artifacts" href="http://tynerblain.com/blog/2006/08/24/alphabet-soup/">alphabet soup of artifacts</a>.  Honoring the <a title="agile manifesto - Alistair Cockburn speaks" href="http://tynerblain.com/blog/2006/05/10/agile-values-alistair-cockburn-on-the-agile-manifesto/">values behind the agile manifesto</a> encourages us to emphasize <em>working software</em> over <em>comprehensive documentation</em>.  In that light, we&#8217;ll take a &#8220;what is needed&#8221; approach to talking about how requirements, design, and implementation are all needed &#8211; rather than issue an edict about where that information should be captured.</p>
<h2>Agile Development Inputs</h2>
<p><strong>When creating software, someone needs to know:</strong></p>
<ul>
<li>What <a title="solve problems, don't address problem manifestations" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">problems are being solved</a>, and how important (valuable) they are to be solved.</li>
<li><a title="defining personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">Who has the problems</a> and who is using the software to (help) solve those problems.</li>
<li><a title="defining constraints" href="http://tynerblain.com/blog/2007/11/08/abilene-paradox/">What constraints limit the space</a> that defines the universe of possible viable solutions.</li>
<li>What <a title="nonfunctional requirements and acceptance criteria in agile" href="http://tynerblain.com/blog/2009/02/10/agile-non-functional-reqs/">acceptance criteria</a> define if the delivered solution will be acceptable.</li>
</ul>
<p><strong>Subject to those inputs, someone needs to make design decisions:</strong></p>
<ul>
<li>User experience design -<a title="user interaction design" href="http://tynerblain.com/blog/2006/03/07/interaction-design-explained-by-alan-cooper/"> what interactions</a> will a user of our solution love?</li>
<li>Program design &#8211; how (in a nuts and bolts way) will our solution <a title="feature-driven design explained" href="http://tynerblain.com/blog/2006/03/27/foundation-series-feature-driven-development-fdd-explained/">function</a>?</li>
</ul>
<p>When talking about agile and talking about design, we should take a look at how Kent Beck and Alan Cooper, as respective though leaders in each space, view this.</p>
<blockquote><p>Cooper doesn’t talk much about creating the requirements to support the daily use scenarios – he proposes moving directly into design of the solution. This differs from the more traditional technique of <a style="color: #0000aa; text-decoration: none; padding: 0px; margin: 0px;" title="Use cases are supported with functional requirements" href="http://tynerblain.com/blog/2006/02/10/writing-functional-requirements-to-support-use-cases/">writing functional requirements to support use cases</a>. Cooper also breaks down design into two components – program design and interaction design. Program design is everything you don’t see. Interaction design is everything you do see.</p>
<p>[...]</p>
<p>Cooper argues that designing the interaction should happen before any code is written. He uses a construction analogy to drive home his perspective – you can’t pour the concrete before you build the forms. Kent Beck, founder of the XP programming philosophy disagrees with the premise. Beck believes that the cost of changing software is low, and the imagery Cooper uses is hyperbole. We touch on, and <a style="color: #0000aa; text-decoration: none; padding: 0px; margin: 0px;" title="Cooper vs Beck" href="http://tynerblain.com/blog/2006/03/07/interaction-design-explained-by-alan-cooper/">link to that debate in this post</a>.</p>
<p><cite><a title="Overview of the interaction design process" href="http://tynerblain.com/blog/2006/03/21/interaction-design-process-overview/">Interaction Design Process Overview</a></cite></p></blockquote>
<p>I don&#8217;t believe that Beck is arguing for &#8220;don&#8217;t do design&#8221; &#8211; I believe he is arguing for &#8220;don&#8217;t do <em>big upfront design</em> that would delay implementation.&#8221;  He&#8217;s championing the agile values that emphasize creating working software and responding to change.  I can imagine him saying &#8220;no one will buy a design, they want a solution.&#8221;  Cooper&#8217;s point is that create a solution without first understanding how someone will use it, you can&#8217;t create a great product.</p>
<p>Program design has many <em>hidden</em> impacts &#8211; cost of maintenance, cost to change, and the performance of the solution.  You can have a design (or architecture) that makes everything easier to do in the future &#8211; at the cost of delaying the delivery of anything.  Or you can have a design that minimizes the time to deliver the first thing, while increasing the cost to deliver any particular next thing.  Or you can design a solution that falls somewhere between those extremes.</p>
<p>If you say &#8220;we don&#8217;t do design&#8221; you&#8217;re lying.  Every solution includes design.  Your team&#8217;s design process may be &#8220;big and upfront&#8221; or it could be a couple sketches on a whiteboard, or some email exchanges.  You may create storyboards and wireframes.  Or design may be the thing that happens right before the programmer&#8217;s fingers strike the keys.  Design may be explicit or it may be implicit &#8211; but it never &#8220;doesn&#8217;t happen.&#8221;</p>
<p>In the movie Amadeus, Salieri is astounded that there are no rough drafts of Mozart&#8217;s compositions.  That&#8217;s because Mozart did the design in his head, not because he didn&#8217;t do design.  I&#8217;ve worked with programmers who&#8217;s &#8220;implicit designs&#8221; were great, but that is the <em>exception</em>, not the rule.</p>
<h2>Who Owns Design?</h2>
<p>Since design happens <em>sometime before fingers strike the keyboard</em>, the real question is &#8211; &#8220;who owns the design?&#8221;</p>
<ul>
<li>You have a product manager developing an understanding of market problems, and prioritizing the problems that should be solved with your product.</li>
<li>You may have a product owner managing the backlog and clarifying those requirements (problems) for the development team.</li>
<li>You may have an interface (or interaction) designer or team of designers who are broadly responsible for &#8220;how users interact with our products.&#8221;</li>
<li>You may have an architect or lead engineer who is responsible for the &#8220;big picture design&#8221; of how your product works.</li>
<li>You have developers and testers who are responsible for delivering your product. [Note: coding without testing is like typing code without compiling - <em>maybe</em> it works, but probably not.]</li>
</ul>
<p>You may not have distinct individuals with each of these titles &#8211; every small team I&#8217;ve worked with has people wearing multiple hats.  This is especially true when you have an agile team full of <a title="specialized generalists and stagging an agile team" href="http://tynerblain.com/blog/2008/02/14/specializing-generalists/">specializing generalists</a> &#8211; any given story (or task) may have a different architect and different implementer.  I&#8217;ve only worked with one company where the architects are NOT part of the development team.  If your team is set up that way, please comment below &#8211; I had never seen that before, and I&#8217;m not convinced that it is the best way to organize &#8211; what have your experiences been?</p>
<p>Generally, &#8220;program design&#8221; is clearly owned by the development team &#8211; and product managers (and product owners) know better than to specify program design in their requirements.  Neither the lead engineer nor the product manager believes that the product manager is a <em>better</em> programmer &#8211; so the product manager better not be <a title="requirements versus design" href="http://tynerblain.com/blog/2006/02/11/requirements-vs-design-which-is-which-and-why/">specifying program design and mislabeling it as requirements</a>.  Coincidentally, Steve Johnson, at Pragmatic Marketing has a post running right now with a bit of a <a title="requirement or design?  a quiz" href="http://pragmaticmarketing.typepad.com/productmarketing/2009/11/lets-play-req-or-spec-duplicate-images.html">quiz &#8211; is this a req(uirment) or a spec (design)</a>?</p>
<p>Where the line is more blurred is around interface and/or interaction design.  Some development teams have interface designers as part of the team.  Some companies organize with interface design as a &#8220;shared service&#8221; within the company.  Either approach can be the &#8220;right one&#8221; &#8211; it depends on too many details to make a sweeping generalization.  When the designers are members of the development team, the solution (from a product management perspective) is the same &#8211; the &#8220;team&#8221; is responsible for all design.  When the designers are not part of the development team, the developers have to consume two sets of guidance &#8211; &#8220;solve this problem&#8221; from product management, and &#8220;the solution needs to look like / act like this&#8221; from the designers.</p>
<p><a title="ux and product management collaboration" href="http://tynerblain.com/blog/2007/03/05/product-management-and-ux/">Collaboration between product management and user experience</a> people is the ideal solution.  The &#8220;requirements&#8221; and &#8220;design&#8221; inputs to the development team are comprehensive and consistent.</p>
<h2>Design-Free Requirements</h2>
<p>There are benefits &#8211; especially when being agile and <em>minimizing</em> documentation &#8211; to delivering requirements and design <em>at the same time</em>.  Just don&#8217;t do it by embedding design constraints within the requirements.</p>
<ul>
<li>When people on your team misinterpret design as requirements, they are unnecessarily constrained.</li>
<li>As a product manager &#8211; are you the best designer on your team?  If you&#8217;re busy designing, who&#8217;s product managing?</li>
</ul>
<p>This is trickiest when writing use cases &#8211; sequencing a set of interactions <em>is</em> interaction design.  That is one benefit of<a title="user stories vs use cases" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/"> writing a user story instead of a use case</a>.  An approach that has worked well for me with multiple teams is to deliver user stories (requirements) combined with storyboards (interaction design) and wireframes (interface design).  When details are needed (usually when &#8220;changing&#8221; versus &#8220;creating&#8221; an interface), screenshots can replace wireframes.  When business processes are complicated, process flows can replace storyboards.</p>
<p>Just don&#8217;t embed the designs within the requirements.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Design-Free+Requirements+http://bit.ly/3BuFst+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/03/design-free-requirements/&amp;t=Design-Free+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/11/03/design-free-requirements/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Kano Analysis for Product Managers</title>
		<link>http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/</link>
		<comments>http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 02:32:01 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Kano Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[kano]]></category>
		<category><![CDATA[Kano analysis]]></category>
		<category><![CDATA[kano analysis webinar]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1070</guid>
		<description><![CDATA[
Kano Analysis, while initially created to understand customer satisfaction with features, can be used by product managers to better understand customer problems.  I gave a presentation last week for the Product Management View webinar series on Kano Analysis for product managers.
Kano Analysis &#8211; The Webinar
You can watch (flash) or listen to (mp3) the webinar (just [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="ballbarrow" src="http://sehlhorst.smugmug.com/photos/664407742_XakMo-O.jpg" alt="" width="203" height="152" /></p>
<p>Kano Analysis, while initially created to understand customer satisfaction with <em>features</em>, can be used by product managers to better understand customer <em>problems</em>.  I gave a presentation last week for the Product Management View webinar series on Kano Analysis for product managers.</p>
<h2><span id="more-1070"></span>Kano Analysis &#8211; The Webinar</h2>
<p>You can watch (flash) or listen to (mp3) the webinar (just under an hour) at the Product Management View webinar page for the <a title="Kano Analysis webinar" href="http://grandview.rymatech.com/pmv/webinars/2009/09/kano-analysis.php">Kano Analysis presentation</a>.  I delivered the webinar on Sep 23rd, 2009.  Thanks <a title="Val on Twitter" href="http://twitter.com/valworkman">Val Workman</a> for inviting me to join the group and share an hour with a bunch of great folks.  Also, thanks to the people who asked questions, tweeted, and commented on the presentation.  I really appreciate it.</p>
<h2>Kano Analysis &#8211; The Slides</h2>
<p>If you want to flip through the slides to get a feel for the treatment I gave to Kano Analysis before committing an hour to the webinar, you can do so right here (or view the <a title="Kano Analysis for Product Managers" href="http://www.slideshare.net/ssehlhorst/kano-analysis20090923">Kano Analysis slides on slideshare.net</a>).</p>
<div id="__ss_2085782" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Kano Analysis.20090923" href="http://www.slideshare.net/ssehlhorst/kano-analysis20090923">Kano Analysis.20090923</a><object style="margin:0px" 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.slidesharecdn.com/swf/ssplayer2.swf?doc=kanoanalysis-20090923-090928212334-phpapp02&amp;stripped_title=kano-analysis20090923" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=kanoanalysis-20090923-090928212334-phpapp02&amp;stripped_title=kano-analysis20090923" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/ssehlhorst">Scott Sehlhorst</a>.</div>
</div>
<p>Thanks again to everyone, and if you have any feedback, include it below or on the PMV site.  Several links to other articles about Kano Analysis are in the comments on the PMV page, if you want to do further research.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Kano+Analysis+for+Product+Managers+http://bit.ly/bLxee+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/09/28/kano-analysis-for-product-managers/&amp;t=Kano+Analysis+for+Product+Managers" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/09/28/kano-analysis-for-product-managers/feed/</wfw:commentRss>
		<slash:comments>0</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[
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 solved.

Concise Requirements &#8211; Revisiting

In the three years since we last looked at [...]]]></description>
			<content:encoded><![CDATA[<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>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Concise+Requirements+http://bit.ly/pZRj8+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/08/03/concise-requirements/feed/</wfw:commentRss>
		<slash:comments>21</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[
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 support your business strategy.
Valuable requirements solve problems for your users.
Valuable requirements [...]]]></description>
			<content:encoded><![CDATA[<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;">
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Valuable+Requirements+http://bit.ly/opI6V+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/07/29/valuable-requirements/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Writing Complete User Stories</title>
		<link>http://tynerblain.com/blog/2009/07/06/writing-complete-user-stories/</link>
		<comments>http://tynerblain.com/blog/2009/07/06/writing-complete-user-stories/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 05:18:23 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[agile traceability]]></category>
		<category><![CDATA[agile tracing]]></category>
		<category><![CDATA[requirements traceability]]></category>
		<category><![CDATA[traceability]]></category>
		<category><![CDATA[tracing goals]]></category>
		<category><![CDATA[tracing user stories]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=987</guid>
		<description><![CDATA[
User stories can make requirements management a lot easier.  They shift some of the communication from up-front documentation to ongoing dialog.  That&#8217;s the main reason they work so well for agile teams.  And agile teams focus on &#8220;what&#8217;s next?&#8221; instead of an ever-changing &#8220;what&#8217;s everything?&#8221;   The problem is, when those conversations are working well, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="a bunch of unorganized stories" src="http://sehlhorst.smugmug.com/photos/584129084_rYfmw-L.jpg" alt="" width="250" height="130" /></p>
<p>User stories can make requirements management a lot easier.  They shift some of the communication from<em> up-front documentation</em> to<em> ongoing dialog</em>.  That&#8217;s the main reason they work so well for agile teams.  And agile teams focus on &#8220;what&#8217;s next?&#8221; instead of an ever-changing &#8220;what&#8217;s everything?&#8221;   The problem is, when those conversations are working well, it is easy to forget to make sure that what you&#8217;ve done is actually enough.  Add a small dose of traceability, and you can easily validate the completeness of your user stories.</p>
<h2><span id="more-987"></span>Three Big User Story Problems</h2>
<p>Over the last few years, Alistair Cockburn surveyed a range of teams and identified that they all were facing a similar set of problems.  <a title="use cases solve agile problems" href="http://tynerblain.com/blog/2008/02/18/cockburn-loves-agile-use-cases/">Alistair proposed using use cases to solve those problems</a>.  The following list of problems is Alistair&#8217;s:</p>
<ol>
<li>Designers lack the context of the goal that the user is trying to achieve.</li>
<li>The team does not get a early indication of the scope of the project.</li>
<li>Alternate user-behaviors are not identified in advance of the commitment to deliver.</li>
</ol>
<p>We agreed then (and still do) that well developed use cases can be used to address these issues.  Since then, however, we&#8217;ve done more analysis of how and <a title="user stories versus use cases" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">when to create use cases and when to create user stories</a>.  The primary drivers of the use case versus user story decision still apply, and should still sometimes point you to creating user stories.</p>
<p>Without the context of goals, and without a notion of completeness, your team just has a haphazhard stack of stories.  Not only will this reduce their motivation, but it will introduce frustration both for the implementation team and the stakeholders &#8211; no one will <em>really</em> know when the job is done.  Validating the completness of user stories will allow you to know (and regularly revisit) when you should be done.</p>
<p>When you are creating user stories, you need to be able to address the issues Cockburn identified.  You can do that with traceability, and a <em>very</em> small amount of additional documentation.</p>
<h2>User Story Metadata</h2>
<p>The cool thing about a well-written user story is that it already has metadata within it that makes tracing very easy.  A well-written user story, using a format based on the work of Mike Cohn (in <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>), would read:</p>
<p>As a [role], I want to [do something] [with some frequency] so that I can/will [achieve some goal].</p>
<p>If you were to build a UML Class Diagram to show the relationships that are implicit in a user story, you would get something that looks like the following:</p>
<p><img class="alignnone" title="user story class diagram" src="http://sehlhorst.smugmug.com/photos/584129144_PErXN-L.png" alt="" width="450" height="313" />[<a title="larger user story class diagram" href="http://sehlhorst.smugmug.com/photos/584129127_E8Fy3-O.png">larger version</a>]</p>
<ul>
<li>The [role] that starts a user story is the <a title="how to create personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">persona </a>(lower right corner of the diagram).  For products with simple market strategies, identification of personas alone is sufficient.  Larger companies and larger products are often trying to address the needs of users in multiple markets or market segments.  Each persona you develop is in a single market segment.  You may organize your segments regionally or by vertical industry or any other strategy that helps you position your product.  You can manage your personas not only as members of market segments, but with <a title="hierarchy of roles and personas" href="http://tynerblain.com/blog/2007/12/20/global-actor-hierarchies-and-personas/">a hierarchy of roles</a>.</li>
<li>The [do something] you identify is the meat of the user story (top center of the diagram) &#8211; what the persona is going to do.</li>
<li>The [with some frequency] element tells your team how often a particular user story will happen.  This can be represented as an attribute of the user story.</li>
<li>The [achieve some goal] component of the user story provides the context (center of diagram) for why a user will be performing an action.  The user will be performing the action either to achieve a user goal or a corporate goal.  If it is a corporate goal, it will have an internal stakeholder.  Ultimately, there should be an internal stakeholder who is not only the beneficiary of that goal, but also the person who &#8220;owns&#8221; the market segment in which the persona is defined.  Sometimes, <a title="goal conflict" href="http://tynerblain.com/blog/2007/10/18/stakeholder-goals-2/">there will be conflicts in goals</a>, commonly between user and corporate goals.  These can also result in conflicting goals between internal stakeholders.</li>
</ul>
<p>This is what makes things pretty exciting &#8211; all of that information is already there, and in your user story.  All you have to do now is leverage it.</p>
<h2>Goals and User Stories</h2>
<p>The following diagram shows how a use case exists to enable the achievement of a goal.</p>
<p><img class="alignnone" title="structured requirements" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" alt="" width="567" height="450" /></p>
<p>A user story can exist in the same way, just replacing the use case.  If you want to do <a title="ux and requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">a deeper dive into how interaction design and structured requirements</a> work together, you can use the following model instead:</p>
<p><img class="alignnone" title="interaction design and structured requirements" src="http://sehlhorst.smugmug.com/photos/61228367-O.png" alt="" width="461" height="525" /></p>
<p>Note that the diagram above introduces a couple additional concepts.  The first additional concept is the <em>practical goal</em> &#8211; what the persona is attempting to do <em>because</em> it is the manifestation of a corporate goal.  &#8221;Take an order quickly&#8221; is the practical goal that manifests the corporate goal of &#8220;Reduce time required to take orders.&#8221;  The second concept is that of a <em>scenario</em>.  A scenario is an amalgam of user stories (or use cases) that collectively allow the persona to achieve the practical goal.  We already represent this without introducing the <em>scenario</em> concept by acknowledging that a single goal is mapped to multiple user stories.</p>
<p>The common element in both approaches is a strong tie between goals and user stories.  Focusing on this aspect, you can visualize the relationship as follows:</p>
<p><img class="alignnone" title="user stories and goals" src="http://sehlhorst.smugmug.com/photos/584149015_prgqx-L.png" alt="" width="450" height="305" /> [<a title="goals are achieved through user stories" href="http://sehlhorst.smugmug.com/photos/584148954_P4px6-O.png">larger version</a>]</p>
<p>Note that the acceptance criteria for each user story are called out (so that you can confirm that a user story is &#8220;done&#8221; and &#8220;done well&#8221;).  Each goal is achieved by enabling one or more user stories, such that the acceptance criteria are met.  This is the crux of it, so I&#8217;ll write it again, but in bold for the busy people who scan this article.</p>
<p><strong>Each goal is achieved by enabling one or more user stories, such that the acceptance criteria are met.</strong></p>
<p>Note also that multiple goals can be supported by the same user story.</p>
<h2>Validating Completeness</h2>
<p>The important question that many developers (agile or otherwise) can not answer about their project is &#8220;If we do [everything we've been asked to do] will we meet our goals?&#8221;  This is either a failure in communication of context, or a failure to <a title="writing complete requirements" href="http://tynerblain.com/blog/2006/06/08/writing-complete-requirements/">validate completeness of the requirements</a>.  You have to flip things around and ask &#8220;If only <em>these</em> user stories are implemented, will the goal(s) be achieved?&#8221;  This is the same process used to <a title="validate completeness with use cases" href="http://tynerblain.com/blog/2006/07/06/requirement-completeness-validation-with-use-cases/">validate completeness of use cases</a> &#8211; just applied to user stories [Ed: that completeness-validation article was written 3 years ago today.  That's 28 years ago in internet time].</p>
<h2>Incremental Overhead</h2>
<p>Each user story already identifies the goal(s) it is supporting.  The incremental overhead is to recognize that this is &#8220;a backwards view&#8221; of goal satisfaction and create a simple table that shows the &#8220;forward view.&#8221;</p>
<p>You are creating traceability from each goal to each of its supporting user stories &#8211; but you&#8217;re doing it with a simple table (or list, or tree, or whatever).  You don&#8217;t have to manage your requirements in some big messy repository.  If you&#8217;re using index cards, consider getting some brightly colored sticky-dots, number them for each goal, and stick them on the index cards to show the relationship.</p>
<p>Then ask the question, for each goal, &#8220;Will this goal be achieved if all of the traced user stories (and no other stories) are completed, such that the acceptance criteria are met?&#8221;</p>
<p>An added benefit of this simple document is that it markedly improves your engagement with internal stakeholders.  You&#8217;ve created another opportunity for them to influence the scope of delivery.  These stakeholders can identify user stories that <em>don&#8217;t</em> map to any goals (you can drop those stories), and by identifying incomplete support, you can collaborate to make sure the missing user stories are identified.</p>
<p>The task of updating stakeholders about progress and <a title="managing stakeholder expectations" href="http://tynerblain.com/blog/2008/12/30/stakeholders-in-a-barrel/">managing stakeholder expectations</a> just got much easier &#8211; because you can report progress in the context of completed user stories (and therefore manifested goals).</p>
<h2>Reviewing Cockburn&#8217;s Issues</h2>
<p>Does this approach address Cockburn&#8217;s issues (listed at the start of this article)?</p>
<ol>
<li><strong>Lacking the context of goals</strong>.  This approach explicitly emphasizes that context.</li>
<li><strong>No early indication of scope</strong>.  The combination of completeness analysis and acceptance criteria provides concrete insight about scope.  Note that scope can still change, but this approach is just as effective as documenting requirements with use cases.</li>
<li><strong>Alternate behaviors not identified early</strong>.  Completeness analysis will highlight when the &#8220;happy path&#8221; (a.k.a. the normal course in a use case) is not sufficient to achieve the goal.  This is really just a variation of the second issue (not understanding scope), but along a <em>variation</em> dimension instead of a <em>coverage</em> dimension.</li>
</ol>
<h2>Conclusion</h2>
<p>There is value in being able to <a title="user story vs use case" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">document requirements with either user stories or use cases</a> as circumstances dictate.  <a title="cockburn on agile use cases" href="http://tynerblain.com/blog/2008/02/18/cockburn-loves-agile-use-cases/">Cockburn identified issues</a> that teams face when dealing with decoupled user stories.  His approach of leveraging use cases to solve the issues is perfectly valid.  The approach outlined above, tracing user stories, also addresses the issues.  As a product manager or business analyst, you need to be able to address the very real issues with either documentation approach.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Writing+Complete+User+Stories+http://bit.ly/MGtPm+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/06/writing-complete-user-stories/&amp;t=Writing+Complete+User+Stories" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/07/06/writing-complete-user-stories/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>User Goals and Corporate Goals</title>
		<link>http://tynerblain.com/blog/2009/06/22/user-goals-and-corporate-goals/</link>
		<comments>http://tynerblain.com/blog/2009/06/22/user-goals-and-corporate-goals/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 04:59:02 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[corporate goals]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[user goals]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=973</guid>
		<description><![CDATA[
When defining requirements, you always start in the context of a goal &#8211; either a user goal or a corporate goal.  You need to be aware of both.  Having a positive user experience is important, and requires a user-centered understanding.  Achieving your corporate goals might be in conflict with some user goals.
User Goals
A user centered, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="vending machine as user interface" src="http://sehlhorst.smugmug.com/photos/571470636_NcRaS-L.jpg" alt="" width="163" height="250" /></p>
<p>When defining requirements, you always start in the context of a goal &#8211; either a user goal or a corporate goal.  You need to be aware of both.  Having a positive user experience is important, and <em>requires</em> a user-centered understanding.  Achieving your corporate goals <em>might</em> be in conflict with some user goals.</p>
<h2><span id="more-973"></span>User Goals</h2>
<p>A user centered, or user-centric approach to developing software is one where you start by <a title="developing persona for goal driven development" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">identifying the key persona</a> in your target market.  For each of those personas, you identify their most important goals.  You then identify the <a title="user stories and use cases" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">user stories or use cases</a> that represent the things these people do in order to achieve their goals.  These &#8220;things&#8221; are manifested as practical goals.  For these activities, you design user interfaces (process, layout, architecture, look and feel, etc) that <a title="customer delight in requirements prioritization" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">create customer delight</a> for those users, doing those things.  This is how your product <a title="designing to exceed the suck threshold" href="http://tynerblain.com/blog/2005/12/14/getting-past-the-suck-threshold/">exceeds the suck-threshold</a> (good enough that it doesn&#8217;t suck to use your product).</p>
<h2>Corporate Goals</h2>
<p>There&#8217;s a reason your company is creating or improving a product.  It may be to gain market share, or improve profitability, or increase sales.  Whatever it is, there&#8217;s a corporate goal that your decisions should be supporting.  The (subset of) corporate goals that are relevant to your product could be communicated in a vision and scope document, that constrains the domain of problems to be solved, and provides nuanced insights into viable approaches to solving them (<a title="vision and scope docs for apr" href="http://tynerblain.com/blog/2007/04/18/apr-scope-and-vision/">example vision and scope</a>).</p>
<p>Corporate goals are achieved when customers do things with the products.  These &#8220;things&#8221; are manifested as practical goals.  For those activities, you document what should be accomplishable and why.</p>
<h2>Alignment and Conflict of Goals</h2>
<p>Notice that both the user goals and corporate goals manifest in terms of people doing things.  When the person (user) wants to do the same things that your company wants them to do, you&#8217;re in alignment.  When the user goals and corporate goals suggest different activities, you&#8217;re in conflict.</p>
<p>You can see visually that these worlds collide at the &#8220;practical goals&#8221; stage  in the following diagram, from an article on <a title="interaction design and structured requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">combining interaction design and structured requirements principles</a>.</p>
<p><img class="alignnone" title="interaction design and structured requirements" src="http://sehlhorst.smugmug.com/photos/61228367-O.png" alt="" width="461" height="525" /></p>
<p>It may be great &#8211; when the user and corporate goals are in alignment, the practical goal and associated scenario (activity) are easily defined.  What about when the goals are in conflict?</p>
<h2>Vending Machine Example</h2>
<p>Last Thursday morning, as I interacted with a vending machine, the idea for this article was dispensed along with my Diet Mountain Dew.  Yes, I know that&#8217;s odd.  Move on.</p>
<p>It occured to me that the process of buying a cold, caffeinated beverage can be both aligned and unaligned from the perspective of user and corporate goals.  If you imagine writing a use case for purchasing a beverage from the vending machine, your most important scenario is the one where a person wants to purchase a beverage that is available in the machine.</p>
<ul>
<li>User Goal: Get refreshed and vitalized.</li>
<li>Corporate Goal: Sell a beverage.</li>
</ul>
<p>I want to buy a Diet Mountain Dew, as a means to realize my personal goal.  The owner of the vending machine wants to realize her corporate goal of selling me the beverage I want to buy.  We&#8217;re in alignment.  Our requirements definitions and design decisions will be pretty easy &#8211; everything that increases the likelihood of and improves the experience of purchasing that beverage is good.  I put my money in the machine and push the button.</p>
<p>Then it occurs to me &#8211; there&#8217;s a situation where my personal goals are clearly not aligned with the corporate goals of the vending machine owner.  When there is no Diet Mountain Dew available to be purchased.</p>
<p>Consider the following procedure I&#8217;m forced to endure:</p>
<ol>
<li>I view the available beverages that this machine dispenses &#8211; Diet Mountain Dew is one of them.</li>
<li>I put my money in the machine.</li>
<li>I push the button for Diet Mountain Dew.</li>
<li>The tiny display on the machine presents a message in taunting, scrolling red LED lights: SOLD OUT.</li>
</ol>
<p>At this point, I&#8217;m faced with a choice &#8211; select a less desireable beverage, or request my money back and try to satisfy my user goal in some other way.</p>
<p>Consider an alternate procedure:</p>
<ol>
<li>I view the available beverages that this machine dispenses &#8211; Diet Mountain Dew is one of them.</li>
<li>I view the &#8216;current availability&#8217; of Diet Mountain Dew and see that this machine is currently sold out of Diet Mountain Dew.</li>
</ol>
<p>At this point, I&#8217;m faced with a choice &#8211; select a less desireable beverage, or request my money back and try to satisfy my user goal in some other way.</p>
<p>The differences in these two possible procedures indicate that there is a conflict between the corporate goal and the user goal.  With the first procedure, the &#8220;Sell a beverage&#8221; goal is given more importance, because it makes me more likely to purchase a beverage that I don&#8217;t particularly want.  My utility is potentially sacrificed, while the owner of the vending machine is just as satisfied.</p>
<p>By failing to tell me that I can&#8217;t get what I want, until I&#8217;m further invested in the process, I am more likely to purchase something else.  That purchase creates just as much value for the owner of the vending machine, but less value for me.</p>
<p>If the vending machine owner had allowed me to use the second procedure, it would demonstrate that the  owner believed the improved customer experience, while risking the loss of this sale, would encourage me to purchase more over time.  The owner would have been prioritizing the requirements and design that supported the user goal ahead of those supporting the corporate goal &#8211; in hopes that my user loyalty would result in <a title="how word of mouth works" href="http://tynerblain.com/blog/2007/09/18/dynamics-of-word-of-mouth/">better word of mouth</a> (more business from other people) and <a title="usability sells software" href="http://tynerblain.com/blog/2007/01/10/usability-sells-software/">more business from me</a> over time.</p>
<h2>Generalizing User and Corporate Goal Conflicts</h2>
<p>In this vending machine example, the annoying procedure is <em>probably</em> the right one &#8211; I&#8217;m going to treat the &#8220;point of use vending of cold, caffeinated beverages&#8221; as a commodity product.  This market has a very low barrier to entry, and relatively small problem being solved.  I&#8217;m not going to tell my friends about how much I love the vending machines from Joey&#8217;s Vending and encourage them to go out of their way to find and use those machines.  Nor will I purchase more Diet Mountain Dew because the emotional cost of the occasional &#8220;sold out&#8221; scenario is trivially smaller with Joey&#8217;s machines.  I would, however, be more likely to buy a Diet Pepsi when I&#8217;ve already invested time in the process and put my money in the machine &#8211; especially when the alternative is to find a water fountain.  I&#8217;m emotionally invested at this point.</p>
<p>However, this experience did jump out at me as one that is worth explicit consideration when defining requirements and designing solutions.  It does come up regularly.</p>
<p>The new iPhone 3GS hardware allows tethering (using the phone as an internet-connection device for your laptop).  ATT (the exclusive carrier for iPhones in the USA) is indicating that they will charge customers an extra monthly fee for this capability, when they eventually allow it on their network.  The user already has a data plan, and the traffic that ATT would have to carry is just &#8220;data.&#8221;  The user just wants it to work.  ATT, however, may want more money, or may want to limit data traffic on its network &#8211; perhaps to improve the quality of service to all customers.  This could be ATT&#8217;s corporate goal of &#8220;provide better service quality&#8221; conflicting with the user&#8217;s &#8220;increase the flexibilty of how I use my data plan.&#8221;  The former would likely influence customer satisfaction (and abandonment) over time, while the latter would influence customer acquisition rates.  Another conflict in goals.</p>
<p>Think about how different goals can lead to conflicting solutions, requirements, and designs.  And tell me when you&#8217;re out of Diet Mountain Dew before I&#8217;m emotionally invested in the purchase.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+User+Goals+and+Corporate+Goals+http://bit.ly/df3j0+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/06/22/user-goals-and-corporate-goals/&amp;t=User+Goals+and+Corporate+Goals" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/06/22/user-goals-and-corporate-goals/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Personas Make Blue Ocean Strategy Proactive</title>
		<link>http://tynerblain.com/blog/2009/04/29/personas-and-blue-oceans/</link>
		<comments>http://tynerblain.com/blog/2009/04/29/personas-and-blue-oceans/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 15:57:34 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[blue ocean]]></category>
		<category><![CDATA[blue ocean persona]]></category>
		<category><![CDATA[blue ocean strategy]]></category>
		<category><![CDATA[persona]]></category>
		<category><![CDATA[personas]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=912</guid>
		<description><![CDATA[
Blue Ocean Strategy provides an interesting reactive analysis of companies and markets.  Personas are used to understand your customer&#8217;s needs.  Combining the two provides powerful proactive insights when positioning your product for market success.
Blue Ocean Strategy
The book, Blue Ocean Strategy: How to Create Uncontested Market Space and Make Competition Irrelevant, by Kim and Mauborgne, was [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="personas in the blue ocean" src="http://sehlhorst.smugmug.com/photos/524127888_QioQj-L.jpg" alt="" width="187" height="250" /></p>
<p>Blue Ocean Strategy provides an interesting reactive analysis of companies and markets.  Personas are used to understand your customer&#8217;s needs.  Combining the two provides powerful proactive insights when positioning your product for market success.</p>
<h2><span id="more-912"></span>Blue Ocean Strategy</h2>
<p>The book, <a title="Blue Ocean Strategy at Amazon" href="http://www.amazon.com/exec/obidos/ASIN/1591396190/tbrb-20">Blue Ocean Strategy: How to Create Uncontested Market Space and Make Competition Irrelevant</a>, by Kim and Mauborgne, was written in 2005.  The book presents a very compelling way to visualize competition in your market by contrasting the emphasis (or effectiveness) of each company at solving particular problems.  The authors argue that <em>red oceans</em> are competitive markets where companies compete to solve the same problems for the same customers.  Their main idea is that by identifying (and solving) unaddressed problems, you can define a new market &#8211; a <em>blue ocean</em> with no relevant competitors.  The &#8220;red&#8221; in their metaphor implies blood in the water, caused by cut-throat competition.  Their position &#8211; by defining a new market boundaries with no competition, you eliminate the blood in the water and give yourself a calm, blue ocean in which to navigate your company.</p>
<p>This is a compelling idea, and has a lot of merit.  The <a title="smarter product managers book club" href="http://www.booksprouts.com/club/show/426?show_all=false">Smarter Product Managers book club</a> (started by <a title="The Experience is the Product - Cindy's great blog" href="http://www.cindyalvarez.com/">Cindy Alvarez</a>) reviewed this book last month, and one conclusion we reached during the discussion is that the examples in the book felt &#8220;reverse-engineered.&#8221;  I feel that the lack of prescriptive advice from the authors created a sense of &#8220;<strong>that&#8217;s fine, but how do I apply these ideas proactively?</strong>&#8221;   Some of the examples in the book, like Cirque de Solei and Southwest Airlines, felt very compelling (and are often cited), while others felt a bit more contrived.  Almost as if the authors were searching for data to support their arguments &#8211; a big no-no for product managers.</p>
<h2>Creating a Blue Ocean Strategy Map</h2>
<p>The book presents examples of &#8220;mapping&#8221; markets based upon the strength of the offerings from companies, along different dimensions.  The following example was created by me (and is used throughout this article), but follows the pattern of analysis described in the book.  This is an <em><span style="text-decoration: underline;">unresearched</span>, hypothetical</em> example analysis of the market for vaccuum cleaners &#8211; or more generically, floor cleaning products.</p>
<p> </p>
<p><img class="alignnone" title="vaccuum cleaner market strategy map" src="http://sehlhorst.smugmug.com/photos/524128000_UVoCC-L.png" alt="" width="450" height="327" /> [<a title="Blue Ocean strategy for vaccuum cleaners" href="http://sehlhorst.smugmug.com/photos/524127962_nvEdU-O.png">larger image</a>]</p>
<p>The diagram above identifies seven dimensions by which you could characterize the offerings from each company.</p>
<ul>
<li>Breathe Easier / Anti-Allergen &#8211; sometimes, people vaccuum their rugs in order to reduce allergens (by sucking up dust), making it easier for them to breathe in their homes.  Vaccuum cleaners work by sucking up air through the carpet, collecting the dirt (that is sucked up along with the air), and filtering the exhaust air (that is expelled into the room).  Different vaccuum cleaners pay different levels of attention to removing allergens during this cleaning process, by (1) getting the allergens out of the carpet and (2) filtering the allergens out of the exhaust air.</li>
<li>Remove Stains &#8211; one motivation to clean your floor is to remove stains.  This is not generally a focus of vaccuum cleaners, but products like the <em>Green Machine</em> do focus on removing stains, while also &#8220;picking up dirt.&#8221;</li>
<li>Physically Easy to Use &#8211; after back surgery, one of the key pieces of advice my mother received from her doctor was &#8220;no vaccuuming.&#8221;  When you are young and healthy, you don&#8217;t expect vaccuuming to be something that is forbidden by your doctor.  Shoveling snow, climbing a mountain, running a marathon, yes &#8211; but vaccuuming?</li>
<li>Reducing Hassle &#8211; Why don&#8217;t we vaccuum every day?  Because it can be a hassle to get out the vaccuum, set up the equipment, and actually use it.  When you reduce the hassle involved in vaccuuming, you are likely to vaccuum more often, thereby realizing more benefits from vaccuuming.</li>
<li>Saving Time &#8211; Hassle is not the only barrier to vaccuuming.  If you could vaccuum your house in 5 minutes instead of 105 minutes, you would do it more often.  As a teenager, I used to jog behind the lawn mower, just to get the yard done so I could move on to other things.</li>
<li>Reliability &#8211; While reliability is not a major factor when vaccuuming your house (once), it is a key component of making purchasing decisions &#8211; because you don&#8217;t vaccuum just once.  The more you vaccuum, the more you care about reliability.  This is also an indirect cost factor &#8211; a vaccuum cleaner that has to be frequently repaired or replaced will cost more <em>per year</em> than one that has the same purchase price and is more reliable.  This is also an indirect hassle factor &#8211; you may delay vaccuuming your home until you can make time to get a broken vaccuum cleaner repaired.</li>
<li>Avoiding Cost &#8211; A direct focus on cost is primarily driven by purchase price.  Other factors (like reliability, and the cost of replacement bags or filters), but people place greater emphasis on purchase price when thinking about cost.  Consumer Reports and other &#8220;product review&#8221; companies will often &#8220;do the math&#8221; for you, taking into account all of the post-purchase costs to calculate total-cost-of-ownership.</li>
</ul>
<p> </p>
<p>The above diagram, with <em>fictitous </em>values for &#8220;Strength of Competitive Offering&#8221;, shows the competitive landscape for the vaccuum cleaner market.  One of the very powerful features of this visualization is that the Roomba faces &#8220;no competition&#8221; from the other companies in three of the seven categories &#8211; Ease of Use, Hassle, and Time.  A Blue Ocean Strategy analysis would say that the Roomba has created their own market, with an absense of competition.</p>
<p>This gets back to our insight that the examples felt &#8220;reverse engineered.&#8221;  The Roomba does have a dramatically different value-proposition, and focused on dimensions that are not addressed by their competition.  So why isn&#8217;t the Roomba in the book?  Because they still compete in the red ocean.  Unlike Southwest Airlines, they did not differentiate their offering in a <em>relevant</em> way.  And that&#8217;s the problem we found in trying to apply the principles from the book.  </p>
<p>It is not enough to be innovative and differentiated, which the Roomba certainly is, you have to be <em><a title="differentiation versus improvement" href="http://tynerblain.com/blog/2006/05/24/differentiation-vs-improvement/">valuably differentiated</a></em>.</p>
<p>So how do you differentiate valuably and proactively?  Identify the problems that your customers value, but don&#8217;t yet have solutions for.  How do you do that?  With personas.</p>
<h2>Personas</h2>
<p>Personas represent customers in your target markets.  Markets are not homogenous &#8211; different people in your markets value different things for different reasons.  You <a title="how to develop personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">develop personas</a> as archetypes to represent subsets of the customers in a given market who share common problems.  More concretely, <a title="persona development examples" href="http://tynerblain.com/blog/2006/04/17/persona-grata/">personas share common </a><em><a title="persona development examples" href="http://tynerblain.com/blog/2006/04/17/persona-grata/">valuations</a></em> of shared problems.</p>
<p>To combine persona development with the market-mapping concept from <em>Blue Ocean Strategy</em>, create the same map, but for personas.  Instead of identifying the strength of each company/product along each dimension, identify how much each persona cares about each particular dimension.</p>
<p><img class="alignnone" title="persona priorities in blue ocean market map" src="http://sehlhorst.smugmug.com/photos/524128075_PSzSg-L.png" alt="" width="450" height="327" /> [<a title="mapping persona prioritization to blue ocean strategy map" href="http://sehlhorst.smugmug.com/photos/524128038_Thp76-O.png">larger image</a>]</p>
<p>In the chart above, I&#8217;ve created 6 hypothetical personas who populate our market:</p>
<ul>
<li>Single Parent &#8211; the classic superman / superwoman who does everything, including keeping the house clean.</li>
<li>Housekeeper &#8211; someone employed to keep someone else&#8217;s house clean.</li>
<li>Office Cleaner &#8211; the person who vaccuums your office at 2am every night and picks up all the empty Diet Coke cans and Twinkee wrappers.</li>
<li>Kid (Doing Chores) &#8211; most kids won&#8217;t ask for a vaccuum cleaner for their birthday, but when you child is responsible for vaccuuming, do you want a battle every week because they hate it?</li>
<li>Homeowner &#8211; like the single parent, but maybe without kids, and definitely with fewer responsibilities (and more time).</li>
<li>Retiree &#8211; like the homeowner, but with a lot more time, and a less robust physical condition.</li>
</ul>
<p>[Note - the above examples are really <a title="doing personas correctly" href="http://tynerblain.com/blog/2006/12/14/overdoing-personas/">stereotypes and not personas</a> (there is no research to back them up - they are entirely fictional) - don't fall into the trap of thinking persona development is this easy.]</p>
<p>OK, now we have an understanding of how much importance each persona places on each dimension.  It looks like a mess, for this example, when you try and absorb the big picture.  If you focus on a single persona, you get great clarity about what that type of customer cares about.  Look at each curve individually, then look at them all together.  If you&#8217;re thinking ahead, you&#8217;ll suspect that the Roomba is perfect for the kid doing chores.  But wait, we&#8217;ll come back to that.</p>
<p>One insight we can gain from this <em>messy</em> view of the market is that you can&#8217;t create a product that is &#8220;perfect&#8221; for all of these personas.  You have to target a specific persona, and tailor your product for that persona.</p>
<h2>Mapping Personas to Products</h2>
<p>Now we have two views of the market, along 7 dimensions.  We have assessments of the relative strength of each competitor&#8217;s offering, and we have estimates of the relative importance to each persona &#8211; for each dimension.  What we need to do is combine the two.</p>
<p>All of this analysis runs the risk of introducing a notion of <em>false precision</em> - we have a lot of data, therefore it must be accurate.  So our inclination may be to try and do some mathematically refined, scientific analysis.  I suspect that would be wasted effort, providing no additional insights, and risking leaps to the wrong conclusions.  I propose a simpler approach.</p>
<p>The analysis we really care about &#8211; which product offering is best aligned with the needs of each persona?  A simple mathematical equivalent of &#8220;which curves match the best&#8221; is an easy analysis.  By comparing the values from each competitor curve with those of each persona curve, we can create a series of &#8220;how good a fit is it?&#8221; values.</p>
<p><img class="alignnone" title="visualizing product alignment with persona goals" src="http://sehlhorst.smugmug.com/photos/524127860_uNRbS-L.png" alt="" width="450" height="327" /> [<a title="mapping product value propositions to persona goals" href="http://sehlhorst.smugmug.com/photos/524128112_dHtNH-O.png">larger image</a>]</p>
<p>Imagine a persona saying &#8220;how well does each company&#8217;s product align with my goals?&#8221;  This &#8220;simple math mashup&#8221; takes into account both &#8220;they succeed at what I care about&#8221; and &#8220;they haven&#8217;t invested in something I don&#8217;t care about (at the expense of something I do care about).&#8221;</p>
<p>You can see that the Roomba clearly wins with kids doing chores.  The rest of offerings stand out less, but do provide insight.  Now you can easily drive strategic decisions &#8211; &#8220;we want to be <em>the</em> vaccuum of choice for housekeepers&#8221; now drives some obvious emphasis on ease of use and a reduced emphasis on reducing costs.</p>
<h2>Improving The Model</h2>
<p>My two main problems with the blue ocean strategy were lack of relevance (who cares about dimension X) and magnitude (which dimension is most important?).  The model above addresses only relevance &#8211; a focus on target personas.  We can overlay some &#8220;relative importance of each persona&#8221; data, or just manually focus our efforts on each persona in series.  </p>
<p>The other <em>magnitude</em> challenge is in understanding not just which problems are important in absolute terms (kids care a lot about saving time, but not cost), but in relative terms (kids would trade an hour of time for a modicum of ease-of-use).  Essentially, <a title="defining utility curves" href="http://tynerblain.com/blog/2007/02/06/foundation-series-intro-to-utility-curves/">defining the utility-curves</a> for each persona.  For any but the largest, most saturated markets, I would hesitate to do the utility curve analysis in detail &#8211; it feels too heavyweight and un-agile.</p>
<h2>Conclusion</h2>
<p>The <em>Blue Ocean Strategy</em> book provides us with a visceral tool for visualizing relative offerings from competitors in a given market.  Combine it with the same visualization approach for personas that participate in that market, and you gain insights into which problems to solve next to achieve product success.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Personas+Make+Blue+Ocean+Strategy+Proactive+http://bit.ly/H1WLe+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/04/29/personas-and-blue-oceans/&amp;t=Personas+Make+Blue+Ocean+Strategy+Proactive" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/04/29/personas-and-blue-oceans/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>You Must Not Write &#8220;The System Shall&#8230;&#8221;</title>
		<link>http://tynerblain.com/blog/2009/04/22/dont-use-shall/</link>
		<comments>http://tynerblain.com/blog/2009/04/22/dont-use-shall/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 03:45:48 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[ambiguity]]></category>
		<category><![CDATA[ambiguous language]]></category>
		<category><![CDATA[ambiguous requirements]]></category>
		<category><![CDATA[unambiguous requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=907</guid>
		<description><![CDATA[
A lot of books and blogs and experts tell us to use &#8220;The System shall&#8230;&#8221; when writing requirements.  Read on to find out why that&#8217;s not a very good idea.
Ambiguity Is Bad
It is important that when you communicate requirements, you be unambiguous.  That communication may happen through conversation or documentation, or some of each.  
Conversations [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="wrong way" src="http://sehlhorst.smugmug.com/photos/518860610_bGrhz-L.jpg" alt="" width="182" height="250" /></p>
<p>A lot of books and blogs and experts tell us to use &#8220;The System shall&#8230;&#8221; when writing requirements.  Read on to find out why that&#8217;s not a very good idea.</p>
<h2><span id="more-907"></span>Ambiguity Is Bad</h2>
<p>It is important that when you communicate requirements, you be <a title="writing unambiguous requirements" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">unambiguous</a>.  That communication may happen through conversation or documentation, or some of each.  </p>
<p>Conversations are most effective when you are face-to-face, and least effective when you&#8217;re talking to someone who is 8 to 12 hours out of sync with you.  This is because conversations become infrequent.  The time difference introduces a resistance into your product creation (requirements <em>and</em> design <em>and</em> implementation) process, because it decouples one of these areas from the other two.  You can co-locate requirements and design with a <a title="remote implementation teams" href="http://tynerblain.com/blog/2008/05/05/offshore-development/">remote implementation team</a>, or you can have your <a title="remote design and implementation teams" href="http://tynerblain.com/blog/2008/05/14/offshore-design/">design and implementation teams both working in a different location</a> than your requirements team.  </p>
<p>Remote teams introduce a latency in communication.  When the teams are working with no (or very few) overlapping hours, this latency becomes very large.  Each back-and-forth can take 24 hours instead of 15 minutes &#8211; that&#8217;s 1% as efficient!</p>
<p>The most effective ways that people have found to reduce the impact of this latency is through documentation &#8211; allowing artifacts to persist over time.  Well written documents can capture understanding, will anticipate questions with correct answers, and will be unambiguous.  The ambiguity part is key to improving team efficiency &#8211; every ambiguous statement introduces at best an extra back-and-forth (with possible delays), and at worst, an unpleasant surprise at the end of the project.</p>
<p>When dealing with distributed teams, ambiguity in your documents is a killer.  Your reader can&#8217;t pop his head over the cube wall and ask &#8220;What exactly did you mean by this?&#8221;</p>
<h2>Language Barriers Can Hide Brambles</h2>
<p>It is easy to acknowledge a language barrier when two people don&#8217;t share a common language.  What is insidiously dangerous is when two people share a common language, but not really.  There&#8217;s a clever joke &#8211; &#8220;England and America are two countries separated by a common language.&#8221;  And it is very true.  As a Texan, sometimes I feel that way about Americans from <em>New</em> England.  Down here, a bubbler is an oil well that needs to be capped.  Up there &#8211; it is a water fountain.</p>
<p>When you learn multiple languages, you translate (on the fly) into your original language.  The one exception I&#8217;ve heard is if you start dreaming in the &#8220;new&#8221; language, you aren&#8217;t translating anymore.  As our world gets smaller, and teams become more diverse, you become more likely to have someone on your team who is translating as part of communicating.</p>
<p>Translation is another source of ambiguity, both in conversation and in documentation.  In conversation, you can practice <a title="ten active listening tips" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">active listening</a> or look for other cues that give you an indication that what you said isn&#8217;t what she heard.  In a document, either you are introducing ambiguity (causing another clarification cycle), or you are introducing an error in communication &#8211; imagine if the translation is &#8220;wrong.&#8221;</p>
<p>As dangerous and expensive as this can be in general, with a 1% efficient communication channel, it can kill your project.</p>
<h2><em>Shall</em>, <em>Should </em>and <em>Must</em></h2>
<p>In English, <em>shall</em> and <em>must</em> mean the same thing &#8211; something is mandatory.  <em>Should</em> means, roughly &#8220;it would be a good idea.&#8221;  In fact, <em>should</em> is such an ambiguous term, you should never use it in requirements.  I&#8217;ve worked with teams that used a <a title="moscow method" href="http://en.wikipedia.org/wiki/MoSCoW_Method">MoSCoW</a> rating system before &#8211; every requirement was identified as one of &#8220;must&#8221;, &#8220;should&#8221;, &#8220;could&#8221; (don&#8217;t <em>not</em> do it), or &#8220;would be nice.&#8221;  The problem with this approach is that the team is only accountable for the &#8220;must&#8221; requirements.  At least in practice.</p>
<p>Personally, I&#8217;ve always disliked the word &#8220;shall&#8221; when writing requirements.  First, not <em><a title="google search for definitions of shall" href="http://www.google.com/search?rlz=1C1GGLS_enUS320US320&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=define:+shall">everyone</a></em> considers &#8220;shall&#8221; to be a mandate &#8211; but generally people do.  Second, I&#8217;ve always found the word <em>shall</em> to be too similar to <em>should</em> - which is a terribly ambiguous word in a requirement.  Once I started working with global teams, often with &#8220;limited&#8221; sharing of a common language, I began to get that feeling that something isn&#8217;t right, that maybe <em>shall</em> would cause a problem.  Surely <em>must</em> is ok.</p>
<p>This, I realize, is an opinion.</p>
<h2>Translating <em>Shall </em>and <em>Must</em></h2>
<p>Around 5 am this morning I had a couple hours to kill and a disturbing notion of what would be &#8220;interesting.&#8221;</p>
<p>So I used <a title="google translate" href="http://translate.google.com/">Google&#8217;s translation service</a> to translate <em>shall</em> and <em>must</em> into every supported language and back again.  </p>
<p>When I was still programming, we often had to support import and export of data from our products.  A great way to test the importer and exporter was to import data into the product, then export it back out (or vice versa) and compare the (twice) translated version with the original.  If they were an exact match, both the importer and exporter worked.  If not, there was a bug somewhere.  We called this <em>round-tripping</em>.  As an aside &#8211; this is a great way to do test-driven development of import and export functionality.</p>
<p>This morning, I round-tripped the words <em>shall</em> and <em>must</em> from English, through 41 different languages, and then back into English again.  Here&#8217;s a table of the results (<em>shall</em> on the left, <em>must</em> on the right):</p>
<p><img class="alignnone" title="shall and must translation table" src="http://sehlhorst.smugmug.com/photos/518860732_BHf3u-L.png" alt="" width="450" height="337" /> [<a title="shall and must translated " href="http://sehlhorst.smugmug.com/photos/518860950_r9NNs-O.png">larger version</a>]</p>
<p>Here are the facts about what happens when you translate <em>shall</em> from English into each of 41 other languages, and back to English again.</p>
<ul>
<li><strong>In most languages (22/41) </strong><em><strong>shall</strong></em><strong> does not translate back into </strong><em><strong>shall</strong></em><strong>.</strong></li>
<li>Other round-trip results included: will, should, must, to be, point, has, going, and &#8220;I&#8221;</li>
</ul>
<p>That confirmed my fears that <em>shall</em> was a dangerous word.  What about <em>must</em>?  I was not optimistic.  I was also undercaffienated.</p>
<p>Here are the facts about what happens when you translate <em>must</em> from English into each of 41 other languages, and back to English again.</p>
<ul>
<li>For 100% of languages (41/41) <em>must</em> translates back into <em>must</em>.</li>
</ul>
<p>OK, that&#8217;s pretty irrefutable data.</p>
<h2>Conclusion</h2>
<p>I don&#8217;t really care if you like the alliteration of saying &#8220;The system <em>shall </em>share secrets on sign-in&#8221;.  </p>
<p>You need to use the word <em>must</em> when writing requirements to avoid ambiguity.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+You+Must+Not+Write+%E2%80%9CThe+System+Shall%E2%80%A6%E2%80%9D+http://bit.ly/TBcIt+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/04/22/dont-use-shall/&amp;t=You+Must+Not+Write+%E2%80%9CThe+System+Shall%E2%80%A6%E2%80%9D" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/04/22/dont-use-shall/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Product Growth Strategy</title>
		<link>http://tynerblain.com/blog/2009/04/01/product-growth-strategy/</link>
		<comments>http://tynerblain.com/blog/2009/04/01/product-growth-strategy/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 01:37:46 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[business strategy]]></category>
		<category><![CDATA[growth strategy]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=881</guid>
		<description><![CDATA[
Growth is a make or break measurement for products and companies.  Investment is often determined by expected value, which is based (in part) on expectations of growth.  When you create a product, there are aspects of growth &#8211; how many people can use your product, and how many people do use your product.  When dealing with a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="growth graph" src="http://photos.smugmug.com/photos/503346767_5xmw9-L.jpg" alt="" width="222" height="250" /></p>
<p>Growth is a make or break measurement for products and companies.  Investment is often determined by expected value, which is based (in part) on expectations of growth.  When you create a product, there are aspects of growth &#8211; how many people <em>can</em> use your product, and how many people <em>do</em> use your product.  When dealing with a freemium business model, there are two elements of <em>use</em> - paid use and free use.</p>
<h2><span id="more-881"></span>Three Goals of Growth</h2>
<p>You can think about growth in terms of three goals &#8211; increasing your servable market, increasing your market share, and increasing your paid market share.</p>
<ul>
<li>Servable Market &#8211; The number of customers that could potentially use your product.</li>
<li>Market Share &#8211; The percentage of the market (or of the servable market) that does use your product.</li>
<li>Paid Market Share &#8211; The percentage of the market (or the servable market, or your users) that use and pay for your product.</li>
</ul>
<p>As a product manager, when you consider capabilities to add to your product, you need to understand which goal your capability is designed to address.  These are all inter-dependent metrics, so it can be challenging to stay focused on each.  For example, if you have a 1% conversion rate from free customers to paying customers with your freemium business model, you may assume that by increasing the number of free users, you will automatically increase the number of paying customers.  That might be true, it might not.  Ultimately, you want to increase the number of paying customers &#8211; so that is part of all of these decisions.  When making each decision about prioritizing the next capability to add to your product, make sure you understand the <em>primary</em> growth goal you are affecting.</p>
<p>To keep the language from being too contorted, in the rest of the article, I&#8217;ll talk about users and customers as people, and not try and differentiate companies and people.  Users are people (or companies) that use your product or service.  Customers are people (or companies) that pay to use your product or service.  Your product could be a physical product, a software product (or license), software provided as a service, or a service.  I&#8217;ll refer to it as a product.</p>
<h2>Growing Your Servable Market</h2>
<p>The pedantic definition of your servable market is all users who <em>could</em> use your product.  A better way to think about your servable market is all people who experience the problems you&#8217;re trying to solve, who have <em>reasonable</em> access to your product.  People who don&#8217;t have those problems are not part of your market.  People who have those problems, but can&#8217;t <em>reasonably</em> use your product are part of your un-servable market.</p>
<p>Imagine you build a product that only runs on Windows Vista.  Windows XP users are not part of your servable market &#8211; they <em>could </em>upgrade to Vista and use your product, but they haven&#8217;t yet.  There&#8217;s a barrier to entry that they have to overcome.  Perhaps you have a pizza shop that delivers within a 10 mile radius and allows customers to place an order for pick-up and drive to your store and pick up the pizza.  If your shop is in Mountain View, technically people <em>could </em>drive from downtown San Francisco to pick up a pizza &#8211; but there&#8217;s a barrier to entry (the time and expense of driving to Mountain View) that makes those downtown San Francisco people part of your un-servable market.  </p>
<p>The size of your servable market reflects the <em>potential</em> number of users you could serve.  Your focus on growing your business can include changes designed to increase the size of your servable market.  You can write (non-functional) requirements that express this goal.  One type of <a title="non-functional requirements are important" href="http://tynerblain.com/blog/2006/05/23/non-functional-requirements-era/">non-functional requirement </a>is <em>platform support</em> - supporting different operating systmes; supporting netbooks (with less-powerful processors) as well as laptop computers; supporting devices with slower network connections; and supporting visually impaired users through your user interface.  Sometimes, the requirement to support a particular platform is represented as a <em>constraint</em> (e.g. you must provide support for linux users).</p>
<p>Many products are developed today as <em><a title="efficiency of saas markets" href="http://tynerblain.com/blog/2008/09/10/saas-markets-are-efficient/">software as a service (SaaS) applications</a></em><a title="efficiency of saas markets" href="http://tynerblain.com/blog/2008/09/10/saas-markets-are-efficient/"> </a>- and they are usually implemented as websites, where people can use the product through a web browser user interface.  The approach of ubiquity of web browsers and &#8220;always connected&#8221; devices leads to platform selection for web-based products being a less-constraining  factor in definition of your servable market.  You may still be constraining yourself based on the specific browsers (Internet Explorer, Safari, Opera, Chrome, Firefox, etc) that you support.  You can gain a lot of insight through an <a title="ui platform research 2007" href="http://tynerblain.com/blog/2007/04/26/apr-ui-platform-research/">analysis of your traffic</a>, or you can rely on general trends.</p>
<p>Your business model may only support customers in the United States of America (like the soon to be launched Google Voice).  Your user interface may be text only (and not support screen readers or other devices).  You may be building a Facebook application.  You may be selling headphones with controls for the new Apple iPod Shuffle (that has no integrated controls).</p>
<p>What&#8217;s important is that you identify the things you need to do (added capabilities, platform support, country availability) to increase the size of your servable market &#8211; and associate them with the theme (or context) of increasing the size of your servable market.</p>
<h2>Growing Your Market Share</h2>
<p>Your market share is the percentage of those people you could be serving who are your users.  You can also think of this as the size of your user base, but thinking of it as a proportion of possible users provides more insight (because it provides visibility into how many people <em>aren&#8217;t</em> in your user base too).  As part of developing a business model (or financial justification for investment in a new product), you will have developed a model with some assumptions about market share.  Venture Capitalists used to joke about pitches that projected capturing &#8220;1% of a trillion dollar market, and therefore a $10 billion business&#8221; without providing justification.</p>
<p>You have to develop a plan for how and why you will achieve a particular market share.  One approach is to develop a viral marketing message, for products that &#8220;sell themseleves.&#8221;  Another approach is to develop <a title="viral product management" href="http://tynerblain.com/blog/2009/03/02/viral-product-management/">a product that is inherently viral</a>.  You can, of course, apply multiple tactics.  </p>
<p>The point here is to identify those product capabilities or features that will encourage users who <em>can</em> use your product <em>to</em> use your product.  Adding support for a platform does not encourage users to use your product &#8211; it just makes it possible.  Adding a solution to a valuable problem encourages people to start using your product.  Your product may be one that is designed to inspire love, or one that is designed to reduce annoyances.  An effective (and right-minded, in my opinion) approach is to<a title="persona identification" href="http://tynerblain.com/blog/2006/04/17/persona-grata/"> identify personas within your servable market</a>, and focus on their problems.  As a product manager, you choose which of those problems to address &#8211; and your team invents a solution approach.  You then validate that this approach is an effective one for <a title="personas and goals" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">the particular problems of the target persona</a>.  </p>
<p>You may also want to define market segments to subdivide your servable market, so that you can develop unique strategies for presenting your solutions to potential users.  For example, you may find yourself with a surplus of cheap black pearls.  You can create two market segments &#8211; people who buy cheap jewelry and people who buy very expensive jewelry.  For the first group, you may position your product as cost-effective elegance.  For the big-spenders, you may position your product as something rare, unique, and not like those &#8220;everyday&#8221; pearls their friends all wear.  [I am pretty sure this is a reference to an anecdote from <em>Predictably Irrational</em>, but I'm not sure.]</p>
<p>What&#8217;s important is that you identify the things you choose to do (develop solutions to specific problems) in order to increase your market share &#8211; getting viable potential users to become active, actual users &#8211; and associate them with the theme (or context) of increasing your market share.</p>
<h2>Growing Your <em>Paid</em> Market Share</h2>
<p>People normally talk about this as <em>conversion</em> - conversion of free users into paying customers.  We&#8217;ll do the same.  I wanted consistent section headings. so I came up with &#8220;Paid Market Share&#8221; as a title.</p>
<p>Conversion is a key element to a <a title="freemium business model" href="http://tynerblain.com/blog/2009/02/24/freemium-model/">freemium business model</a> &#8211; one that offers two or more versions of a product.  One version is free to use and the other is a premium version that users pay to use (thus becoming customers).  Your conversion <em>rate</em> is the percentage of your users who are paying customers.  As we mentioned in the previous section on growing market share, you will have developed a business model for how much market share you would get and when and why.  If your business model is (or involves) a freemium product offering, your plan will also include projections around the number of paying customers you will have over time.</p>
<p>This is where focus becomes valuable.  As you identify problems to be solved (as part of developing a market-share growth strategy), you need to also decide which problems should only be solved (or should be solved <em>better</em>) for premium customers.  For example, the free version of MediaMonky (audio software) solves the problem of being able to listen to your audio files on your computer.  The catch is that when you add new music, you have to click a button that updates your &#8220;library&#8221; (so that MediaMonkey will play the new music).  The premium ($20US) version will automatically detect those new files.</p>
<p>You may also decide that a product is free for some users (companies with fewer than 10 users), and charge a fee to larger companies (10 or more users).  I don&#8217;t consider this to be a freemium model  In a freemium model, any user can choose either version of the product.  A related model is one where one set of users pay while another set doesn&#8217;t.  The distinction is probably best made by thinking about market segments.  If all (potential) users in one market segment only consider the premium version, and all (potential) users in another market segment would get no additional benefit from the premium version, then you would approach your growth strategy differently.  You wouldn&#8217;t be focused on <em>converting</em> customers, you would be focused on attracting paying customers &#8211; which is the same approach you use for growing market share.  In this case, you&#8217;re trying to grow the &#8220;pay for our product&#8221; <a title="an example of segmenting a market" href="http://tynerblain.com/blog/2008/09/15/market-segmentation-example/">market segment</a>.</p>
<p>When you do have a freemium model &#8211; one where any given user can choose to pay or not &#8211; your focus is on identifying problems to solve for premium customers.  Not only do you have the normal &#8220;is there value in solving this problem?&#8221; question, you also have a positioning question.  Will you alienate the users of your free product (or inhibit market share growth) by offering a capability only to paying customers?  Another interesting strategy is to introduce new capabilities to premium customers <em>first</em>, and then have them &#8220;trickle down&#8221; to the free version as new capabilities are introduced for premium customers.</p>
<p>This strategy seems to be a powerful way to <a title="leverage market data to a competitive advantage" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">leverage market insights to continuously make your product more valuable than your competition&#8217;s products</a>.  This could be a great way to &#8220;set the pace&#8221; for your market &#8211; forcing your competition to be reactive.  Slower competitors will lose not only to your premium product, but to your free version, which will out-value their paid products.  You get to <a title="defining the rate of market change" href="http://tynerblain.com/blog/2008/11/27/keeping-up-with-change/">define the rate at which your market changes</a>.</p>
<p>What&#8217;s important is that you identify the things you choose to do (develop solutions to specific problems, and position them appropriately) in order to increase your rate of conversion &#8211; getting current free-product users to become premium-product (paying) customers.</p>
<h2>One Way to Bring it all Together</h2>
<p>I&#8217;ve done work with a client who has a distributed leadership team, so whenever I wanted to write on a whiteboard or stick stuff to the walls, I had to do it electronically.  We created a &#8220;strategy&#8221; Google-spreadsheet.  We have three columns one each for &#8211; grow the servable market, grow our market share, and grow our paid market share.  We added items into the appropriate columns, and developed relative priorities within each column.  The client strategy at any point in time, clearly drove the balance of emphasis for a given release across those columns.  Some releases, for example, were entirely around growing the servable market.</p>
<h2>Conclusion</h2>
<p>It isn&#8217;t enough to just consider the value of a particular capability, you have to put it in the context of an overall growth strategy.  Even if you&#8217;re solving problems from all three columns (servable market, market share, and paid market share growth), your top down strategy should drive how much effort you dedicate into each column, for any given release.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Product+Growth+Strategy+http://bit.ly/4fHCqc+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/04/01/product-growth-strategy/&amp;t=Product+Growth+Strategy" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/04/01/product-growth-strategy/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Dell Cell Phone Lacks Differentiation</title>
		<link>http://tynerblain.com/blog/2009/03/23/dell-cell-phone-misstep/</link>
		<comments>http://tynerblain.com/blog/2009/03/23/dell-cell-phone-misstep/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 21:55:11 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[cell phone]]></category>
		<category><![CDATA[dell cell phone]]></category>
		<category><![CDATA[dell phone]]></category>
		<category><![CDATA[dell smart phone]]></category>
		<category><![CDATA[kano]]></category>
		<category><![CDATA[Kano analysis]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=876</guid>
		<description><![CDATA[
No cell for Dell.  According to Kaufman Bros. analyst Shaw Wu, carriers rejected prototypes from Dell because the &#8220;lack of differentiation.&#8221;  As product managers, we know the importance of keeping up with the Joneses, but we also know the importance of including differentiated value in our product offerings.
Old Rumors
The rumors that Dell would offer a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="no cell for dell" src="http://photos.smugmug.com/photos/497258554_GNS29-L.jpg" alt="" width="250" height="246" /></p>
<p>No cell for Dell.  According to Kaufman Bros. analyst Shaw Wu, carriers rejected prototypes from Dell because the &#8220;lack of differentiation.&#8221;  As product managers, we know the importance of keeping up with the Joneses, but we also know the importance of including differentiated value in our product offerings.</p>
<h2><span id="more-876"></span>Old Rumors</h2>
<p>The <a title="dell to do smartphone rumor 2007" href="http://mobilementalism.com/2007/02/20/is-dell-working-on-a-new-mobile-phone/">rumors </a>that Dell would offer a cell phone (re) started when Ron Garriques, former EVP and president of Motorola&#8217;s mobile devices division joined Dell about two years ago.  There are many more articles and speculations from that time period (just search for them).</p>
<h2>New Rumors</h2>
<p>In January, Silicon Alley Insider reported <a title="lack of denial" href="http://www.businessinsider.com/2009/1/michael-dell-does-not-deny-cellphone-plans">a lack of denial</a> from Dell CEO, Michael Dell in January.  A reader of the Insider, claiming to be &#8220;close to Dell&#8221; suggested a September 2009 product availabiliy, and calling it a &#8220;MePhone.&#8221;  They particularly called out 09/09/2009 as the date.  Tyner Blain (the company) was started on 05/05/2005, so maybe that&#8217;s a good idea :).</p>
<p><a title="barrons dell phone article" href="http://blogs.barrons.com/techtraderdaily/2009/03/20/dell-dude-what-did-you-do-with-your-cell-phone/">Barrons just reported Wu&#8217;s comments</a> that carriers essentially rejected the Dell cell phone prototypes because they were no different than current and pending product offerings from competitors.</p>
<p>Dell recently filed a <a title="garriques to stay with dell" href="http://www.bizjournals.com/austin/stories/2009/03/09/daily11.html">revamped retention plan for Garriques</a> to stay through March 2010, according to the Austin Business Journal&#8217;s reporting a couple weeks ago of recent SEC filings.</p>
<h2>Product Management</h2>
<p>The entire Dell phone thing may be a farce (I don&#8217;t think it is), but it doesn&#8217;t matter.  The product management perspective on this situation (real or otherwise) is still interesting.</p>
<p><strong>Should Dell enter the Cell Phone Market?</strong></p>
<p>There are two sides to this question &#8211; the cell phone (and more particularly, the smart phone) market is hyper-competitive.  In Dell&#8217;s strong markets (corporate, channel), there&#8217;s the Blackberry devices from RIM.  In Dell&#8217;s stated focus markets (consumer, retail), there&#8217;s the iPhone and the Palm Pre (which is not a product yet, but has generated a lot of buzz).  Competition in either of these markets will be tough, as they are both pretty saturated, and both are under pressure with current economic conditions in the US.  Companies can easily cut back on subsidies for cell phones, and consumers can easily delay purchase of a replacement phone.  Customers in either market would need a compelling reason to purchase from Dell.</p>
<p>On the other hand, computer and smart phone technologies are rapidly converging.  Phones get more powerful, and people are shifting &#8220;traditional computing tasks&#8221; to their phones because of the convenience of having a phone where having a laptop is impractical.  Computers are getting smaller every day, and new usage patterns are developing.  You could argue that a computer manufacturer should be on top of this movement, and to be best positioned to have insights into what a &#8220;hyper convenient computer&#8221; should do, they should get into the smart phone market.</p>
<p><strong>Kano Analysis</strong></p>
<p>When you apply Kano analysis to the potential feature set for a phone, everything you might add to the phone falls into one of three buckets: <em>must be</em>, <em>more is better</em>, and <em>surprise and delight</em>.</p>
<blockquote><p><strong>Kano analysis recap</strong></p>
<p>Kano provides three relevant classifications of requirements (the fourth category is redundant). All requirements can be placed in one of these categories.</p>
<ol>
<li><strong>Surprise and delight</strong>. Capabilities that <a title="Product Differentiation trumps Product Improvement" href="http://tynerblain.com/blog/2006/05/24/differentiation-vs-improvement/">differentiate a product from it’s competition</a> (e.g. the nav-wheel on an iPod).</li>
<li><strong>More is better</strong>. Dimensions along a continuum with a clear direction of increasing utility (e.g. battery life or song capacity).</li>
<li><strong>Must be</strong>. Functional barriers to entry &#8211; without these capabilities, customers will not use the product (e.g. UL approval).</li>
</ol>
<p><cite><a title="kano analysis and requirements prioritization" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">Prioritizing Software Requirements &#8211; Kano Take Two</a></cite></p></blockquote>
<p> </p>
<p>What Wu points out is that while Dell may have identified all of the <em>must be</em> requirements, just doing the minimum to be considered as a product is not sufficient to be accepted by your customers.  With the competitive landscape of the cell phone industry, these capabilities are necessary, but not sufficient.  The cell phone market is not a pure B2C (business to consumer) market, because the carriers (the providers of cell phone connectivity services) play such an integral role in the ecosystem, they have to be considered as customers too.  This is because the consumers are willing to accept long-term, very expensive contracts with service providers.  Those contracts allow service providers to subsidize the price of the physical phones (to the tune of $100 to $300 per device), in exchange for a contract that is worth over $1000 to the service provider.  For a phone manufacturer to penetrate the market in a meaningful way, they have to get these subsidies (from the service providers) in order to be remotely competitive on price with other phone providers.</p>
<p>Wu&#8217;s assertion is not that Dell failed to satisfy the requirements of the service providers, but rather that the service providers determined that Dell&#8217;s offering to consumers was insufficiently differentiated from other phones.</p>
<p><strong>Differentiation</strong></p>
<p>In addition to incorporating the <em>must be</em> capabilities into their phone, Dell also needed to have enough <em>more is better</em> features &#8211; like battery life, reception, screen size, (lower) weight to be perceived differently by consumers.  Dell also could have taken a <em>surprise and delight</em> approach, and introduced new capabilities that essentially make the competition irrelevant, by carving out a new market space.  Dell could have also focused on design elements &#8211; the same feature set, but in a more <em>desireable</em> device.</p>
<p>For fun, we can imagine some capabilities that Dell might have introduced that would have made their cell phone distinctive, allowing them to reach agreements with service providers to offer subsidies that would make their phone competitive in the market.</p>
<ul>
<li>Double the battery life, double the dB gain (strength) of the signal, cut the weight in half &#8211; all &#8220;obvious&#8221; <em>more is better</em> features &#8211; so they are probably also currently impractical, or Dell would have done it.  Note that these would have had to be achieved with protected intellectual property, or all of the other phone makers would also be doing it (or doing it very soon after Dell did).</li>
<li>Create a social networking ecosystem around the phone &#8211; a <em>surprise and delight</em> approach to making the phone not just a phone, but a social networking device or entertainment device.  There are many solutions that solve parts of this problem (facebook connect, instant messaging, twitter applications) by connecting the phone to a customer&#8217;s social network.  No one is really providing a &#8220;social networking platform that is also a phone&#8221; today.  While I don&#8217;t know what this magic combination of features would be, I do know that it would be possible.  With android, the open-source operating system from Google, Dell software engineers have the ability to develop this, and encourage the open-source software community to contribute.  Flock is an open source browser that did this by building on the core software of the Firefox brower.  This could be developed either for consumers or business users who can use the product for managing their networks and contacts.  Imagine out of the box integration with Salesforce.com, and what sales rep wouldn&#8217;t want this?</li>
<li>Create an entertainment ecosystem in which the phone plays a key role &#8211; the iPhone and iTunes work together to create this, in a walled-garden of interoperability.  Dell could develop a multi-vendor (of media), open-source, device-agnostic media solution for &#8220;everyone else&#8221; and extend the android operating system to work in this environment as well.  An alternate proprietary system probably wouldn&#8217;t work, it would just be &#8220;more of the same.&#8221;  Many large media companies are trying to figure out the right models for digital distribution of content.  Tivo lets you &#8220;time shift&#8221; and watch a show whenever you want.  Imagine integration with your smart phone, that also let you &#8220;location shift&#8221; and watch it wherever you are, whenever you want.</li>
<li>Change the way networking works for your phone &#8211; develop a mesh network with your phone (every phone connects to every other phone in range to share networking resources).  This will create problems with today&#8217;s battery-life, and todays service-provider business models.  But imagine if hulu.com allowed you to download tv shows and movies to your phone (with advertisements embedded in the video), and then you could share those shows with peer-to-peer technologies like bittorrent.  More people would watch more video (and therefore more attention would be dedicated to advertising), and people would want the phones that could do this.</li>
<li>Figure out a way to improve on location-based advertising, figure out how to solve more customer problems with the phone (phone + operating system + applications).</li>
</ul>
<h2>Conclusion</h2>
<p>We don&#8217;t have any of the details about specifically where the Dell phone (if it exists) fell short.  But assuming that it did, we can have fun speculating about things that Dell <em>could</em> do that would make their product distinctive.  More importantly, we can learn from how Dell has apparently stumbled and apply it to our own products.  Are we just doing more of the same?</p>
<p>Another key idea &#8211; Wu said &#8220;&#8230;versus current and coming products&#8230;&#8221;  It is not enough to just do more than &#8220;yesterday&#8217;s competition&#8221; &#8211; you have to be ahead of tomorrow&#8217;s competition too.  This dynamic is generally true, but magnified in the cell phone market, where the service providers know what tomorrow will bring.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Dell+Cell+Phone+Lacks+Differentiation+http://bit.ly/19mHl3+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/03/23/dell-cell-phone-misstep/&amp;t=Dell+Cell+Phone+Lacks+Differentiation" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/03/23/dell-cell-phone-misstep/feed/</wfw:commentRss>
		<slash:comments>7</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[
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 [...]]]></description>
			<content:encoded><![CDATA[<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>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Failure+To+Launch+%28Your+Product%29+http://bit.ly/Zw6ow+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></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 Non-Functional Requirements</title>
		<link>http://tynerblain.com/blog/2009/02/10/agile-non-functional-reqs/</link>
		<comments>http://tynerblain.com/blog/2009/02/10/agile-non-functional-reqs/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 15:25:03 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[agile non-functional requirements]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[non-functional requirements]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[user story]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=822</guid>
		<description><![CDATA[
Just because your requirement is not a user story does not mean you have to throw it out when planning your next sprint.  See one way (that is working) for managing non-functional requirements with an agile team.
Product Backlog Stories
Every article* I can remember reading that explains how to manage a product backlog talks about user [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="scrum" src="http://sehlhorst.smugmug.com/photos/470928385_DweZA-L.jpg" alt="" width="197" height="250" /></p>
<p>Just because your requirement is not a user story does not mean you have to throw it out when planning your next sprint.  See one way (that is working) for managing non-functional requirements with an agile team.</p>
<h2><span id="more-822"></span>Product Backlog Stories</h2>
<p>Every article* I can remember reading that explains how to manage a product backlog talks about user stories.  Those articles are necessary, but not sufficient .  You&#8217;ll create better products by developing them from the outside-in, with a user-centric point of view.</p>
<blockquote><p>*One loophole &#8211; scheduling refactoring (or the payback of technical debt).  A lot of articles talk about the need to do this, and refactoring is pretty much the opposite of a user story, since by definition, refactoring improves the software without introducing new capabilities.  The best idea I&#8217;ve come across for incorporating refactoring as part of a sprint is to write a user story, with <em>the system</em> as the user, and the lead architect / developer as the primary stakeholder.  This actually works really well, but it works by treating the work <em>as a </em>user story.</p></blockquote>
<h2>Atomicity</h2>
<p>What is really important, when scheduling sprints (or releases, if you are not doing scrum) is that you are scheduling solutions to atomic, <a title="writing measureable requirements" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">measureable</a>, <a title="writing valuable requirements" href="http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/">valuable</a> <a title="defining problems with Ishikawa diagrams" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">problems</a>.  <a title="writing atomic requirements" href="http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/">Atomicity </a>is the reason for breaking epics (really big stories) up into smaller stories.  It is also important that you communicate them unambiguously.  That might mean writing user stories or <a title="when to write use cases instead of user stories in an agile project" href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">writing use cases instead of user stories</a>, when things are complicated.</p>
<p>The problem is, not every atomic requirement can be represented with a user story.  Some things that <a title="kano analysis and must-have requirements" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/"><em>must be</em></a>, are not stories.</p>
<h2>Non-Functional Requirements</h2>
<p><img class="alignnone" title="twitter fail whale" src="http://sehlhorst.smugmug.com/photos/470952470_cAPgM-L.png" alt="" width="400" height="300" /></p>
<p>Non-functional requirements always seem to be under-emphasized when writing requirements.  The Twitter <em>fail whale</em> has become famous, because twitter could not scale to meet the demands of a rapidly growing user base.  Maybe the Twitter team planned for scalability, but demand simply outstripped it.  Or maybe they failed to plan for it.  Either way, they failed to meet the non-functional requirements of supporting the growth that they did have.  (Un)Luckily, this type of problem self-corrects.  Scaling failures drive away users, reducing the need to scale, until balance is achieved.</p>
<p>Product managers and business analysts tend to neglect non-functional requirements.  Unfortunately, this is especially true when managing with a focus on users and their goals.  Not because goals don&#8217;t drive non-functional requirements &#8211; they do.  I believe this has happened because historically, non-functional requirements were treated as an after-thought.  In reality, they are explicitly driven by goals.  I proposed an <a title="non-functional requirements" href="http://tynerblain.com/blog/2006/05/23/non-functional-requirements-era/"><em>equal rights amendment</em> to the structured requirements domain model</a> almost three years ago.  In short, it explicitly calls out the relationship between goals and non-functional requirements.</p>
<p><img class="alignnone" title="non-functional requirements domain model" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" alt="" width="567" height="450" /></p>
<h2>Agile Non-Functional Requirements</h2>
<p>Getting non-functional requirements into your sprint planning is actually not that hard.  You only have to make two tiny adjustments to get from the waterfall world to the agile world.</p>
<p>The first adjusment is that you have to treat non-functional requirements incrementally.  Non-functional requirements often affect <em>all</em> of the other requirements &#8211; so they seem massive and unweildy.  You have to decompose them.  Consider the platform-compatibility requirements for a web application.  You may have to support IE6,7,8; Safari on Windows, Safari on OS X, and Firefox on Windows XP and Vista.  That could be incredibly daunting.  So break it down.  Your first group of users (key persona) are primarily Firefox/XP users.  So the first platform you support is that one.  The next big platform for your persona group is Safari on OS X.  Add support for that next without breaking the previous support for FF/XP.  With each release, you add a platform (or two, or none).  You are conspicuoulsy addressing the needs of your target users.  The key is that once support is added for a platform, all future development is required to &#8220;not break it.&#8221;</p>
<p>Each non-functional requirement is cumulative.  This is the second adjustment.  All development, once a non-functional requirement is in place, must continue to honor it.  You wouldn&#8217;t break a previously released capability (functional requirement), so don&#8217;t break a non-functional requirement.  You have to determine, in each sprint, if additional functionality is more important than additional platform support.  And add in the platforms as they become the most important &#8220;next things to do.&#8221;  In waterfall projects, I&#8217;ve seen many teams break and re-break platform support throughout the development process, with the knowledge that it only has to work &#8220;at the end.&#8221;  Include platform-specific support in your <a title="continuous integration explained" href="http://tynerblain.com/blog/2006/05/08/foundation-series-continuous-integration/">continuous integration</a> tests.</p>
<p>You have a launch event coming up in six weeks.  You have an established user base.  You&#8217;re also developing a key new set of capabilities for your product that you believe will be a big hit and drive significant growth for your product.  You have a small group of people in a private beta, providing you with feedback about the new development.  If you believe the launch will cause your customer base to double very quickly (maybe over a month), how do you plan for that?  This is a serious scalability non-functional requirement.</p>
<p>Break the non-functional requirement up into cumulative requirements.  Assuming your plan is to add 10,000 users &#8220;at once&#8221; &#8211; have your implementation team brainstorm what that could/would mean for the system.  [Also, make sure you coordinate with your community manager and marketing folks, both to validate the anticipated growth, and to device any contingency strategies <em>in advance</em>.]  After talking with your development team, perhaps you learn that &#8220;at once&#8221; is a nuanced proposition.  <em>Literally</em> at once is very bad.  Spread out over a few days, not so bad.  OK &#8211; you can deal with this too.</p>
<p>Imagine you already have the following non-functional requirements in place:</p>
<ul>
<li>The system must be available 24/7, with no more than one hour of down time per day, and no more than one outage per day.</li>
<li>The system must respond in under 2 seconds for &gt;95% of uses [ in key user story].</li>
<li>The system must respond in under 20 seconds for 100% of uses [in same key user story].</li>
</ul>
<p>Based on what we&#8217;ve said above, these non-functional requirements must not be broken.  They essentially define the acceptance criteria for our scalability requirements.</p>
<p>Consider the following as the non-functional requirements that must be deployed by the time of launch (six weeks, or three releases from now):</p>
<ul>
<li>The system must support 10,000 additional users added in the month following SXSW.</li>
<li>The system must support 500 new users signing up and initiating [troublesome user story] within the same hour.</li>
</ul>
<p>Your dev team does not <em>really</em> know exactly what needs to be done &#8211; they just know that the current solution won&#8217;t scale &#8211; it barely meets the existing non-functional requirements.  They propose a couple redesigns that may get the job done.  But they point out the need to actually test that the designs work.  Schedule the following for the first release:</p>
<ul>
<li>The system must support 100 additional private beta users.</li>
<li>The additional users will all have [troublesome user story] initiated within the same hour.</li>
</ul>
<p>The second one is really a pragmatic solution &#8211; artificially creating a spike in demand, to test out the scalability of the new code.  From that data, we can determine what we need to do to hit 10,000 additional users, and to support 500 concurrent [troublesome user story] instances.  By managing expectations of the new users (that you&#8217;re queuing them up to test scalability), you can get the data you need.  And you have a couple more iterations to improve if needed.</p>
<p>As a benefit, you get to completely avoid the fail whale.  The other half of this is making sure you can constrain the rate of new-user sign-ups.  Work with your community manager and marketer to make sure you position this effectively.  You are creating scarcity, which may increase demand.  A crashed server won&#8217;t.  If your team can&#8217;t support 10,000 in time for the launch, plan on 2,500.</p>
<h2>Conclusion</h2>
<p>You can plan and schedule more than just user stories.  And your product will be better for it.  Give those non-functional requirements a chance.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Agile+Non-Functional+Requirements+http://bit.ly/1gyM6C+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/10/agile-non-functional-reqs/&amp;t=Agile+Non-Functional+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/02/10/agile-non-functional-reqs/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>User Stories and Use Cases</title>
		<link>http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/</link>
		<comments>http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 04:24:15 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[domain context]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[use cases]]></category>
		<category><![CDATA[user stories]]></category>
		<category><![CDATA[user story]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=809</guid>
		<description><![CDATA[
User Stories are one of the key agile artifacts for helping implementation teams deliver the most important capabilities first.  They differ from use cases in some important ways, but share more commonalities than you might think.
User Stories Applied
Mike Cohn wrote User Stories Applied: For Agile Software Development.  It is the book for understanding how to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="story cards" src="http://sehlhorst.smugmug.com/photos/466692212_tCpUr-L.jpg" alt="" width="207" height="250" /></p>
<p>User Stories are one of the key agile artifacts for helping implementation teams deliver the most important capabilities first.  They differ from use cases in some important ways, but share more commonalities than you might think.</p>
<h2><span id="more-809"></span>User Stories Applied</h2>
<p>Mike Cohn wrote <a title="user stories applied at amazon" href="http://www.amazon.com/exec/obidos/ASIN/0321205685/tbrb-20"><em>User Stories Applied: For Agile Software Development</em></a>.  It is <em>the</em> book for understanding how to write, estimate, and use user stories.  If you&#8217;re thinking about trying out &#8220;agile&#8221; for the first time &#8211; and you haven&#8217;t read his book, you need to.  He provides great detail and anecdotes about how to write, manage, and utilize user stories.</p>
<h2>What are user stories?</h2>
<p>A user story is a user-centric description of the goals that one or more people will achieve by using your product.  User stories are applicable whenever there is a person, interacting with an interface to a product, to achieve a goal.  They aren&#8217;t just for software &#8211; even though the tone of this article may imply it (since I live in a software mindset most of the time).</p>
<p>A user story is written in the format</p>
<ul>
<li>As a [<strong>person in a role</strong>] I want to [<strong>perform some activity</strong>] so that [<strong>some goal is achieved</strong>].</li>
</ul>
<p>That&#8217;s it.  No more.  Perfectly <a title="how to write atomic requirements" href="http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/">atomic</a>, very <a title="writing concise requirements" href="http://tynerblain.com/blog/2006/05/31/writing-concise-requirements/">concise </a>and <a title="writing unambiguous requirements" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">unambiguous</a>.  Where did this elegant idea come from?</p>
<p>User-centered design (UCD) is <a title="user centered design" href="http://tynerblain.com/blog/2007/02/22/user-centered-design-bridge/">an approach to product design</a> that can almost be considered a philosophy.  In college, I used to say that industrial designers designed things from the outside in, and engineers designed things from the inside out.  The ideal products are the ones that marry form (outside) and function (inside) in an elegant solution that blurs the lines of distinction.  The first designers of engineered products were the engineers, and the first designers of software were the programmers &#8211; they were the only ones who knew what <em>could be</em> accomplished.  Anyone who has used an application with a user interface designed by a database expert can remember what that was like.  Eventually, someone successfully adopted the mindset of designing a product based on what someone could use it <em>to do</em> instead of looking at what it could do and figuring out <em>how to use it</em>.  That under-emphasizes the importance of UCD, but you get the idea.</p>
<p>Out of UCD come different things that really drive how we create products today.  Kessler and Sweitzer focus on understanding these user goals in <a title="focus on goals first" href="http://tynerblain.com/blog/2007/09/27/outside-in/"><em>Outside-In Software Development</em></a>.  <a title="understanding stakeholder goals" href="http://tynerblain.com/blog/2007/10/11/stakeholder-goals/">Stakeholder goals</a> drive (arguably, <em>are</em>) requirements.  But it is difficult to develop actionable implementation plans directly from goals.  You need something to bridge that gap.</p>
<p>A user story, in an agile process, bridges that gap.  In Wiegers&#8217; world of <a title="structured requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">structured requirements</a>, that gap is spanned with use cases.</p>
<p><img class="alignnone" title="structured requirements model" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" alt="" width="567" height="450" /></p>
<p>Conceptually, a user story crosses the same chasm as a use case.  A user story defines what people need to accomplish (e.g. faster call processing), in order to achieve the goals of the company (e.g. lower call-center costs), given a solution approach (write software versus outsource to lower-cost call center employees).</p>
<p>Now we find ourselves in a confusing situation &#8211; there are user stories, <a title="use case scenarios" href="http://tynerblain.com/blog/2007/04/12/use-case-vs-test-case/">use case scenarios</a>, and at least three different kinds of use cases &#8211; formal and informal use cases, and use case briefs.  How are they different, and how are they the same?</p>
<h2>Usage Descriptors</h2>
<p>Use cases, use case scenarios, and user stories all document descriptions of how a product will be used.  They vary, along a continuum, in terms of the amount of overhead required to create each.</p>
<p><img class="alignnone" title="overhead of creating use cases" src="http://sehlhorst.smugmug.com/photos/466745248_2KGgn-L.png" alt="" width="450" height="267" /></p>
<ul>
<li><a title="how to read a formal use case" href="http://tynerblain.com/blog/2006/06/26/foundation-series-how-to-read-a-formal-use-case/">Formal use cases</a> require the most effort.  They have a lot of pomp and circumstance going on, but they describe all the permutations of how some person does some activity (or its variations).</li>
<li><a title="informal use cases" href="http://tynerblain.com/blog/2005/12/21/use-case-series-informal-use-case/">Informal use cases</a> are pretty much the same &#8211; just less formal.  The challenge is to provide <em>the right</em> level of detail, without the guide-rails of the formal use case to remind you.</li>
<li><a title="use case brief examples" href="http://tynerblain.com/blog/2007/04/24/apr-use-case-briefs/">Use case briefs</a> have almost no overhead, but have the same &#8220;how much is enough&#8221; challenges of informal use cases, only more so.  Think of it as a single-paragraph description of a formal use case.</li>
<li>User stories have the least overhead, and provide the least context.</li>
</ul>
<p>Use case scenarios are a slightly different breed.  Like a user story, a <a title="use case scenarios" href="http://tynerblain.com/blog/2007/04/12/use-case-vs-test-case/">use case scenario describes one path</a> through a multi-path use case.  But you can&#8217;t (or at least I&#8217;ve never seen anyone) create a use case scenario without first creating the formal use cases.  This artifact basically combines the weakness of a formal use case (high overhead) with that of a user story (limited context).  It can be very handy for developing test cases if your testing team is not well versed in writing test cases.  We&#8217;ll leave use case scenarios out of the rest of the discussion.</p>
<p>The cost of high overhead in documentation comes with a benefit &#8211; increased detail.</p>
<p><img class="alignnone" title="increasing detail in use case formats" src="http://sehlhorst.smugmug.com/photos/466745337_mifdy-L.png" alt="" width="450" height="448" /></p>
<p>Because a user story captures a single path through a use case, while having less overhead, it also captures less detail.  This is ok, because an agile process stresses communication over comprehensive documentation.   You start to run into inefficiencies when the amount of conversation (especially when repeated) is burdensome.  The amount of conversation required is a function of the amount of domain expertise, or context, that the implementation team already has.</p>
<h2>Should I write User Stories or Use Cases?</h2>
<p>It depends on your audience.  The formal and informal use cases, in addition to having more overhead, also provide more context, and allow you to describe more complex usage patterns of your product.  Some uses are so complicated that you have to use a use case to describe them.  Others are so simple that anything other than a story is wasted effort.  The interpretation of <em>complicated</em> and <em>simple</em>, though, is not purely an assessment of what the users want to do &#8211; it varies with the level of domain expertise of your implementation team.</p>
<p><img class="alignnone" title="context required by use case and user story" src="http://sehlhorst.smugmug.com/photos/466745287_bPB2C-L.png" alt="" width="450" height="448" /></p>
<p>Some teams simply aren&#8217;t equipped to consume user stories or use case briefs.  You have to <a title="writing what your readers need" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">write your requirements for the readers</a>, so you need to know when people are struggling to implement solutions based upon stories or briefs, and give them more structure and formality.  You have to adapt to the realities of your current situation, and the experience of your team.</p>
<p>You could replace the words &#8220;Reader Domain Expertise&#8221; with &#8220;Writer Trust of the Team&#8221; if you wanted, and the graph would look about the same.  This is another concept that is critical to a team working effectively &#8211; trust equates to delegation.</p>
<p>If you can trust your team to come up with a solution that matches the story, delegate that &#8220;next level of detail&#8221; to them.  If you can&#8217;t trust them, then don&#8217;t.  But you should.  One of the benefits of agile is that your team will quickly give you a solution, and then you can give them feedback.  If they don&#8217;t create a solution that meets your interpretation of your user&#8217;s needs, then give them feedback, and they will change it.  The agile process actually relies on this dynamic to allow less-verbose artifacts to still be effective.  Someone on the team will sketch out what the solution will look like, and get your feedback, before implementing.  The more this collaboration happens, the more effective a light-weight document will be.</p>
<h2>Conclusion</h2>
<p>Don&#8217;t just rely on platitudes about stories and use cases.  Think about the nature of the different artifacts.  Think about their strengths and weaknesses.  Consider how you interact with your team.  Should you trust your team?  <strong>Do</strong> you trust your team?  Determine what they need, and give it to them.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+User+Stories+and+Use+Cases+http://bit.ly/3n1Scd+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/02/user-stories-and-use-cases/&amp;t=User+Stories+and+Use+Cases" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Stakeholders in a Barrel</title>
		<link>http://tynerblain.com/blog/2008/12/30/stakeholders-in-a-barrel/</link>
		<comments>http://tynerblain.com/blog/2008/12/30/stakeholders-in-a-barrel/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 05:52:57 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[effective communication]]></category>
		<category><![CDATA[stakeholder expectations]]></category>
		<category><![CDATA[stakeholder goals]]></category>
		<category><![CDATA[stakeholders]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=788</guid>
		<description><![CDATA[
There&#8217;s really only one way to travel down a waterfall &#8211; in a barrel.  A lot of people died this way, but some survived.  Software projects have been predominantly waterfall projects since the start of software projects.  And stakeholders rode down those projects, basically in a barrel.  The people riding Niagara Falls 100 years ago [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="falling barrel" src="http://photos.smugmug.com/photos/445792956_mGKCY-L.gif" alt="" width="250" height="224" /></p>
<p>There&#8217;s really only one way to travel down a waterfall &#8211; in a barrel.  A lot of people died this way, but some survived.  Software projects have been predominantly waterfall projects since the start of software projects.  And stakeholders rode down those projects, basically in a barrel.  The people riding Niagara Falls 100 years ago didn&#8217;t know if they would survive until they got to the end.  Stakeholders in waterfall projects don&#8217;t know if they will succeed until the end.</p>
<p>An agile project is dependent upon tight interaction (and feedback) with stakeholders.</p>
<p>If you&#8217;re running an agile project, and your stakeholders are old-school barrel-riders, how do you make it work?</p>
<h2><span id="more-788"></span>Expectations, Documentation, and Communication</h2>
<p>The success of any project is dependent on setting and managing stakeholder expectations.  In <a title="managing stakeholder goals" href="http://tynerblain.com/blog/2007/10/11/stakeholder-goals/"><em>Managing Stakeholder Goals</em></a>, we talked about assuring that those goals are addressed by our requirements.  And in a later article, we proposed a way to <a title="balancing stakeholder goals" href="http://tynerblain.com/blog/2007/10/18/stakeholder-goals-2/">balance the goals of different stakeholder groups</a> when those goals are in opposition.  Those are good tools for making sure we are initially aligned with what we are hearing from stakeholders.</p>
<p>We need to also apply <a title="top ten active listening techniques" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">active listening techniques</a> to assure that what we thought we heard is what the stakeholders thought they said.  One way to do that is to write use cases (or user stories) so that we can <a title="communicating intent with stakeholders" href="http://tynerblain.com/blog/2006/07/14/communicating-intent-with-stakeholders/">communicate the intent of the product</a> back to the stakeholders.  This still primarily helps with kicking off a project, in the desired direction, with the correct goals.</p>
<p>There are many ways to document this <em>initial</em> intent of the project and stakeholder goals.  It is analogous to a stakeholder selecting a sturdy barrel and picking a good spot on the river bank to push off.  We&#8217;re well positioned to eventually succeed, assuming nothing changes.  After a harrowing fall, we find out how well we did.</p>
<p>A well-run waterfall project will provide status updates to the stakeholders along the way.  Imagine your stakeholder wearing one of those in-helmet headsets that NFL quarter backs use.  We publish <a title="effective status reports" href="http://tynerblain.com/blog/2008/09/03/effective-status-reports/">effective status reports</a> to let the stakeholder know what&#8217;s going on.  Like the falling barrel, however, a waterfall project has inertia.  The project, barring significant outside influence, will keep going in the direction it started.  Projects have change control boards to manage that change, but emotionally, I find that a formal change-approval process tends to inhibit change, rather than encourage it.  That barrel will keep falling.</p>
<p>Some project teams will try and do very heavyweight documentation to maximize the likelihood that the project will end up where it should.  The problem is, this heavyweight documentation only improves the chances that the project will end up <em>where we used to think it should go</em>.  It does not help us change the trajectory of the project as new insights are gained.  Just as <a title="responding to market changes for profit" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">responding to those changes provides a competitive advantage</a>, ignoring those changes exposes a competitive weakness.  Someone will come along and exploit your weakness if you don&#8217;t <a title="how fast is your market changing?" href="http://tynerblain.com/blog/2008/11/27/keeping-up-with-change/">respond to change</a>.</p>
<p>From these dynamics, we can conclude that &#8220;big up-front requirements&#8221;, while better than &#8220;no requirements,&#8221; are actually a waste of energy and time, relative to an ongoing adaptation to change.  That adaptation to change, however, should also be documented.  It needs to be documented for two reasons &#8211; to <em>manage</em> expectations of stakeholders, and to keep the implementation team focused on creating the most valuable capabilities in your product.  As you get smarter about what is valuable, you need to apply that knowledge and change the path of the project.</p>
<p>This is where communication becomes critical with stakeholders too.  Especially the old-school barrel-riders.  They are used to being in the barrel, maybe with an occasional &#8220;looking good &#8211; you&#8217;re still falling straight down&#8221; message along the way.  They are not used to hearing &#8220;we&#8217;ve decided that gliding over the rocks is more valuable than falling &#8211; please extend your wings now&#8221; messages.  The shocked &#8220;what wings?!&#8221; response is what they immediately think.</p>
<h2>Agile Expectations</h2>
<p>An agile project will avoid the big up-front requirements, and gather <em>just enough</em> requirements for right now.  What your stakeholder might hear is &#8220;agile is magic &#8211; we don&#8217;t need detailed requirements.&#8221;  The real message is &#8220;agile is better &#8211; we don&#8217;t need details about the requirements <em>yet</em>.  But we will need them <em>later</em>.&#8221;</p>
<p>A given team needs the same amount of specificity in requirements to achieve the same result, regardless of project approach.  One team I worked with would not set the tab-order in a form to go from top to bottom if you didn&#8217;t specify that.  It simply didn&#8217;t occur to them.  Another team was very effective with &#8220;gather the following data in a form&#8230;&#8221; &#8211; and they would layout the form, manage tab order, add reasonable field validation, assure proper markup and support for screen readers (for visually impaired users), and implement a <em>candidate</em> error-message/feedback design for users.  The first team would never succeed without details, the second team would view those details as wasted effort by me to write them, and by them to read them.</p>
<p>I think most of the initial creators, proponents, and early adopters of agile processes are members of the second camp.  They designed agile to not <em>require</em> detailed documents, but to allow it when needed &#8211; because they acknowledged that some people need the details.  They were reacting to heavyweight processes that were designed to work for &#8220;any team&#8221; at the cost of slowing down the best teams.  Kent Beck told me once that when people tell him about the importance of testing, his response is &#8220;so, lack of testing burned you before?&#8221;  When people stressed the importance of gathering requirements, his response was &#8220;you&#8217;ve been burned by a disconnect with stakeholders.&#8221;</p>
<p><strong>Enough</strong> is the operative word here.  You have to document enough.  You have to communicate enough.  You have to set expectations with your stakeholders that things will change.  And as those things change, you have to stay joined at the hip with your stakeholders to validate those changes.</p>
<p>While your team is responding to changes (based on feedback from stakeholders and the market and competition and implementation discoveries) with new plans, you have to feed that information back to the stakeholders.  It is a two-way communication.  And it needs to be a continual communication.</p>
<p>I joined a six month project once in the last month of the project.  Here&#8217;s a sanitized sequence of events describing what happened.</p>
<ol>
<li>Initial vision for the project was defined and requirements defined and tied to goals and value.</li>
<li>The estimates came back and said &#8220;no way it will happen before the business-imposed deadline.&#8221;</li>
<li>The team said &#8220;let&#8217;s be agile&#8221; and chose a component of the vision to do first.  That component could be completed by the deadline, and stakeholder expectations were set &#8211; (a) do this visible thing first, &#8220;meet&#8221; the deadline, and then (b) regroup, re-prioritize, and then do the next thing next.</li>
<li>The team started developing the solution, and worked for 5 months.  After 5 months, someone concluded &#8220;we won&#8217;t finish by the deadline.&#8221;  A couple weeks later, the estimate was that the team still had between 1/3 and 1/2 of the work remaining to complete the first component of the vision.</li>
<li>In presumably unrelated events, all but 2 of the internal stakeholders left the company.  Literally.</li>
<li>When the CIO and president of the company engaged the project team, they weren&#8217;t thinking &#8220;we have an over-run on the first component of our vision&#8221; &#8211; they were thinking &#8220;not only is it not done, but what you&#8217;re trying to do is not the right thing.&#8221;</li>
<li>Project was stopped one week after the original deadline for the first component (which was not completed).</li>
</ol>
<p>It may be that this was unavoidable, but one thing was clear &#8211; the &#8220;build the first thing first&#8221; expectation was not communicated effectively.  It didn&#8217;t help that the team did not track velocity, so it wasn&#8217;t until the end of the project when the &#8220;you&#8217;re going to hit the rocks&#8221; message was first heard by the stakeholder in the barrel.  Way too late to affect change.  For this and other reasons, I contend that the project was not agile.  It was a Chevrolet with a Ferrari sticker on it.</p>
<p>We can ignore the labeling of the process and focus on the lack of <em>ongoing</em> expectation management as the ultimate doom of the project.</p>
<h2>Evolving Expectations</h2>
<p>Patrick Masi had a couple great comments on our <a title="simple agile model" href="http://tynerblain.com/blog/2008/12/03/simple-agile-model-example/"><em>Simple Agile Model</em></a> article.  Patrick pointed out a problem with simple documentation artifacts like this.  The early &#8220;here&#8217;s all we need right now&#8221; artifacts were insufficient to capture the full extent of what the stakeholders needed.  I&#8217;m not sure exactly where things broke down, but Patrick implied that the ongoing clarification with stakeholders was not happening.</p>
<p>This is a completely different manifestation, I suspect, of the exact same problem described above.  Thinking about Patrick&#8217;s comments is what got me heading down the whole &#8220;barrel rider&#8221; path in the first place.</p>
<p>I don&#8217;t believe I&#8217;ve worked with any stakeholders who would say &#8220;yes, ignore what we learned this year &#8211; it is more important to build last year&#8217;s product.&#8221;  I&#8217;ve definitely worked with stakeholders who did not have time to commit to the support of an agile project.  The ironic thing about agile projects is that they may do more requirements work through the course of the project than non-agile projects.  An agile project will respond to change.  That means some work is re-done.  It also means that some valueless work is avoided.  You can&#8217;t categorically say which influence is larger.</p>
<p>One possible source of the pain Patrick&#8217;s team felt is mis-set expectations of what is being delivered when.  Imagine developing a checkout-process for an eCommerce website.  The complete checkout process is too large for a single sprint, so you break it down into valuable atomic deliverables for each sprint:</p>
<ol>
<li>Registered customers can buy any products, using previously saved billing / shipping info.</li>
<li>Individual product and &#8220;per order&#8221; discounting works and customers can use gift cards to pay for all or part of the order.</li>
<li>Anonymous customers can place orders (without accounts) and registered customers can modify billing and shipping information.</li>
<li>Orders can be placed as gifts (with gift receipts and wrapping services), and online call-center reps can interact with customers real-time to help with the process.</li>
</ol>
<p>This is a nuanced message &#8211; basic checkout in sprint 1, with increasing capabilities in each sprint, until &#8220;complete checkout&#8221; is done in sprint 4.  That is a reasonable plan, but requires a more detailed conversation with stakeholders so that they know what is coming and when.  You don&#8217;t want someone freaking out after the 3rd sprint when they can&#8217;t place gift orders.</p>
<p>Another possibility is that the elicitation process before the third sprint (re-visiting checkout <em>again</em> with the same stakeholder) did not tease out that anonymous users must provide an email address (for order confirmation email, and to secretly create a &#8220;shadow account&#8221; for that customer).  All of those details need to be gathered, and it can be harder to spread out the conversation over multiple sprints than it is to have it all up front.  This is just incomplete discovery, but with delayed (and recurring) impacts.</p>
<p>In <a title="user stories applied" href="http://www.amazon.com/exec/obidos/ASIN/0321205685/tbrb-20"><em>User Stories Applied</em></a>, Mike Cohn stresses that the brevity of user stories is intentionally designed to facilitate (and I would add &#8220;dependent upon&#8221;) conversation.  I find it to be both a strength and a weakness of user stories.  It is strong because you can cover a lot of ground quickly (breadth) and capture a number of stories, much like the list above.  It is weak because the requirements documentation does not stand on its own &#8211; it requires conversation to fill in the details.  I&#8217;ve had some success using the &#8220;Verify that&#8230;&#8221; user acceptance tests as the method of documenting those details (depth), in conjunction with the brief, easily consumable stories.</p>
<p>You can write the stories quickly to decompose and schedule across sprints (revisiting the schedule as things change), and then write the <em>verify</em> statements as UAT for each sprint as it occurs.</p>
<p>Another benefit of the UAT is that it is explicit and cuts through the walls of the barrel for a stakeholder who &#8220;doesn&#8217;t get agile&#8221; as Patrick puts it.  &#8220;Here&#8217;s our lightweight multi-sprint plan &#8211; now lets define the specific acceptance criteria you need&#8221; is a pretty effective conversation.</p>
<h2>Conclusion</h2>
<p>You have to stay closely connected to your stakeholders &#8211; not just for messaging, managing, and changing the big-picture direction of the project, but also to drill down into the details at the last practical moment.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Stakeholders+in+a+Barrel+http://bit.ly/uNjg+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/12/30/stakeholders-in-a-barrel/&amp;t=Stakeholders+in+a+Barrel" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/12/30/stakeholders-in-a-barrel/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Satisficing Sprints</title>
		<link>http://tynerblain.com/blog/2008/11/12/satisficing-sprints/</link>
		<comments>http://tynerblain.com/blog/2008/11/12/satisficing-sprints/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 03:24:45 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile product management]]></category>
		<category><![CDATA[satisficing]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[sprint planning]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=759</guid>
		<description><![CDATA[
Satisficing probably makes more sense than perfecting your product.
Can?  Open.
Worms?  Everywhere.
Are we really saying &#8220;don&#8217;t make it perfect?&#8221;  Yup.

Product Perfection
A perfect product will be successfull.  It will solve the right problems, generate as much value as possible, and be so intuitive to use that you don&#8217;t even realize you&#8217;re using it.
Perfection is a bit of [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="worms on the table" src="http://sehlhorst.smugmug.com/photos/415923338_gzWKd-L.jpg" alt="" width="250" height="187" /></p>
<p>Satisficing probably makes more sense than perfecting your product.</p>
<p>Can?  Open.</p>
<p>Worms?  Everywhere.</p>
<p>Are we really saying &#8220;don&#8217;t make it perfect?&#8221;  Yup.</p>
<p><span id="more-759"></span></p>
<h2>Product Perfection</h2>
<p>A perfect product will be successfull.  It will solve the right problems, generate as much value as possible, and be so intuitive to use that you don&#8217;t even realize you&#8217;re using it.</p>
<p>Perfection is a bit of a catch-22, however.  When I was still working as a mechanical engineer, I joined a team who introduced me to my new role with the following statement about the product I was going to replace:  &#8220;the design engineers are really good, they designed a great &lt;product&gt; &#8211; the only problem is that we can&#8217;t build it.&#8221;</p>
<p>My first thought &#8211; &#8220;you&#8217;re not using the same definition of <em>great</em> that I use.&#8221;  The same holds true for the <em>perfect</em> product.  Perfect at what cost?  If you spend too much making the product <em>otherwise</em> perfect, you won&#8217;t make enough money selling them, or your customers won&#8217;t benefit enough from using them, so you won&#8217;t sell as many, so your profits will be lower, so &#8230;, so &#8230;, and so on.</p>
<p>You can aim towards perfection, and still probably be ok, because you&#8217;ll never get there.  Your ideal product is a moving target, because <a title="staying on top of your market" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">your market is moving</a>.  Since you&#8217;re <a title="prioritizing the most important capabilities" href="http://tynerblain.com/blog/2008/10/20/planning-sprints-part-2/">prioritizing the most important capabilities</a> to build at any given point in time, you&#8217;ll never reach the end state of having done &#8220;everything.&#8221;</p>
<p>There was a math problem that made my head hurt when I was in college.  It went something like this:  If you were 100 feet from your house, and every hour cut the distance by half (after one hour, you were 50 feet away, after another hour &#8211; 25 feet, etc), and it was going to start raining in 10 hours, would you be inside before it started?</p>
<p>What if it wasn&#8217;t going to rain for 10 days?  Or 10 years?</p>
<p>That may be why I became an engineer, and not a mathematician.  To me, at some point, you would simply take one reasonably sized step, and be in the house.  An engineer would be inside the house before it started raining &#8211; and he&#8217;d probably be fixing (or breaking) something.  A mathematician would never make it into the house.  I could never appreciate that kind of math.  But I like fixing things.</p>
<p>Every capability you add, or <a title="read more on problems versus problem statements" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">every problem you solve</a>, gets you <em>closer to</em> perfection.  The problem is, it doesn&#8217;t get you &#8220;10 feet closer&#8221;, it is more like &#8220;30% closer.&#8221;  And like the mathematician, you&#8217;ll never get there.</p>
<p>Even the engineers won&#8217;t get there, however.  Every solution you deliver to your customers changes the definition of perfection.  Each solution enables new opportunities, and exposes new challenges.  Perfection becomes a moving target.</p>
<h2>Product Paralysis</h2>
<p>People talk about analysis paralysis fairly often.  Product paralysis comes when you spend so many cycles agonizing over the perfect thing to do, or the perfect thing to do next, that you don&#8217;t do anything.  Its the product management version.</p>
<p>I was on a call today, introducing some users to a product we&#8217;re developing.  We just stood up a website release &#8211; the first sprint that has enough content to be independently consumable by non-software folks.  One of the folks on the call, when trying to explain how agile works, and how user acceptance testing would work, made a statement that I thought failed to capture the essence of what we were doing (<a title="speaking to your audience" href="http://www.cindyalvarez.com/communication/who-i-am-what-you-say">in a language that the audience could appreciate</a>).  Paraphrased, the statement was &#8211; &#8220;in an agile project, there is no &#8216;release date&#8217;, the website will be done when it is done.&#8221;</p>
<p>I interrupted to share how I think about this project, and agile in general &#8211; &#8220;In this project, we&#8217;re building a release for you every two weeks.  Every two weeks, you get to decide if it is &#8216;enough&#8217; to share with customers, or share with more customers.&#8221;  [Note: In that statement, "customers" are people who use the website to purchase products from our client, who is also <em>our</em> customer.]  This project involves replacing a legacy system, as quickly as makes sense.  The new solution introduces new capabilities (and value) relative to the existing solution.  Today, it also lacks many capabilities (and value) provided by the current solution.</p>
<p>The question we are working with the business to answer is &#8220;when do we switch from the old system to the new one?&#8221;  There are at least some people who insist that we cannot switch over until <em>all</em> of the current capabilities are live in the new solution.  If we use that metric (and we may &#8211; that has not been decided yet), there will be a period of time where the new solution is <em>more valuable</em> than the current one, but that value will go unrealized.  I think that is another form of product paralysis.  We won&#8217;t have perfect data, so it will be a qualitative decision.  Right now, we&#8217;re trying to establish an alternate view of &#8220;enough&#8221;, and then predicting how long that will take, to manage expectations with stakeholders.  Fun stuff.</p>
<h2>Sprint Satisficing</h2>
<p>Ivan Chalif just <a title="book review" href="http://www.theproductologist.com/index.php/2008/11/10/book-review-dont-make-me-think/">published a review</a> of the book, <a title="don't make me think" href="http://www.amazon.com/dp/0321344758?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0321344758&amp;creative=373489&amp;camp=211189"><em>Don&#8217;t Make Me Think</em></a>, by Steve Krug.  In his review, Ivan points out one of the themes in Krug&#8217;s book &#8211; doing &#8220;enough.&#8221;</p>
<blockquote><p>Many <a title="Fighting, er, Working With Engineering" href="http://www.theproductologist.com/index.php/2007/04/24/fighting-er-working-with-engineering/" target="_blank">choices</a> that a Product Manager has to make are based on having to balance between the optimal solution and what can be done in a given time frame with the available resources. We bet that if we satisfice, it will be enough to address the short-term requirement or at least buy some time to refine the feature in a later release.</p></blockquote>
<p>That made me remember another book, <a title="the paradox of choice at amazon" href="http://www.amazon.com/dp/0060005696?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0060005696&amp;creative=373489&amp;camp=211189"><em>The Paradox of Choice</em></a>, by Barry Schwartz.  Another good book, where a central theme is that when given an arbitrarily large set of choices, people don&#8217;t choose optimally &#8211; they focus on eliminating choices, then choosing the best from a select few options.  If I remember correctly, Schwartz argues that people don&#8217;t optimize when faced with too many choices, they satisfice.</p>
<p>When it comes to determining what to include in a particular sprint, we&#8217;re faced with an arbitrarily large set of choices, so we prune.  And then we <a title="definition of satisfice" href="http://web.uvic.ca/akeller/pw408/r_satisfice.html">satisfice</a>.</p>
<p>In another conversation today, one of the developers asked an insightful question about one of the stories that was committed for the sprint.  As part of answering that question, we realized that the &#8220;perfect&#8221; answer was to change the design approach for that story, resulting in extra work that would push the team beyond capacity for the sprint.  We have a theme for the sprint, and this story is a key element in that theme.  If we have to push something to a later sprint, we want to push something else.</p>
<p>The story was written for three classes of users &#8211; logged in users with existing accounts, people who just created their accounts, and people who didn&#8217;t have (or want) accounts.  The project involves integrating COTS (customized, off-the-shelf) software with legacy systems.  We discovered that the design changes would only be needed for people who did not have accounts.  The theme of this sprint is to enable an end-to-end path through the site (essentially, completing an epic).  We decided that we would be satisfied by completing the epic for the logged-in users in this sprint, and add the other users in the next sprint.  That met our tactical goals for completing the epic.  Our alternative would have been to delay another story (or two) to a later sprint, just to be &#8220;perfect&#8221; with our epic.  This is the better solution, in this case.</p>
<p>What made this possible was that we remembered that each sprint asks the question about the solution &#8211; &#8220;is it good enough?&#8221;  And by implication, each sprint asks the question about each story &#8211; &#8220;is this approach good enough?&#8221;</p>
<p>We decided that today landed in the &#8220;a good day&#8221; column on the ledger.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Satisficing+Sprints+http://bit.ly/9XXFW+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/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/11/12/satisficing-sprints/&amp;t=Satisficing+Sprints" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/11/12/satisficing-sprints/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
