<?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; ROI</title>
	<atom:link href="http://tynerblain.com/blog/category/roi/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog</link>
	<description>Software product success.</description>
	<lastBuildDate>Sun, 26 Feb 2012 15:00:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Agile Estimation, Prediction, and Commitment</title>
		<link>http://tynerblain.com/blog/2011/08/09/agile-estimation/</link>
		<comments>http://tynerblain.com/blog/2011/08/09/agile-estimation/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 06:32:33 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[agile estimation]]></category>
		<category><![CDATA[agile prediction]]></category>
		<category><![CDATA[agile release planning]]></category>
		<category><![CDATA[cone of uncertainty]]></category>
		<category><![CDATA[project planning]]></category>
		<category><![CDATA[release planning]]></category>

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

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Agile+Estimation%2C+Prediction%2C+and+Commitment+http%3A%2F%2Fbit.ly%2FnUdL7S+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2011/08/09/agile-estimation/&amp;t=Agile+Estimation%2C+Prediction%2C+and+Commitment" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2011/08/09/agile-estimation/feed/</wfw:commentRss>
		<slash:comments>101</slash:comments>
		</item>
		<item>
		<title>Use Cases for Iterative Development</title>
		<link>http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/</link>
		<comments>http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 12:53:42 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile use cases]]></category>
		<category><![CDATA[incremental development]]></category>
		<category><![CDATA[iterative development]]></category>
		<category><![CDATA[satisficing]]></category>
		<category><![CDATA[use cases]]></category>

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

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Use+Cases+for+Iterative+Development+http%3A%2F%2Fbit.ly%2FaoG6ea+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/&amp;t=Use+Cases+for+Iterative+Development" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>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[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F03%2F01%2Fmeasuring-interaction-design%2F", "style": "big", "title": "Measuring Great Design - Mad Libs Input Form" }); 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 [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2010%252F03%252F01%252Fmeasuring-interaction-design%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Measuring%20Great%20Design%20-%20Mad%20Libs%20Input%20Form%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F03%2F01%2Fmeasuring-interaction-design%2F", "style": "big", "title": "Measuring Great Design - Mad Libs Input Form" });</script></div>
<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>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Measuring+Great+Design+%E2%80%93+Mad+Libs+Input+Form+http%3A%2F%2Fbit.ly%2FdeB9Po+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2010/03/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/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/03/01/measuring-interaction-design/feed/</wfw:commentRss>
		<slash:comments>19</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[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F01%2F05%2Fmost-engaging-articles-of-2009%2F", "style": "big", "title": "Most Engaging Articles of 2009" }); 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 [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2010%252F01%252F05%252Fmost-engaging-articles-of-2009%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Most%20Engaging%20Articles%20of%202009%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F01%2F05%2Fmost-engaging-articles-of-2009%2F", "style": "big", "title": "Most Engaging Articles of 2009" });</script></div>
<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>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Most+Engaging+Articles+of+2009+http%3A%2F%2Fbit.ly%2F4QJ30i+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2010/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/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/01/05/most-engaging-articles-of-2009/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Attainable Requirements</title>
		<link>http://tynerblain.com/blog/2009/11/30/attainable-requirements/</link>
		<comments>http://tynerblain.com/blog/2009/11/30/attainable-requirements/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 20:03:18 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[attainable requirements]]></category>
		<category><![CDATA[rules of requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

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

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Attainable+Requirements+http%3A%2F%2Fbit.ly%2F6eSabn+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2009/11/30/attainable-requirements/&amp;t=Attainable+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/11/30/attainable-requirements/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Modeling User Competency</title>
		<link>http://tynerblain.com/blog/2009/10/13/modeling-user-competency/</link>
		<comments>http://tynerblain.com/blog/2009/10/13/modeling-user-competency/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 04:40:50 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[competency model]]></category>
		<category><![CDATA[experience curves]]></category>
		<category><![CDATA[learning curves]]></category>
		<category><![CDATA[user competency]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1084</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F10%2F13%2Fmodeling-user-competency%2F", "style": "big", "title": "Modeling User Competency" }); Perpetually intermediate (competent) users.  Users who briefly exist as novice users and never become experts. Most of your users are competent, and you should design for them.  Competent users have different needs and different expectations than novice or expert users.  How do you know your [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2009%252F10%252F13%252Fmodeling-user-competency%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Modeling%20User%20Competency%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F10%2F13%2Fmodeling-user-competency%2F", "style": "big", "title": "Modeling User Competency" });</script></div>
<p><img class="alignnone" title="measuring competence" src="http://sehlhorst.smugmug.com/photos/680267147_f9DUM-O.png" alt="" width="250" height="181" /></p>
<p>Perpetually intermediate (competent) users.  Users who briefly exist as novice users and never become experts. Most of your users are competent, and you should design for them.  Competent users have different needs and different expectations than novice or expert users.  How do you know your user&#8217;s competency levels, so you can design for them?</p>
<p><span id="more-1084"></span></p>
<h2>User Competency</h2>
<p>User competency is a concept I first read about in Alan Cooper&#8217;s <em><a title="The Inmates are Running the Asylum, by Alan Cooper" href="http://www.amazon.com/dp/0672326140?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=0672326140&amp;creative=373489&amp;camp=211189">The Inmates Are Running The Asylum</a></em>.  Cooper&#8217;s contention is that the level of expertise of your users follows a bell curve, or <a title="normal distribution" href="http://en.wikipedia.org/wiki/Normal_distribution">normal distribution</a>.</p>
<blockquote><p>When we’re designing software we need to keep in mind that most of our users will be competent – neither experts nor beginners. Alan Cooper’s studies tell us that user skill levels follow a bell curve. He talks about competent users as perpetual intermediates. Some users drop out of the bell curve when they stop using our software. The rare user becomes an expert. Most users only learn enough to get their real job done.<br />
<cite><a title="competent users" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">Competent Users and Software Requirements</a></cite></p></blockquote>
<p>Cooper contends that the combination of <a title="usability learning curves" href="http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/">learning curves</a> and natural user tendencies to stop learning or abandon a software application are the sources of this distribution of user competency.</p>
<h2>Experience Curves</h2>
<p><a title="experience curves" href="http://en.wikipedia.org/wiki/Experience_curve_effects">Experience curves</a> represent the diminishing costs over time of manufacturing something repeatedly.  The process of manufacturing something gets more efficient as you get smarter about the process.  The process of using software is at least analogous to, if not a specific example of a manufacturing process.  If you&#8217;re using an email application, you are manufacturing email messages.  In a CRM system, you are manufacturing contacts, or contact reports, etc.</p>
<p>By treating any &#8220;using the software to do something&#8221; interactions as a process, you can measure the cost (how long it takes) of the user&#8217;s interactions.  Applying the math behind experience curves, you can predict the reduction in cost (to your users) over time, for any set of interactions.  Experience curves take into account that some processes are inherently more learnable than others.  This property of learnability is reflected as an efficiency coefficient &#8211; how efficiently someone can learn ways to reduce the cost (time) needed to perform the interactions.</p>
<p>This gives us an approach to quantitatively model user competency.  Having a definition allows us to model competence.  And measuring competence allows us to manage product design in the context of user competency -<a title="design for competent users" href="http://tynerblain.com/blog/2007/03/23/dont-make-products-too-simple/"> designing for competent users</a>.</p>
<h2>Defining Competence</h2>
<p>The first step to measuring competency is to define the model.  I am proposing a definition in this article that I suspect will yield insights (to help us manage our products). I was unable to find any quantified definitions of competence, when researching it as part of a client engagement.  If you have, or know of a model, please share it in the discussion below this article.</p>
<ul>
<li>A competent user is someone who learns to perform a task in half the time it initially took them.</li>
<li>An expert user is someone who can complete a task in 10% of the initial time.</li>
</ul>
<p>This definition is guided by an expectation that Alan Cooper&#8217;s premise about perpetually intermediate users is true.  Being a novice user is a very transient state, and becoming an expert is very infrequent.  The goal of the definition is to be able to segment your users and make well-informed design decisions.</p>
<h2>A Proposal, Not a Doctrine</h2>
<p>This is a proposal that doubling performance reflects competence, and achieving a ten-times improvement represents expertise.  It may be that some different measure of performance improvement more accurately reflects competence and expertise.  We have to test it to know.</p>
<p>The experience curve is defined mathematically by <em>Henderson&#8217;s Law</em>.  It states that the time to complete a task is a function of the number of times you have previously done that task, adjusted by the &#8220;elasticity&#8221; of the cost of that task.  In other words, some tasks are easier to improve than others.  If you populate a table with the results of applying Henderson&#8217;s Law, you get the following:</p>
<p><img class="alignnone" title="experience curves" src="http://sehlhorst.smugmug.com/photos/680267101_QEofx-O.png" alt="" width="450" height="247" /> [<a title="experience curve data" href="http://sehlhorst.smugmug.com/photos/680267134_VUcpL-O.png">larger image</a>]</p>
<ul>
<li>Each row in the table represents the Nth repetition of a task.</li>
<li>Each column represents how easy that task is to learn &#8211; progressing from &#8220;hard to improve&#8221; on the left, to &#8220;easy to improve&#8221; on the right.</li>
<li>Each cell in the table represents how long it would take to perform the Nth repetition of the task, as a function of how easy it is to improve your performance at the task.</li>
</ul>
<p>The above definitions represent what experience curves predict mathematically, when the task initially takes 60 seconds.  The following definitions reflect the proposed user competency model:</p>
<ul>
<li>A user is a <em>novice</em> user until she has learned enough to cut the time-on-task in half.  These cells have a white background (and are in the upper left area of the table).</li>
<li>A user is a <em>competent</em> user when the time needed to complete the task is between one half and one tenth of the initial time.  These cells are shown with a yellow background (and are in the central area of the table).</li>
<li>A user is an <em>expert</em> user when she can complete the task in less than one tenth of the time required to initially complete the task.  Theses cells are shown with a red background (and are in the lower right area of the table).</li>
</ul>
<p>In the absence of empirical data, I used my intuition to suggest that a representative experience curve for a typical task performed in software would be one with an &#8220;elasticity&#8221; of 50%.  For a task with those learning characteristics:</p>
<ul>
<li>A novice user would cut the needed time in half on the 4th repetition of the task, and would be considered to be a competent user.</li>
<li>A competent user would further reduce the time needed to one tenth of the initial time on the 100th repetition of the task, and would be considered an expert user.</li>
<li>The 50% elasticity column is surrounded by a black border, and the number of repetitions required to advance to <em>competent</em> or <em>expert</em> status is also highlighted with a black border.</li>
</ul>
<h2>Inferring Competence</h2>
<p>Since different processes have different learning characteristics, you have to figure out how easy it is for your users to improve at your processes.  To do that, you have to study (or at least measure) your users&#8217; interactions with your software.  In the 50% curve highlighted above, a user is capable of cutting their time-on-task in half by the fourth time they perform the task.</p>
<p>If data from your initial testing (or measurement) reveals this to be true, then you have selected the correct curve (the correct column in the table).  If it takes more or less time to reach this level of improvement, shift to the left or right to find the appropriate curve.  If software-interactions are reasonable analogs to manufacturing processes, then the experience curve projects an expected rate of improvement on task.</p>
<p>The following graph isolates the time-on-task data for a user who is learning to improve when repeating a task (process) that matches the 50% elasticity curve.</p>
<p><img class="alignnone" title="rate of learning on a 50% curve" src="http://sehlhorst.smugmug.com/photos/680267141_hukQA-O.png" alt="" width="450" height="327" /> [<a title="larger 50% experience curve time-on-task graph" href="http://sehlhorst.smugmug.com/photos/680267164_phQRh-O.png">larger image</a>]</p>
<p>Note that the number of repetitions of the task (the X axis) is represented as a logarithmic scale.  The data points along the curve correspond to the cell values in the table above (for the 50% column).</p>
<p><strong>Shades of Gray</strong></p>
<p>One nice thing about this quantitative approach to inferring competency by measuring usage is that your measurements are per-process.  Users are not &#8220;purely novice&#8221; or &#8220;purely expert&#8221; &#8211; they can be experts at some processes, while remaining neophytes at other.  There is also awareness, for any particular process, of &#8220;how much competency&#8221; a user has.  This allows you to refine your assumptions of the steepness of the learning curve, and of the thresholds (doubled performance and ten-times performance improvements).</p>
<h2>Improvement Over Time</h2>
<p>Any particular learning curve can be considered relative to calendar time, to see how quickly a user will progress along the curve (as a function of frequency of use).  This can be useful for determining the <a title="definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">ROI </a>of improvement in a particular process.</p>
<blockquote><p>The following graph shows how an 80% learning curve overlays a calendar for tasks that happen daily, weekly, and hourly.<br />
<img title="calendar overlay of competency curve" src="http://sehlhorst.smugmug.com/photos/135449754-M.jpg" alt="" /><br />
[<a title="larger improvement over time" href="http://sehlhorst.smugmug.com/photos/135449796-O.jpg">larger image</a>]</p>
<p>The graph shows that for a weekly frequency, after 16 weeks, the task time has reduced from 300 seconds to 100 seconds. With a daily frequency, the task time is even lower – about 60 seconds. This graph shows nothing other than converting the academic learning curve graph into one that incorporates calendar time and frequency of occurrence.</p>
<p><cite><a title="software usability and learning curves" href="http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/">Software Usability and Learning Curves</a></cite></p></blockquote>
<p>One approach to inferring user competency would be to measure how long a user has been using your software.  The variation in how frequently different users perform the same task will introduce an error into that inference.  You can avoid introducing that error into your modeling by counting the number of times a user has performed a task.</p>
<h2>Applying the User Competency Model</h2>
<p>The advice in previous articles, and from Cooper&#8217;s book, and from this <a title="perpetual intermediacy" href="http://www.codinghorror.com/blog/archives/000098.html">great article on the  Coding Horror site</a>, encourages us to focus on the competent users.</p>
<p>I&#8217;m working with a client who needs to prioritize a set of capabilities and establish design principles for a product.  We will incorporate this user competency model as part of our analysis.</p>
<p>Hopefully we&#8217;ll have an opportunity to collect data to validate and / or refine the model.  I&#8217;m proposing that we first gain some insight into the which users (novice, competent, expert) drive the most revenue and profit from use of the product &#8211; to establish the importance of each category of user.</p>
<p>For this product, I suspect that we will find many more <em>novice</em> users than a normal distribution would predict.  If that is true, the next question will be to understand if we are dealing with a normal behavioral dynamic, or if characteristics of the current product &#8220;force&#8221; novice users to abandon it before they achieve competence.</p>
<p>Either way, we will have a framework for prioritizing the goals of the novice, competent, and expert users.</p>
<p>How would you apply a model like this to improving your product?</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Modeling+User+Competency+http%3A%2F%2Fbit.ly%2FQROZA+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2009/10/13/modeling-user-competency/&amp;t=Modeling+User+Competency" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/10/13/modeling-user-competency/feed/</wfw:commentRss>
		<slash:comments>20</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[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F04%2F01%2Fproduct-growth-strategy%2F", "style": "big", "title": "Product Growth Strategy" }); 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 [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2009%252F04%252F01%252Fproduct-growth-strategy%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Product%20Growth%20Strategy%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F04%2F01%2Fproduct-growth-strategy%2F", "style": "big", "title": "Product Growth Strategy" });</script></div>
<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>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Product+Growth+Strategy+http%3A%2F%2Fbit.ly%2FeLk7J0+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2009/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/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/04/01/product-growth-strategy/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Plan Your Next Sprint By Bang For The Buck: Part 2</title>
		<link>http://tynerblain.com/blog/2008/10/20/planning-sprints-part-2/</link>
		<comments>http://tynerblain.com/blog/2008/10/20/planning-sprints-part-2/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 03:24:08 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile product management]]></category>
		<category><![CDATA[bang for the buck]]></category>
		<category><![CDATA[prioritization by roi]]></category>
		<category><![CDATA[sprint planning]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=735</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F10%2F20%2Fplanning-sprints-part-2%2F", "style": "big", "title": "Plan Your Next Sprint By Bang For The Buck: Part 2" }); Planning by ROI.  Hmmm.  Isn&#8217;t that impractical?  In an econometric way, yes.  But you can still estimate the relative value of the capabilities / stories you&#8217;re planning for your scrum sprints.  The point is &#8211; don&#8217;t look [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F10%252F20%252Fplanning-sprints-part-2%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Plan%20Your%20Next%20Sprint%20By%20Bang%20For%20The%20Buck%3A%20Part%202%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F10%2F20%2Fplanning-sprints-part-2%2F", "style": "big", "title": "Plan Your Next Sprint By Bang For The Buck: Part 2" });</script></div>
<p><img class="alignnone" title="Standing on the shoulders of giants" src="http://sehlhorst.smugmug.com/photos/398713817_sz6yj-L.jpg" alt="" width="180" height="240" /></p>
<p>Planning by ROI.  Hmmm.  Isn&#8217;t that impractical?  In an econometric way, yes.  But you can still estimate the <em>relative</em> value of the capabilities / stories you&#8217;re planning for your scrum sprints.  The point is &#8211; don&#8217;t look <em>only</em> at value &#8211; also look at costs.  While &#8220;ROI&#8221; may be a poor choice of terms, &#8220;bang for the buck&#8221; is not.</p>
<p><span id="more-735"></span></p>
<h2>Mea Culpa</h2>
<p>In the previous article, <em><a title="Plan your sprint by ROI part 1" href="http://tynerblain.com/blog/2008/10/16/planning-sprints-by-roi/">Plan Your Next Spring By ROI: Part 1</a></em>, I made a bad choice of sloppily using ROI (about a dozen times) to describe &#8220;bang for the buck.&#8221;</p>
<blockquote><p>Just over a year ago, we showed how <a title="prioritize by roi" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">prioritizing by ROI delivers value faster</a>.  The reason this works is that each sprint (or timebox) has a fixed capacity for work, so you want to cram as much value into that box as possible &#8211; not just do the most valuable thing first.  Here are a couple images from the previous article that show the impact of using this approach.</p>
<p>[...]</p>
<p>So far, we’ve argued that prioritization should be by ROI, and while accounting for other people, should be user focused.  Actually, nothing above is sprint-specific, the same concepts apply to any product planning and development approach.</p>
<p><a title="planning sprints by return part 1" href="http://tynerblain.com/blog/2008/10/16/planning-sprints-by-roi/"><cite>Plan Your Next Sprint By ROI: Part 1</cite></a></p></blockquote>
<p>[Editor: Note - the author has also messed up again, this time by burying the lead at the end of the article.]</p>
<h2>Giants.  And Their Shoulders.</h2>
<p>I had a great conversation over the weekend with <a title="luke hohmann" href="http://www.enthiosys.com/about-us/our-people/#luke">Luke Hohmann</a>, founder and CEO of <a title="agile product management" href="http://www.enthiosys.com/">Enthiosys</a>, and realized my mistake.  Consider the titles of three (excellent) articles Luke wrote earlier this summer:</p>
<ol>
<li><a title="luke, part 1" href="http://http://www.enthiosys.com/insights-tools/prioritizeforprofit1of3/">Why Prioritizing Your Product Backlog for ROI Doesn&#8217;t Work (Part 1 of 3)</a></li>
<li><a title="luke, part 2" href="http://www.enthiosys.com/insights-tools/prioritizeforprofit2of3/">Developing Attributes for Backlog Prioritization (Part 2 of 3)</a></li>
<li><a title="luke, part 3" href="http://www.enthiosys.com/insights-tools/prioritizeforprofit3of3/">Prioritizing for Profit (Part 3 of 3)</a></li>
</ol>
<p>Not to mention giving a presentation at <a title="agile 08" href="http://www.enthiosys.com/insights-tools/agile-08-repeat-performance-and-slides/">Agile&#8217;08</a>.</p>
<p>You&#8217;d think I would have noticed, and been more careful in my use of language.  Sorry about that.</p>
<p>Luke, in his first article, provides several arguments against <em>econometric assessment</em> of ROI, and I agree with all of his points.  In his second article, Luke goes into details about defining attributes for reflecting the goals of internal stakeholders, external stakeholders (buyers and users), and the system.  I promised to do the same in this article, but frankly, why reinvent the wheel?  Our differences from Luke&#8217;s article would at best be nuanced, so the best use of your time (and mine) is to just go read his second article.</p>
<blockquote><p>Our experience is that successful Agile Product Managers have an almost natural, intuitive feel for prioritizing backlog items to drive profitable growth. Fortunately, this natural ability is greatly enhanced when they make the link between the backlog and their ability to drive profit explicit. As an aside, it is this set of attributes that most clearly distinguish the Scrum-centric role of a Product Owner with the full responsibilities of an Agile Product Manager.</p>
<p><cite><a title="luke, part 2" href="http://www.enthiosys.com/insights-tools/prioritizeforprofit2of3/">Developing Attributes for Backlog Prioritization (Part 2 of 3)</a></cite></p></blockquote>
<h2>Including Costs in Sprint Planning</h2>
<p>There are two dimensions by which to keep costs in mind when planning a sprint.  The first is in determining how much work to schedule for any given sprint.  When you use <a title="using timeboxes to plan releases" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">timeboxing</a> to plan a sprint, you&#8217;re saying &#8220;we have the capacity to do X work per sprint&#8221; and &#8220;we should only schedule X work per sprint.&#8221;  Your <a title="how to approach project estimation" href="http://tynerblain.com/blog/2006/04/28/where-did-you-get-that-estimate/">plans are based on estimates</a>, so you need to have a feedback mechanism to make sure you&#8217;re doing a better job in planning each sprint than you did with the previous sprint.  <a title="burndowns for tracking velocity" href="http://tynerblain.com/blog/2006/09/29/burndown/">Burndown graphs</a> are a great way to do this.  The burndown provides feedback within the sprint too, not just at the end.</p>
<p>Mike Cohn, of <a title="mountain goat software" href="http://www.mountaingoatsoftware.com/">Mountain Goat Software</a>, <a title="agile estimation presentation" href="http://www.mountaingoatsoftware.com/presentation/51-planning-and-tracking-on-agile-projects">gave a great presentation</a> on how to estimate costs for an agile project.  Without giving it away, he proposed (starting on slide 14) using <a title="planning poker" href="http://www.planningpoker.com/">planing poker to get quick estimates of user stories</a> [<a title="planning poker details" href="http://www.planningpoker.com/detail.html">more details</a>] at the product backlog level.  Then, <a title="basic pert estimation tutorial" href="http://tynerblain.com/blog/2006/04/13/foundation-series-basic-pert-estimate-tutorial/">more detailed estimates are created for the tasks</a> within the sprint.  If your team uses use cases, you can choose to use <a title="intro to use case points estimation" href="http://tynerblain.com/blog/2007/02/12/software-cost-estimation-ucp-1/">use case points as a low-overhead estimation method</a> (but not nearly as low as planning poker) to determine the initial estimates of costs.</p>
<h2>A Planning Example</h2>
<p>You have the following set of items being evaluated in your product backlog.  Note that there are a mixture of strategic, user-centric, and code-refactoring items under consideration.</p>
<ul>
<li><strong>Profile Editing</strong> &#8211; As an insurance agent in the community, I want to be able to edit my profile to personalize my identity within the site.</li>
<li><strong>Data Abstraction Refactoring</strong> &#8211; The system&#8217;s data model is inelegant and needs to be refactored, if ongoing development is to be easier.</li>
<li><strong>Action Notification</strong> &#8211; As a manager of agents, I want to be notified whenever my agents submit quotes to potential customers.</li>
<li><strong>Grouping Items</strong> &#8211; As an insurance agent, I want to be able to group contacts, proposals, communications and other items, so that I can organize my work.</li>
<li><strong>Reporting</strong> &#8211; As a manager of agents, I want to be able to run reports to track financial metrics and activities by agent, product, geography, and time period, so that I can manage my team effectively.</li>
<li><strong>Serializable Objects</strong> &#8211; The system&#8217;s implementations for data backup and data export are redundant and brittle and should be refactored to clean up the code.</li>
<li><strong>Customer Centric UI</strong> &#8211; The user interface is currently product-centric in approach.  Our strategy to offer multi-vendor product lines will require agents to focus on customers first.</li>
</ul>
<p>Using the value-estimation and cost estimation techniques outlined by Luke and Mike you determine the following value and cost estimates for each &#8220;story.&#8221;</p>
<p><img class="alignnone" title="value and cost estimates" src="http://sehlhorst.smugmug.com/photos/398836251_WAmRc-L.jpg" alt="" width="412" height="197" /></p>
<p>If you were to ignore the cost estimates you would do the <em>data abstraction refactoring</em> and <em>customer-centric UI</em> stories first, followed by the <em>profile editing, action-notification</em>, and other tasks in order of descending value.  As it turns out, that is not <a title="maximizing value through prioritization" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">the way to maximize value over time</a>.  At first glance, the <em>profile editing</em> story looks like the biggest bang for the buck.</p>
<p>Create a scatter plot of value versus cost.</p>
<p><img class="alignnone" title="value versus cost sprint scatterplot" src="http://sehlhorst.smugmug.com/photos/398851298_ncqJ6-L.jpg" alt="" width="450" height="328" />[<a title="larger scatterplot of value vs cost for sprint planning" href="http://sehlhorst.smugmug.com/photos/398851074_GWYex-L.jpg">larger version</a>]</p>
<p>You can clearly see the differences in value and differences in cost of the different stories.  If, however, you add the element of value/cost &#8211; <strong>bang for the buck</strong> &#8211; and prioritize by it, you will schedule stories in a different order.  Value / cost is also the slope of a line from the origin of the graph to each story.  If you draw those lines, you see the following:</p>
<p><img class="alignnone" title="drawing bang for the buck when planning a sprint" src="http://sehlhorst.smugmug.com/photos/398850984_2vTLt-L.jpg" alt="" width="450" height="329" />[<a title="larger overlay of bang for the buck on sprint planning scatterplot" href="http://sehlhorst.smugmug.com/photos/398851238_ZrDiR-L.jpg">larger version</a>]</p>
<p>To maximize value delivery over time, work across the chart in a clock-wise direction.  <em>Profile editing</em> is the first task, but <em>grouping items</em> and <em>data abstraction refactoring</em> are tied for second place.  This is different because you&#8217;re prioritizing by bang-for-the-buck, not just bang.</p>
<h2>Collaboration And Agile</h2>
<p>When you consider the <a title="agile manifesto" href="http://tynerblain.com/blog/2006/05/10/agile-values-alistair-cockburn-on-the-agile-manifesto/">agile manifesto</a></p>
<blockquote><p>We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:</p>
<p><span style="font-weight: bold;">Individuals and interactions</span> over processes and tools<br />
<span style="font-weight: bold;">Working software</span> over comprehensive documentation<br />
<span style="font-weight: bold;">Customer collaboration</span> over contract negotiation<br />
<span style="font-weight: bold;">Responding to change</span> over following a plan</p>
<p>That is, while there is value in the items on the right, we value the items on the left more.</p>
<p>Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas</p>
<p>© 2001, the above authors.  <a title="this declaration" href="http://www.agilemanifesto.org/">this declaration</a> may be freely copied in any form, but only in its entirety through this notice.</p></blockquote>
<p>you see that there is an opportunity to take this even further.</p>
<h2>Have Developers Improve &#8216;The Plan&#8217;</h2>
<p>I proposed an idea to the development lead on an agile team a couple weeks ago.  A couple hours later, he pinged me to let me know he had just applied it and was very excited.  A quick whiteboard session (started with a version of the diagrams above), and he was able to immediately make his sprint better.</p>
<p>I told him that when I was still slinging code, and later, when working with teams of engaged and talented developers, I often ran into the problem of having a &#8220;cool capability&#8221; and wanting to get that capability into the current release.  I wasn&#8217;t pushing for the capability because it was high bang-for-the-buck, or even high-bang &#8211; I just thought it was cool.  So I would implement it.  Bad Scott, no biscuit.</p>
<p>What I proposed was that when a developer has a favorite feature, instead of just trying to squeeze it in, the developer should figure out how to make it cost less, until it had the highest bang for the buck.  Each initial cost estimate is a planning-poker estimate.  By spending cycles on <em>design</em>, a developer can figure out a cheaper way to implement it.  And that moves the story to the left on the chart.</p>
<p>Your challenge, visually, if you want to bump <em>reporting </em>up in the planning backlog, looks like the following:</p>
<p><img class="alignnone" title="changing the cost of a story" src="http://sehlhorst.smugmug.com/photos/398880285_j52Tp-L.jpg" alt="" width="450" height="328" />[<a title="larger version of redesigning to lower costs when sprint planning" href="http://sehlhorst.smugmug.com/photos/398880398_BGc8o-L.jpg">larger version</a>]</p>
<p>You, as a member of the implementation team, have to come up with a design for reporting that is roughly one-third the cost that was originally estimated.  Do that, and it gets bumped up in the queue.  [And yes, I realize that very few developers get excited about reporting.]</p>
<p><strong><span style="text-decoration: underline;">The product manager</span>&#8216;s job is to make sure you get all the dots in the right place <em>vertically</em>.</strong></p>
<p><strong><span style="text-decoration: underline;">The implementation team</span> puts the dots in the right place <em>horizontally</em>. </strong></p>
<p>Everyone embraces the ability to change the graph.  The product manager moves the dots up and down as she learns more about the needs of the market.  The implementation team moves them to the left (and sometimes to the right) as they design better solutions.</p>
<p>Quoting Luke again &#8211; &#8220;<em>Our experience is that successful Agile Product Managers have an almost natural, intuitive feel for prioritizing backlog items to drive profitable growth. Fortunately, this natural ability is greatly enhanced when they make the link between the backlog and their ability to drive profit explicit.</em>&#8221;</p>
<p>This feels intuitive to me.  What about you?</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Plan+Your+Next+Sprint+By+Bang+For+The+Buck%3A+Part+2+http%3A%2F%2Fbit.ly%2FgcMUF5+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/10/20/planning-sprints-part-2/&amp;t=Plan+Your+Next+Sprint+By+Bang+For+The+Buck%3A+Part+2" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/10/20/planning-sprints-part-2/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Plan Your Next Sprint By ROI: Part 1</title>
		<link>http://tynerblain.com/blog/2008/10/16/planning-sprints-by-roi/</link>
		<comments>http://tynerblain.com/blog/2008/10/16/planning-sprints-by-roi/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 04:16:52 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile planning]]></category>
		<category><![CDATA[personas]]></category>
		<category><![CDATA[return on investment]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[sprint planning]]></category>
		<category><![CDATA[stake holders]]></category>
		<category><![CDATA[stakeholders]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=729</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F10%2F16%2Fplanning-sprints-by-roi%2F", "style": "big", "title": "Plan Your Next Sprint By ROI: Part 1" }); You&#8217;ve got a giant backlog of user stories and product capabilities.  How do you determine which stories to implement right now?  By the estimated value of each story?  Pick the ones the developers want to build next?  How about picking [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F10%252F16%252Fplanning-sprints-by-roi%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Plan%20Your%20Next%20Sprint%20By%20ROI%3A%20Part%201%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F10%2F16%2Fplanning-sprints-by-roi%2F", "style": "big", "title": "Plan Your Next Sprint By ROI: Part 1" });</script></div>
<p><img class="alignnone" title="sprinter" src="http://sehlhorst.smugmug.com/photos/395786872_3p9zN-S.jpg" alt="" width="225" height="300" /></p>
<p>You&#8217;ve got a giant backlog of user stories and product capabilities.  How do you determine which stories to implement right now?  By the estimated value of each story?  Pick the ones the developers want to build next?  How about picking the stories that maximize the ROI of the sprint?  To do that, you need to estimate both value and cost.  While remaining agile.</p>
<p><span id="more-729"></span></p>
<h2>ROI Refresher</h2>
<p>In our earlier <a title="definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/"><em>Definition of ROI: Return on Investment</em></a> article, we provide an explanation and example of calculating ROI.  In short, ROI is the acronym for return on investment.  How much return do you get, as a percentage of what you have to invest.  If you invest $100 to get $120, your return is $20 (the profit).  Your investment is $100.  Your ROI is 20% (20/100).  Another way to think about it is <em>bang for the buck</em>.</p>
<h2>Prioritizing by ROI versus Prioritizing by Value</h2>
<p>You can prioritize based on value &#8211; &#8220;Do the most valuable thing first.&#8221;  And that is a good, but suboptimal approach.  We even suggested it as &#8220;the best&#8221; prioritization technique in our <a title="prioritization by value" href="http://tynerblain.com/blog/2006/01/18/prioritizing-requirements-three-techniques/">prioritization article from almost three years ago</a>.  Since then, by continuing to focus on software product success, I&#8217;ve learned to believe in a better way.</p>
<p>Just over a year ago, we showed how <a title="prioritize by roi" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">prioritizing by ROI delivers value faster</a>.  The reason this works is that each sprint (or timebox) has a fixed capacity for work, so you want to cram as much value into that box as possible &#8211; not just do the most valuable thing first.  Here are a couple images from the previous article that show the impact of using this approach.</p>
<p>Identified stories, from highest value to lowest value (V = Value, W = Work (or cost)).</p>
<p><img class="alignnone" title="highest value to lowest value" src="http://sehlhorst.smugmug.com/photos/179245541-M.png" alt="" width="473" height="119" /></p>
<p>If you can schedule 30 units of work in a sprint, your first sprint will deliver 19 units of value, and your second sprint will deliver an additional 9 units of value.  The thirs sprint delivers the remaining 15 units of value.  Why more value in the third sprint than the second?  Because you didn&#8217;t sort by ROI, you sorted by value &#8211; but were constrained by cost.  When you sort by ROI, you get the same tasks, in the following order:</p>
<p><img class="alignnone" title="stories sorted by ROI" src="http://sehlhorst.smugmug.com/photos/179245574-M.png" alt="" width="473" height="119" /></p>
<p>With this sorting, your first sprint delivers 25 units of value, your second sprint delivers 9 units, and your final sprint delivers an additional 9 units of value.  There are more details in the original <a title="value maximization and project planning" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">value-maximization article</a>.</p>
<p>This is critical to <a title="market driven strategy" href="http://tynerblain.com/blog/2008/08/26/market-driven-advantage/">executing a market-driven strategy</a> that will dominate your competitors.  You not only have to stay tapped in to the market needs, but you have to deliver faster than the other guys, or your distinctive insights will be wasted.</p>
<h2>Political Prioritization</h2>
<p>Really?  Yes.  The first risk to the success of a project is that it gets canceled.  Only the projects that don&#8217;t get killed even have a chance to be right, and therefore maximize value for your customer (or company).  That means you need to prioritize in a way that satisfies your stakeholders.  After attending last year&#8217;s IBRF, I wrote the following article as an interpretation (and slight extension) of Roger Burlton&#8217;s very good presentation about process improvement.  When you&#8217;re tasked with improving a company&#8217;s processes, the first question you have to ask is &#8220;which ones should we improve first?&#8221;</p>
<p>From that article:</p>
<blockquote><p>This analysis focuses on <a title="principal stakeholders" href="../2007/10/11/stakeholder-goals/"><em>principal</em> stakeholders</a>. The goal of this analysis is to encourage your principal stakeholders, or sponsors, to prioritize the most valuable processes first. Not all stakeholders are created equal, so you have to <em>weight</em> the relative importance of each stakeholder. You can weight them politically, by influence, or by whatever factor is most likely to get buy-in from the executives.</p>
<p><cite><a title="stake holder value matrix" href="http://tynerblain.com/blog/2007/10/25/stakeholder-value-matrix/">Stakeholder Value Matrix</a></cite></p></blockquote>
<p>The end result is a prioritized list of processes to improve, based upon which ones cause the combination of most pain (current state) and most gain (when improved) across your stakeholders, based on maximizing the utility of the group of stakeholders.</p>
<p><img class="alignnone" title="prioritizing by utility" src="http://sehlhorst.smugmug.com/photos/211760686-M.jpg" alt="" width="435" height="435" /></p>
<p>Visually, the preceding diagram shows the end results of aggregating the stakeholder inputs in terms of pain and gain.  A couple utility curves are overlaid (arrow shows increasing utility) to show what to do first.  The 1,2,5 processes are clustered together in the &#8220;highest utility&#8221; or &#8220;most value&#8221; range.  This approach would focus on those processes first.</p>
<h2>Persona Prioritization</h2>
<p>When developing software, you should primarily be user-focused.  [Note: this is somewhat of a religious debate, I guess we worship at the chapel of UX.]  Luckily, most of the time, <a title="stakeholder goals" href="http://tynerblain.com/blog/2007/10/18/stakeholder-goals-2/">stakeholder goals and user goals are not in conflict</a>.  However, to sell your solution, you need to make sure you are <a title="buyer personas and user personas" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">addressing both buyer goals and user goals</a>.  Sometimes they are the same, like with consumer products, and sometimes they are not, like many enterprise software products.</p>
<p>As a product manager, you have to know when to listen to, and when to ignore the squeeky wheels.  If you&#8217;re in a start-up doing its second product, solving a new problem for a new market segment, you&#8217;re dealing with founder&#8217;s dilemma.  That founder has a bunch of stakeholder goals for you, and the juice to make sure you address them.  If you&#8217;re trying to <a title="working with analysts" href="http://www.rocketwatcher.com/blog/2008/09/working-with-analysts-is-a-pain-in-the-butt-but-you-should-do-it-anyway.html">get analyst&#8217;s attention [good article by April Dunford at Rocket Watcher]</a>, you may feel pressured to prioritize &#8220;check the box&#8221; features that may be important only to buyers and analysts, without actually adding value for the users.</p>
<p>Of course, you can&#8217;t ignore analysts and buyers and <a title="outside in development" href="http://tynerblain.com/blog/2007/09/27/outside-in/">internal stakeholders</a>.  If your product gets cancelled before you get to market, you&#8217;re done.  If analysts criticize or ignore your product (for some markets), you lose a lot of sales.  And if buyers don&#8217;t &#8220;think they want it&#8221;, they won&#8217;t buy.  You never get a chance to demonstrate value to the users.</p>
<p>But focusing solely on those folks means you won&#8217;t have a product that people love, and you won&#8217;t generate <a title="word of mouth marketing" href="http://tynerblain.com/blog/2007/09/18/dynamics-of-word-of-mouth/">word</a>-of-<a title="word of mouth and usability" href="http://tynerblain.com/blog/2007/01/10/usability-sells-software/">mouth</a>, customer loyalty, or value for your customers.</p>
<p>So any solution needs to account for the needs of the users.  Organizing users into <a title="user personas" href="http://tynerblain.com/blog/2006/04/17/persona-grata/">personas</a>, and making strategic decisions about which ones are important will help.  Include the other people (buyers, etc) but use a persona-centric model for describing what you&#8217;re doing &#8211; just to make sure the users are at the center of your decisions.</p>
<h2>Intermission</h2>
<p>So far, we&#8217;ve argued that prioritization should be by ROI, and while accounting for other people, should be user focused.  Actually, nothing above is sprint-specific, the same concepts apply to any product planning and development approach.</p>
<p>In part 2, we&#8217;ll look at defining user stories and user persona.  We&#8217;ll look at the value of each story relative to cost, and show a couple low-overhead ways to easily visualize this info &#8211; both driving scheduling and motivating the team to improve.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Plan+Your+Next+Sprint+By+ROI%3A+Part+1+http%3A%2F%2Fbit.ly%2FhQrb5D+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/10/16/planning-sprints-by-roi/&amp;t=Plan+Your+Next+Sprint+By+ROI%3A+Part+1" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/10/16/planning-sprints-by-roi/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Impact of a Hidden Decision</title>
		<link>http://tynerblain.com/blog/2008/10/08/hidden-decision-impact/</link>
		<comments>http://tynerblain.com/blog/2008/10/08/hidden-decision-impact/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 03:20:11 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Business Rules]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Process Flow]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[business process analysis]]></category>
		<category><![CDATA[business process optimization]]></category>
		<category><![CDATA[hidden business rules]]></category>
		<category><![CDATA[hidden decisions]]></category>

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

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+The+Impact+of+a+Hidden+Decision+http%3A%2F%2Fbit.ly%2FftuPGt+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/10/08/hidden-decision-impact/&amp;t=The+Impact+of+a+Hidden+Decision" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/10/08/hidden-decision-impact/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Market Driven Competitive Advantage</title>
		<link>http://tynerblain.com/blog/2008/08/26/market-driven-advantage/</link>
		<comments>http://tynerblain.com/blog/2008/08/26/market-driven-advantage/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 03:54:05 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile product management]]></category>
		<category><![CDATA[enthiosys]]></category>
		<category><![CDATA[market driven]]></category>
		<category><![CDATA[tuned in]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=697</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F08%2F26%2Fmarket-driven-advantage%2F", "style": "big", "title": "Market Driven Competitive Advantage" }); Your strategy should be driven by the needs of the market.  Becoming market-driven is critical to intentional product success.  But it is not enough to understand your market.  You have to sustain your understanding, and take advantage of it, competitively. Markets Evolve Over Time [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F08%252F26%252Fmarket-driven-advantage%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Market%20Driven%20Competitive%20Advantage%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F08%2F26%2Fmarket-driven-advantage%2F", "style": "big", "title": "Market Driven Competitive Advantage" });</script></div>
<p><img src="http://www.smugmug.com/photos/359645395_oFcSZ-L.jpg" alt="mostly full glass" width="250" height="333" /></p>
<p>Your strategy should be driven by the needs of the market.  Becoming market-driven is critical to intentional product success.  But it is not enough to understand your market.  You have to sustain your understanding, and take advantage of it, competitively.</p>
<p><span id="more-697"></span></p>
<h2>Markets Evolve Over Time</h2>
<p>We all acknowledge that markets are not completely static.  If they were, there would be no impetus for innovation.  Customers change, their environment changes, and the competitive landscape changes.  All of these changes cause a market to change.  Even if a given market were static, you don&#8217;t have perfect information about it.  Your understanding of that market increases over time.</p>
<p><em>The market</em> is an abstract concept, and you have to make decisions about something tangible.  What is tangible is your <em>understanding of</em> the market.  And you make decisions based on your understanding of the market. You can visualize the market in a way that may cause you to rethink (or solidify) your approach to solving market problems.</p>
<p><img src="http://www.smugmug.com/photos/359586973_FCDye-L.gif" alt="market needs over time" width="450" height="297" /></p>
<p>In the chart above, we are showing that there is some amount of information (think of information as an understanding that we haven&#8217;t developed yet) about a market.  It represents the potential of what <em>could be</em> understood about the market.  Over time, the amount that can be understood increases.  Also note that there is already a non-zero amount of &#8220;understanding&#8221; at the start of the chart.  The market did not spontaneously spring forth from an oyster the moment you decided to look at it.</p>
<h2>You Affect Your Markets</h2>
<p>There is also an important dynamic to consider &#8211; you affect your markets by introducing solutions.</p>
<p><img src="http://www.smugmug.com/photos/359586979_LzGM9-L.gif" alt="influencing the market" width="450" height="384" /></p>
<p>Whenever someone introduces an innovative solution to a market problem, the market changes.  Solving that problem exposes another problem.  Or it may introduce another problem.</p>
<ul>
<li>When cars replaced horses, they introduced atmospheric polution problems.  Before that, we only had to worry about horse waste.</li>
<li>When airplanes solved the problem of traveling long distances in a short amount of time, more people began traveling further.  And those people discovered a need (desire) to stay connected (phone, internet, etc) while en-route.</li>
<li>When it became convenient to carry music around with you on a portable player, the problem of carrying <em>all of your music</em> around with you was discovered / created.</li>
</ul>
<p>You can argue that these problems were introduced because of innovative solutions, or that the problems were latent, and were only discovered because of the innovations.  It doesn&#8217;t matter.  What matters is that these problems were previously unaddressable, and now solutions to these problems have value.</p>
<h2>Your Knowledge of Your Markets</h2>
<p>Using the diagram above as a baseline of what <em>can be known</em>, and overlaying your knowledge looks like the following:</p>
<p><img src="http://www.smugmug.com/photos/359586988_coaQz-O.gif" alt="your knowledge of the market" width="450" height="385" /></p>
<p>At the moment when you decide to understand a market, you don&#8217;t know anything about it.  Your knowledge rapidly approaches what &#8220;can be known&#8221;, and assuming you have <a title="managing market data" href="http://tynerblain.com/blog/2008/08/19/managing-market-data/">perfect research, elicitation, and synthesis skills</a>, you eventually understand all that can be understood about the needs of the market.</p>
<p>So much advice has been written about <a title="buyer personas and user personas" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">being market focused</a>, that it is easy to think that this is all you need.  <a title="converting from an mrd to a prd" href="http://tynerblain.com/blog/2006/02/09/mrd-to-prd-requirements-conversion/">As soon as you understand &#8220;everything&#8221; you define requirements</a> and start creating products.  <a title="study your market, not your customers" href="http://tynerblain.com/blog/2008/07/15/the-non-customer-is-always-right/">Being market focused</a> is extremely important.  But you have to sustain that focus.</p>
<h2>Competition in Your Market</h2>
<p>In the diagram above, you see the dynamics of your market.  You develop an understanding of your market, a competitor delivers an innovative solution to a problem, and you have to play catch-up.  Note &#8211; this is only talking about playing catch-up in <em>your understanding</em> of the market.  You also need to continue to develop new solutions for the market in order to capitalize on your understanding.</p>
<p>The next diagram shows what this will look like when there is active competition in the market.</p>
<p><img src="http://www.smugmug.com/photos/359586993_Nf6nZ-L.gif" alt="competitive market dynamics" width="450" height="394" /></p>
<p>The diagram above shows <a title="product differentiation is the key" href="http://tynerblain.com/blog/2006/05/24/differentiation-vs-improvement/">three disruptive events</a>.  <a title="ten tips for preventing innovation" href="http://tynerblain.com/blog/2006/03/06/top-ten-tips-for-preventing-innovation/">You innovate</a>, <a title="innovation magic square" href="http://tynerblain.com/blog/2006/03/28/magic-square-of-innovation/">someone else innovates</a>, and you innovate again.  Each time someone else innovates, they have an edge on understanding the market.  They just solved a problem, uncovering new problems that can be solved, and you have to gain that knowledge too &#8211; it wasn&#8217;t available (or didn&#8217;t exist) previously.</p>
<h2>Competitive Advantage</h2>
<p>Each time you innovate, you establish a temporary competitive advantage.</p>
<p><img src="http://www.smugmug.com/photos/359586997_xXG83-L.gif" alt="competitive advantage" width="416" height="378" /></p>
<p>When you introduce a novel solution to a problem, the market uncovers new problems.  Presumably, you have already thought about the next steps.  You have already engaged the market (through <a title="prototyping and iteration" href="http://tynerblain.com/blog/2006/02/21/software-requirements-specification-iteration-and-prototyping/">prototyping</a> and other <a title="active listening" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">elicitation activities</a>) to get feedback on your solution.  Hopefully, as part of that exercise, you&#8217;ve also explored &#8220;what&#8217;s next&#8221; and incorporated that into your plans.  This is the advantage you have created.  If you don&#8217;t explore &#8220;what&#8217;s next,&#8221; you waste that opportunity.</p>
<p>The opportunity won&#8217;t last forever.  Your competition will see your solution, talk to your customers, and otherwise explore &#8220;what&#8217;s next.&#8221;  It will take time, but they will catch up.  Over the long term, you benefit from exploiting a series of these opportunities.  Look at the iPod and the Zune.  Apple has delivered a series of disruptive changes, continually building on what they have learned.  Microsoft is playing catch-up with the Zune.  Each version of the Zune shares a lot of design cues and features with earlier iPods.  To Microsoft&#8217;s credit, they are trying to innovate too &#8211; like with the &#8220;squirt&#8221; technology that lets you share a song temporarily with another Zune user.  Either this is not a valuable problem, or the solution is not effective &#8211; because it has not taken off (in buzz, market share, or general clamoring for an iPod-based equivalent).</p>
<h2>Fast Follower Competition</h2>
<p>Some <a title="being effective as a second mover" href="http://tynerblain.com/blog/2006/02/28/second-mover-opportunities-bringing-a-gun-to-a-knife-fight/">competitors intentionally act as second movers</a>.  Instead of focusing their efforts on discovering problems or developing innovative solutions, they focus on playing catch-up very very well.</p>
<p><img src="http://www.smugmug.com/photos/359587004_nHRq5-O.gif" alt="fast follower" width="379" height="379" /></p>
<p>A fast-follower reduces (but does not eliminate) your temporary advantage.  At the same time, the fast follower creates their own advantage relative to every other competitor in the market.  This can be a very effective strategy, especially when there are multiple innovators in a single market.  The fast follower can follow the best ideas of each innovator, possibly even ending up with a better overall product than any of the innovators (who are slow followers of other companies).</p>
<p>Microsoft is clearly a follower of Mozilla when it comes to browsers.  The tabbed navigation concept introduced in Firefox was a game changer, at least for the tech-savvy who need to juggle multiple web pages at the same time.  Personally, I was thrilled to move from multiple Internet Explorer windows to a single Firefox window with multiple tabs.  IE7 has that capability now too.  I don&#8217;t know the browser market well enough to know if I would characterize Microsoft as a <em>fast</em> follower, but my guess is no.</p>
<p>After the post-World War 2 reconstruction in Japan, the Japanese automakers definitely acted as fast followers.  They did it with assistance from the US, and even moved past the US automakers by choosing to listen to Deming (a guru on efficiency and quality) instead of ignoring him like the US big 3 (automakers) did.  And it did indeed pay off for them &#8211; <a title="toyota unseats gm" href="http://www.usnews.com/blogs/flowchart/2008/6/9/how-toyota-could-become-the-us-sales-champ.html">Toyota is poised to unseat GM</a> as the number one automaker in the US for 2008.  There are certainly other factors at play, but the Japanese companies would never have had a chance if they had not been competitive in the first place.</p>
<h2>Business Agility</h2>
<p>Business agility is one of the hotter buzz-phrases these days.  The business-rules-automation market is thriving on the desire of businesses to become more agile.  Why does agility matter?  Because it can make you dramatically more competitive.</p>
<p><strong>Business Agility is not the same as agile development!</strong></p>
<p>Business Agility is a measure of the ability of a business to adapt to the changing needs of the market.  To adapt quickly, your company has to accomplish two things:</p>
<ul>
<li>Quickly identify and understand the changes in your market.</li>
<li>Quickly deliver new and improved solutions that address the changing needs of your markets.</li>
</ul>
<p>[How to quickly execute is covered in other articles in the <a title="business rules category" href="http://tynerblain.com/blog/category/business-rules/">business rules</a> (including their <a title="The impact of business rules on agility" href="http://tynerblain.com/blog/2007/07/12/business-rules-yield-agility/">impact on agility</a>) and <a title="agile articles" href="http://tynerblain.com/blog/category/software-development/agile/">agile development</a> categories on Tyner Blain.]</p>
<p><img src="http://www.smugmug.com/photos/359587014_yRG3q-O.gif" alt="business agility" width="450" height="394" /></p>
<p>In the diagram above, you (the red curve on the top) are innovating repeatedly.  You are also adapting to the changes in your market from other innovations (and other sources of change, not shown).  You are practicing agile product management.  Your competition (the green curve on the bottom) is not.  As this trend continues, you see that your <em>exploitable advantage</em> becomes a sustained advantage.  You will have an ever-increasing advantage as you stay tapped into your market.  If you are executing (to deliver product) and communicating (to educate), you will be able to leverage your insights into a position of thought leadership.  [Note: "thought leader" is a title that can <em>not</em> be self-annointed, it has to be earned and perceived within your market / community.]</p>
<p>The end result is that you will be consistently aware of unserved market needs that you can serve before your competitors can.  That translates into increased demand for your products, which you can use to grow share, grow profits, etc.</p>
<p>That&#8217;s why business agility matters.  It isn&#8217;t cost reduction that is important, its top-line growth.</p>
<h2>Agile Product Management</h2>
<p>Staying tapped into your market like this is a strategic component of agile product management.  While continuously staying tapped-in (or <a title="pragmatic marketing tuned in" href="http://www.pragmaticmarketing.com/tunedin">Tuned-In</a>), you regularly interact with your internal stakeholders to make agile development processes work.  Enthiosys has a great <a title="enthiosys whitepaper" href="http://www.enthiosys.com/apm-whitepaper/">introduction to agile product management</a> (free download with registration), if you&#8217;re getting frustrated with the many &#8220;empty presentations&#8221; about agile product management, then definitely check that one out &#8211; it has meat.  Relative to their <em>onion</em>, the topics in this article map to the <em>portfolio</em> and <em>product</em> layers.</p>
<p>If you aren&#8217;t already convinced of the value of a tight market focus, consider the following diagram, contrasting the impact of agile product management and traditional, <a title="waterfall and incremental processes" href="http://tynerblain.com/blog/2006/01/03/foundation-series-software-process-waterfall-process-versus-incremental-process/">waterfall</a> product management.</p>
<p><img src="http://www.smugmug.com/photos/359587019_SFibj-L.gif" alt="waterfall product management" width="450" height="303" /></p>
<ul>
<li>The red curve on the top (same as previous slides) represents an agile product manager staying tapped into her market.</li>
<li>The grey curve in the middle represents a product manager staying tapped into the market, but not as tightly.</li>
<li>The green curve on the bottom shows what happens when your organization is trapped in a waterfall delivery model.</li>
</ul>
<p>The green curve, instead of reflecting understanding, reflects the understanding <em>against which the team executes</em>.  When you lock in or &#8220;freeze&#8221; the requirements, then begin a sequential development process, you stop taking advantage of market insights.  You essentially decouple your implementation team from the market &#8211; &#8220;we know enough already.&#8221;  So even though your product manager may be learning more (the grey curve), you aren&#8217;t taking advantage of that knowledge, so it is adds no value.</p>
<p>As an agile product manager, working with an agile implementation team, you will run circles around your waterfall competition.  Not only will you establish thought leadership, but you will be creating a distinctive competence for your company.  Your ability to understand the market, and quickly respond to changes in the market with valuable solutions will differentiate your company.</p>
<p>You also effectively change the dynamics of your sales over time.  Your accelerated insights allow you to release products (or capabilities) earlier.  Here&#8217;s a diagram from an earlier article on the ROI of agile that highlights the impact of this:</p>
<blockquote><p>If we take the most conservative approach to modeling sales with an agile process, the graph would look like the following:</p>
<p><img title="agile product life cycle" src="http://sehlhorst.smugmug.com/photos/132613783-M.png" alt="agile product life cycle" /></p>
<p>The sales volume curve is shifted to the left without changing its shape. The exact same growth curve applies to the product (this is the conservative assumption). The <em>decline</em> in sales continues to decline. The difference is that our previous time horizon (which remains fixed) now includes additional sales.</p>
<p><a title="agile development roi" href="http://tynerblain.com/blog/2007/02/27/agile-development-roi-1/">Product Life Cycle and the ROI of Agile Development</a></p></blockquote>
<h2>Agile Without Product Management</h2>
<p>There are people who suggest that product management has no place in an agile environment.  Those people believe that markets <em>can&#8217;t</em> be understood until they are served.  They will argue that customers &#8220;don&#8217;t know what they want&#8221; based upon the feedback they get from prototypes.  Customers change their minds.  Yup.  But it isn&#8217;t that the customers don&#8217;t know what they want, nor is it that markets don&#8217;t have shared needs/problems/goals/requirements &#8211; they do.  Providing solutions to those problems drives next-level thinking, and the identification of new and different problems.</p>
<p>If you don&#8217;t have product management, <a title="product success by intentional design" href="http://tynerblain.com/blog/2008/05/19/successful-products/">you can only succeed through luck</a>.  Throw stuff against the wall and see what sticks.  If something sticks, you win.  This is better than a waterfall model that ignores the market (for long periods of time where release plans are &#8220;set in stone&#8221;).  But it falls well short of driving a very efficient, adaptable implementation team directly towards identifiable market needs.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Market+Driven+Competitive+Advantage+http%3A%2F%2Fbit.ly%2FbsHoFS+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/08/26/market-driven-advantage/&amp;t=Market+Driven+Competitive+Advantage" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/08/26/market-driven-advantage/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Successful Products: Lucky or Intentional?</title>
		<link>http://tynerblain.com/blog/2008/05/19/successful-products/</link>
		<comments>http://tynerblain.com/blog/2008/05/19/successful-products/#comments</comments>
		<pubDate>Tue, 20 May 2008 03:03:47 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></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 gathering]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[empirical processes]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[market identification]]></category>
		<category><![CDATA[product roadmaps]]></category>
		<category><![CDATA[product success]]></category>
		<category><![CDATA[rolling wave planning]]></category>
		<category><![CDATA[software product success]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=681</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F05%2F19%2Fsuccessful-products%2F", "style": "big", "title": "Successful Products: Lucky or Intentional?" }); Is your product successful because you were lucky, or because you were methodical and intentional? Do you want to build a plan where you are dependent on good fortune, or do you want to make your own &#8220;luck?&#8221; Both approaches work, but only [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F05%252F19%252Fsuccessful-products%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Successful%20Products%3A%20Lucky%20or%20Intentional%3F%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F05%2F19%2Fsuccessful-products%2F", "style": "big", "title": "Successful Products: Lucky or Intentional?" });</script></div>
<p><img src="http://sehlhorst.smugmug.com/photos/298153581_QJz2t-L.jpg" alt="heads" width="250" height="187" /><img src="http://sehlhorst.smugmug.com/photos/298153556_t7Vug-L.jpg" alt="tails" width="250" height="187" /></p>
<p>Is your product successful because you were lucky, or because you were methodical and intentional?</p>
<p>Do you want to build a plan where you are dependent on good fortune, or do you want to make your own &#8220;luck?&#8221;  Both approaches work, but only one makes sense as an intention.  Slide 3 of your presentation to a venture capitalist should not say &#8220;And then we get lucky!&#8221;</p>
<p><span id="more-681"></span></p>
<h2>Product Success Is Not Easy</h2>
<p>Saeed Khan wrote a critique recently, in <a title="product success at on product management" href="http://onproductmanagement.wordpress.com/2008/05/19/product_success/"><em>On Product Management</em></a>, of an article by Phil Meyers on the <a title="chasing outcomes" href="http://www.tunedinblog.com/blog/2008/03/chasing-outcome.html"><em>Tuned In</em></a> blog.  Phil&#8217;s article is an analysis of the pending re-organization at Starbucks, and the one quote that Saeed keyed in on was:</p>
<blockquote><p>At the end of the day, its simple.  Create a product or service that your buyers want to buy and the rest takes care of itself.</p></blockquote>
<p>Saeed&#8217;s point is that it is not that easy.  A lot of hard work goes into creating a successful product.  And Saeed&#8217;s right.</p>
<p>Maybe Phil&#8217;s point is that the <em>executive</em> should not worry about the details, and trust in his team to do all the hard work.  But he doesn&#8217;t really come out and say that, so we can&#8217;t really back him up on that front.  Let&#8217;s give him the benefit of the doubt anyway.  There&#8217;s another point that Phil makes that is potentially disturbing:</p>
<blockquote><p>Looking at metrics like average same day sales and products per square foot lead you down some strange paths. Schultz even admitted as much in a letter from the board about a year ago in which he worried about the company &#8216;losing its core&#8217;.</p></blockquote>
<p>Yes, abandoning your goals to pursue your metrics is bad.  But don&#8217;t abandon your metrics to pursue your goals &#8211; unless all you want to do is get lucky.</p>
<p>You might argue that a company like <a title="animoto" href="http://animoto.com/">Animoto </a>got lucky when their product spread virally within <a title="facebook" href="http://www.facebook.com/home.php">Facebook</a> and their user base jumped from 25,000 to 700,000 users.  But if you listen to the <a title="net@nite animoto interview" href="http://twit.tv/natn49">interview</a> that Amber MacArthur did with co-founder Brad Jefferson, you will realize that it was only when they <em>tweaked</em> their product offering &#8211; a response to empirical analysis of product adoption metrics &#8211; did their success explode.  I would argue that they <em>made their luck</em> by being intentional.</p>
<h2>Empirical Processes</h2>
<p>When you can perfectly model your business analytically, you can measure the inputs and know (with certainty) the outputs.  As a college engineering student, I learned this.  Real world processes can never be perfectly modeled analytically.  As a professional engineer, I learned this too.  Real world processes are empirical.  The secret to great engineering is to apply analytics to those empirical processes to create disruptive innovation, and combine it with empirical controls that help you statistically predict the likely outputs.  The answer is simply that neither analytics nor empiricism <em>alone</em> can help you achieve greatness.</p>
<p>Business processes are also empirical in nature.  Even when you can devise an analytical model for the behavior of an <em>isolated</em> system, you have to acknowledge that <em>no real world system</em> is isolated.  You have to expect unexpected inputs into the system.  As Saeed points out, you have to apply analyses to make smart decisions when developing your process (or business model, or product).  And what Phil appears to discount is that you also need to apply empirical measurements to your process (or business or product) to control the expected results.</p>
<h2>Creating Successful Products Intentionally</h2>
<p>This article proposes that there are two paths to product success.  The first path is simple.  Cross your fingers, then get lucky.  The second path is harder.  Be intentional.</p>
<ol>
<li>Identify your market (and therefore your customers and competition).</li>
<li>Identify their problems, and select the ones you will solve.</li>
<li>Create a product roadmap (aka a &#8220;plan&#8221;) to solve those problems.</li>
<li>Design and implement solutions to the most valuable problems.</li>
<li>Get feedback on your solutions.</li>
<li>Incorporate your feedback into your plan (step 3) and repeat.</li>
<li>Revisit your market (step 1) and the problems you choose to solve (step 2) and repeat.</li>
</ol>
<p>Note: Step 7 should occasionally replace step 6, so that you stay focused on your market, and not just an out-of-date snapshot of what used to be important to your customers.</p>
<h2>1. Identify Your Market</h2>
<p>There are a lot of ways to pick a market to focus on.  You can chase demographics &#8211; there sure will be a lot of retired people in the US thanks to the <a title="wikipedia baby boomers" href="http://en.wikipedia.org/wiki/Baby_boomer">baby-boomers</a>.  You can go with what you know &#8211; years of paying attention to an industry presents ample opportunities to understand the market.  You can create an entirely new &#8211; blue ocean &#8211; market by solving problems people don&#8217;t even realize they have until you offer a solution.  Choosing a market is the subject of many books, not just an item in a list.</p>
<p>Once you choose a market, you need to <a title="market segmentation" href="http://tynerblain.com/blog/2006/04/25/market-segmentation-or-senseless-mistake/">segment the market</a> into groups of people who share the same problems and who value solutions to those problems similarly.  You can <a title="improve your market segmentation" href="http://tynerblain.com/blog/2006/11/01/how-to-apply-market-research-better/">apply market research to improve your market segmentation</a>.</p>
<h2>2. Select The Problems You Will Solve</h2>
<p>You use <a title="elicitation techniques" href="http://tynerblain.com/blog/2006/01/14/top-five-requirements-gathering-tips/">elicitation skills</a> to <a title="writing good problem statements" href="http://tynerblain.com/blog/2008/05/12/your-problem-statement/">identify the problems that your customers face</a>.  And when you have to address multiple market segments, you can <a title="prioritization across market segments" href="http://tynerblain.com/blog/2008/04/09/improved-prioritization/">prioritize the problems across those market segments</a>.</p>
<h2>3. Create a Product Roadmap</h2>
<p>Once you&#8217;ve prioritized the problems you are going to solve, create a product roadmap.  <a title="product roadmaps should focus on problems" href="http://tynerblain.com/blog/2008/04/28/dont-build-a-stupid-product-roadmap/">Your product roadmap should show the problems you are solving</a>, and the order in which you will solve them.  When you define sequencing, you also must define your approach to <a title="scheduling product releases" href="http://tynerblain.com/blog/2007/03/01/scheduling-product-releases/">scheduling product releases</a>.</p>
<h2>4. Design and Implement Solutions</h2>
<p>There are two keys to successful execution of the plan you built with your product roadmap.  First &#8211; <a title="rolling wave planning" href="http://tynerblain.com/blog/2006/07/25/incremental-project-mgmt/">use rolling-wave planning to define near-term details</a> and long term vagaries.  Second &#8211; make sure you have <a title="intro to continuous integration" href="http://tynerblain.com/blog/2006/05/08/foundation-series-continuous-integration/">continuous integration</a> as a key component to managing quality throughout the process, instead of checking quality at the end (or even worse &#8211; <a title="The cost of ignoring quality" href="http://tynerblain.com/blog/2006/02/22/software-testing-series-measuring-the-cost-of-quality/">ignoring quality</a>).</p>
<h2>5. Get Feedback on Your Solutions</h2>
<p>This is half of why <a title="Is agile bad?" href="http://tynerblain.com/blog/2007/04/16/is-agile-bad-for-software/">agile (when done right) works</a> [Can you believe the discussion over the last year on this article is up to 27 comments?!].  Feedback is not just something you get when <a title="prototype feedback and other requirements gathering techniques" href="http://tynerblain.com/blog/2006/11/21/ten-requirements-gathering-techniques/">sharing a prototype with stakeholders</a>.  Feedback is also something you must get as part an <a title="incremental vs waterfall release processes" href="http://tynerblain.com/blog/2006/01/03/foundation-series-software-process-waterfall-process-versus-incremental-process/">incremental release methodology</a>.</p>
<p>You can even <a title="measuring the roi of design" href="http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/">measure the ROI of your designs</a>, and incorporate feedback at the design level.</p>
<h2>6. Incorporate Feedback Into Your Plan</h2>
<p>There&#8217;s no point in gathering feedback <a title="enabling and resisting change" href="http://http://tynerblain.com/blog/2007/07/09/enabling-and-resisting-change/">if your organization and your process are organized to resist changes to the plan</a>.  Contrary to what the Standish Group&#8217;s CHAOS study has always implied [and we've made this implicit mistake too], release schedules are not the primary measure of project success.  In <a title="defining success" href="http://www.ddj.com/architect/202800777?pgno=1">a fantastic article at <em>Dr. Dobb&#8217;s Journal</em></a>, Scott Ambler points out that in his survey results, almost two thirds of professionals find that doing the right thing is more important than meeting a project schedule.</p>
<blockquote><p>Schedule: 61.3 percent of respondents said that it is more important to deliver a system when it is ready to be shipped than to deliver it on time.</p></blockquote>
<p>Do the right thing.  If the right thing involves changing the schedule, that doesn&#8217;t make it wrong.  What makes this work is the fact that you are getting feedback early and often.  It is a risk mitigation strategy, designed to reduce the possibility that you will create an unsuccessful product.  It is not a strategy designed to keep your project on schedule no matter how mis-aligned you are to your market.</p>
<h2>7. Revisit What You Are Doing And Why</h2>
<p>If step 6 is small-scale course correction, this is large-scale course correction.  You may discover that solving a big problem for your customers exposes a new &#8220;biggest&#8221; problem that wasn&#8217;t there before.  By revisiting step 2, you can choose to tackle or ignore those newly discovered problems.</p>
<p>You may also discover that by leveraging your investments to date, you <a title="value maximization" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">dramatically improve the ROI</a> of solving problems in another valuable market segment.  This is because even if solutions to those problems have the same value, solutions to those problems now have <a title="5 tips for calculating costs and ROI" href="http://tynerblain.com/blog/2007/02/08/five-roi-calculation-tips/">much lower costs</a> (for you).  By revisiting step 1, you give yourself the opportunity to best manage your strategy, your resources, and your plans.</p>
<h2>Conclusion</h2>
<p>Product Success may have an element of luck, but you should never plan to hit the lottery.  Be intentional in what you will do, and a good plan, executed well and adapting to change, will get you there.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Successful+Products%3A+Lucky+or+Intentional%3F+http%3A%2F%2Fbit.ly%2FgVLce9+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/05/19/successful-products/&amp;t=Successful+Products%3A+Lucky+or+Intentional%3F" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/05/19/successful-products/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Use Case Management is a Tough Balancing Act</title>
		<link>http://tynerblain.com/blog/2008/02/04/balancing-use-cases/</link>
		<comments>http://tynerblain.com/blog/2008/02/04/balancing-use-cases/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 05:19:33 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[business goals]]></category>
		<category><![CDATA[corporate goals]]></category>
		<category><![CDATA[end users]]></category>
		<category><![CDATA[goal directed use cases]]></category>
		<category><![CDATA[goal-driven use cases]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[personas]]></category>
		<category><![CDATA[principal stakeholders]]></category>
		<category><![CDATA[principle stakeholders]]></category>
		<category><![CDATA[structured requirements]]></category>
		<category><![CDATA[two tier]]></category>
		<category><![CDATA[two tier requirements]]></category>
		<category><![CDATA[two tier sales requirements]]></category>
		<category><![CDATA[two-tier business model]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2008/02/04/balancing-use-cases/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F02%2F04%2Fbalancing-use-cases%2F", "style": "big", "title": "Use Case Management is a Tough Balancing Act" }); Learning how to write use cases can be tough, but it is simple compared to the balancing act of determining which use cases to write and how to manage the expectations of all the stakeholders that are involved. It can [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F02%252F04%252Fbalancing-use-cases%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Use%20Case%20Management%20is%20a%20Tough%20Balancing%20Act%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F02%2F04%2Fbalancing-use-cases%2F", "style": "big", "title": "Use Case Management is a Tough Balancing Act" });</script></div>
<p><img alt="balancing act" title="balancing act" src="http://www.smugmug.com/photos/250633145-L.jpg" /></p>
<p>Learning how to write use cases can be tough, but it is simple compared to the balancing act of determining which use cases to write and how to manage the expectations of all the stakeholders that are involved.  It can be a difficult balancing act to prioritize use cases to assure that you meet the goals of the business while satisfying the needs of the users.</p>
<p><span id="more-631"></span></p>
<h2>Goal Driven Use Cases</h2>
<p>In <a title="how structured requirements work" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">the world of structured requirements</a>, we apply an approach of top-down decomposition to determine what we need to build.</p>
<p><img alt="structured requirements" title="structured requirements" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" /></p>
<p>In an article stressing the importance of non-functional requirements,  we summarized the relationships from the above diagram as follows:</p>
<blockquote>
<ul>
<li>Goals are achieved by enabling use cases.</li>
<li>Goals drive non-functional requirements.</li>
<li>Use cases are enabled by <a title="Writing Functional Requirements to Support Use Cases" href="http://tynerblain.com/blog/2006/02/10/writing-functional-requirements-to-support-use-cases/">implementing functional requirements</a>.</li>
<li><a title="Use Case Series Introduction" href="http://tynerblain.com/blog/2005/12/18/use-case-series-introduction/">Use cases</a> influence non-functional requirements.</li>
<li>Non-Functional Requirements define the characteristics of functional  requirements.</li>
<li>Functional requirements drive design decisions</li>
<li>Design choices are restricted by constraints</li>
<li>Design choices guide implementation</li>
<li>Implementation is product</li>
</ul>
<p><cite><a title="the importance of non-functional requirements" href="http://tynerblain.com/blog/2006/05/23/non-functional-requirements-era/">Non-Functional Requirements Equal Rights Amendment</a></cite></p></blockquote>
<p>The key element, with respect to this article, is that <strong>goals are achieved by enabling use cases</strong>.  In other words, without the use cases that people* perform, the goals of the business can not be achieved.</p>
<p>[*Sometimes the use case is performed by a system - not all actors are people]</p>
<h2>Principal Stakeholders Own Business Goals</h2>
<p>We learned a lot from <a title="outside in software development" href="http://tynerblain.com/blog/2007/09/27/outside-in/"><em>Outside-In Software Development</em></a>, by Carl Kessler and John Sweitzer.  One of the important things we learned is how to understand the goals of <em>principal</em> stakeholders.  Principal stakeholders are the &#8220;owners&#8221; of the ROI that we are attempting to achieve with our product or solution.  The business has the goals, but the business is an abstract entity.  If the goal of the business is to increase sales by 10%, we can&#8217;t call up the business and ask &#8220;did we meet your goal?&#8221;  We have to call up the vice president of sales.  The business is organized so that there are people who are responsible for the initiatives and goals of the business &#8211; they are responsible for growth, profitability, costs, strategy.  The insight we got from Kessler and Sweitzer is an appreciation that this ownership lies with one or more <em>individuals</em>.</p>
<p>When a goal has an owner, we can validate that we have met the goal.  We can validate that we have satisfied the owner of the goal.  You can&#8217;t do that validation with an abstract entity, a &#8220;business&#8221;, but you can with a person.  Certainly, we can do the math ourselves, but if we want someone to pay the bills &#8211; and more importantly &#8211; invite us back to do more projects, we have to satisfy an individual.  And that individual is our principal stakeholder.</p>
<h2>Principals Own Use Cases</h2>
<p>Our principal stakeholder owns the business goal &#8211; and therefore owns the use cases that enable that goal to be achieved.  Our <a title="completeness validation with use cases" href="http://tynerblain.com/blog/2006/07/06/requirement-completeness-validation-with-use-cases/">stakeholder will validate the completeness of our use cases</a> by answering the question, &#8220;If we enable all of these use cases, will we completely meet your goal?&#8221;</p>
<h2>End Users Own Use Cases</h2>
<p><a title="benefits of user-centered design" href="http://tynerblain.com/blog/2005/12/01/user-centric-design-yields-not-so-obvious-features/">User-centered design is also one of our </a>core principles, and an acknowledged best-practice.  For many companies, it is more than mandatory &#8211; it is a way of life.  The entire software development process is sometimes <a title="how to not suck at design" href="http://tynerblain.com/blog/2006/11/15/how-to-not-suck-at-design/">built around a focus on the end users</a>.  This approach puts the user in the center.</p>
<blockquote><p>You can identify end user goals with the following approach:</p>
<ol>
<li><a title="identifying actors " href="http://tynerblain.com/blog/2007/03/13/visualize-stakeholder-analysis/">Identify the actors</a> that interact with the software.</li>
<li><a title="persona identification" href="http://tynerblain.com/blog/2006/04/17/persona-grata/">Identify the personas</a> that represent those actors &#8211; thus avoiding the <a title="elastic user syndrome" href="http://tynerblain.com/blog/2007/07/23/elastic-users/">elastic user syndrome</a>.</li>
<li>Develop an understanding of the <a title="personas and goals" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">personal goals of the personas</a> &#8211; and by extension, the actors through <a title="types of requirements gathering" href="http://tynerblain.com/blog/2007/03/26/types-of-requirements-gathering/">ethnographic research</a>.</li>
</ol>
<p><cite><a title="end user goals" href="http://tynerblain.com/blog/2007/10/18/stakeholder-goals-2/">Stakeholder Goals: Principal vs. End User</a></cite></p></blockquote>
<p>This creates what appears to be a conflict &#8211; do principals own the use cases, or do end users own the use cases?</p>
<h2>Mixing Interaction Design With Structured Requirements</h2>
<p>One approach to resolving this conflict is to eliminate it by <a title="interaction design and structured requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">mixing interaction design with structured requirements</a>.  In this approach, the interaction design component applies <em>end user ownership</em> as an input to the design, but not the content of the use cases, as the following diagram shows:</p>
<blockquote><p><img title="interaction design and structured requirements" alt="interaction design and structured requirements" src="http://sehlhorst.smugmug.com/photos/61228367-O.png" /></p>
<p>In the diagram above, the changes (relative to the Wiegers process) are marked in blue.</p>
<p>The interaction design process starts with two parallel activities. On the left is the identification of corporate goals, which is analogous to the creation of an MRD. An MRD can be a reasonable mechanism for documenting the corporate goals. It provides more detail than “Increase profits” with statements like “Increase profits with improved pricing.” On the right side is the <a title="How to create personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">creation of personas</a> to represent the most important users.</p>
<p><cite><a title="interaction design and requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">Interaction Design and Structured Requirements</a> </cite></p></blockquote>
<p>This approach side-steps the issue by relegating the end users to &#8220;design input&#8221; and not allowing them to contribute to prioritization and management.  For many applications, this is a great way to approach things.  Specifically, it works very well when the user&#8217;s goals are tightly coupled or highly aligned with the principal stakeholder&#8217;s goals.</p>
<h2>When Goals Conflict</h2>
<p>User goals are not always aligned with stakeholder goals.  In <a title="conflicts in stakeholder goals" href="http://tynerblain.com/blog/2007/10/18/stakeholder-goals-2/">our earlier article on identifying these conflicts</a>, we proposed a simple grid view for identifying these conflicts.<br />
<img title="grid of goals in conflict" alt="grid of goals in conflict" src="http://sehlhorst.smugmug.com/photos/210042793-M.jpg" /></p>
<p>In that article, we looked at situations where the goals of the actor were primarily aligned with those of the principal stakeholder, and therefore the business.  We discussed using the grid to inspire solutions that removed the conflicts.  <em>Two birds with one stone</em> would be the easiest way to summarize.</p>
<p>What about when goals are <em>implicitly</em> in conflict &#8211; or even diametrically opposed?  We&#8217;ve worked on systems where that is exactly the case.  Consider a two-tier sales model, and products / websites designed for the people in the second tier.</p>
<h2>Two-Tier Sales Models</h2>
<p>Here are some common business models where the users have goals that are directly in opposition to the goals of the principal stakeholders.</p>
<ul>
<li><strong>Automotive Manufacturer and Dealer</strong>.  A website, designed by a car manufacturer, to allow dealers to improve their ability to sell cars.  The automotive manufacturer makes money by selling cars to the end customer, and the dealer makes money by causing the sale to happen.  The manufacturer is compensated by profits on the sale, whereas the dealer is compensated simply by making the sale.  In other words, the dealer is motivated to lower the price because a sale at any price generates the same profit for the dealer.  The manufacturer is motivated to raise the price because fewer sales at a higher margin generate the same profit, but higher ROA (return on assets) than more sales at a lower margin.  This is an implicit conflict.</li>
<li><strong>Book Publisher and Book Retailer</strong>.  A book publisher sets a price for sale to the retailer, and a suggested (list) price to the end customer.  The retailer will typically pay a negotiated discount, in the form of a percentage off list, for the book.  Any books not sold by the retailer are returned to the publisher or (usually) destroyed.  The retailer does not have to pay for books that are not sold.  The retailer has limited shelf-space, and makes money based upon a combination of the size of the discount and the number of books that are sold, regardless of publisher.  The retailer is therefore incented to increase the discount, and thus increase profits for a particular title &#8211; and the publisher is incented to reduce the discount, and thus increase the profits for a particular title.  Since the list prices are fixed, the retailer negotiates the discount, and as leverage over the publisher, gets to influence the placement of the book within the store.  Each publisher is forced to compete with other publishers.  These goals are also in conflict.</li>
<li><strong>High-Tech Equipment Manufacturer and Value-Added Reseller</strong>.  A value-added reseller (VAR) provides solutions to end customers.  They do this by combining products from manufacturers, and adding value &#8211; in the form of planning, custom engineering, installation services, etc.  The VAR will negotiate a price with the end customer for a solution.  The typical VAR sells products from multiple high-tech companies.  The VAR will negotiate with the manufacturers to get the lowest possible prices from the manufacturers.  The manufacturer wants the end-customer price (when it includes their equipment) to be as low as possible &#8211; to increase the number of sales that are made.  The manufacturer gets the same profit (based on the price to the VAR) regardless of the end-customer price.  Every dollar that the end-customer saves, the VAR loses in profit.  The VAR makes profit on the difference between price-to-the-VAR and the final selling price.  The VAR will also want to drive down the price it pays to the manufacturer.  Reducing the price-to-the-VAR transfers profits directly from the manufacturer to the VAR.  These goals are diametrically opposed.</li>
</ul>
<p>When goals are in conflict like this, we can&#8217;t just relegate the &#8220;end user&#8221; goals to design inputs &#8211; we have to incorporate them into the prioritization process.  In these examples, the &#8220;end users&#8221; are the VAR, the book retailer, and the automotive dealer.</p>
<p>Imagine that the high-tech equipment manufacturer sells networking hardware.  The manufacturer has an internal (direct) sales force, as well as the VAR channel (indirect) sales force.  The manufacturer identifies tools that help sales reps to close deals.  Large purchases are commonly made at as much as 80% off list price.  The list prices are irrelevant &#8211; they are not even guidelines in many cases.  So the manufacturer develops tools to help sales reps know what prices to set for end customers.</p>
<p>Internal sales reps have generally well-aligned goals with principal stakeholders.  The sales rep will be compensated based on a combination of revenue (sales) and margin (profits).  This compensation model creates implicit alignment between the user goals (get a bonus) and the company goals (make profitable sales).</p>
<p>One approach to helping the sales rep close <em>profitable</em> deals is to share an indication of the profitability of the deal with the rep.  The rep can (will!) set a price that is designed to maximize the sales rep&#8217;s bonus.  If the compensation system is well designed &#8211; this is also optimal for the business, and therefore the principal stakeholder.  The sales rep will get increased compensation for raising the price (and still closing the deal) by getting a percentage of the increase in margin.  The sales rep is motivated to increase the manufacturer&#8217;s profits.</p>
<p>The VAR, however, should not know the profitability of a particular transaction.  The VAR is motivated to lower the price (the price to the VAR) as much as possible &#8211; even at the expense of losing a &#8220;profitability bonus.&#8221;  If the VAR is given a percentage of the increased margin (to the manufacturer) it comes at the cost of losing 100% of the change in price to the VAR.  Remember, the VAR makes money on the difference between the price from the manufacturer, and the price to the customer.</p>
<p>Depending on the manufacturer&#8217;s business model, this could lower the priority of a margin-inspection capability, or dramatically raise the priority of features that restrict margin-viewing to only internal sales reps.</p>
<p>Also remember that the manufacturer and the VAR also have aligned goals &#8211; like closing the deal.  And the VAR can close the deal with the manufacturer, or with products from a competitor.  So the manufacturer is incented to provide valuable functionality to the VAR.  The manufacturer cannot ignore the VAR&#8217;s needs, or the VAR will work with a competitor and the manufacturer will lose all the business.</p>
<p>You have to determine the value <em>to the principal stakeholder</em> of the value of the feature to the end user.  In other words &#8211; even if a feature &#8220;hurts&#8221; the manufacturer, is the pain &#8220;worth it&#8221; because of the value of the relationship and expected future business that the company will do with the VAR?</p>
<p>Once the value of all of the functionality is identified, you can prioritize it.  <a title="valuing use cases for pain and gain" href="http://tynerblain.com/blog/2007/10/25/stakeholder-value-matrix/">An enlightening way to visualize this value is with a value-delivery matrix</a>.  Thanks again to Roger Burlton for inspiring our approach to prioritizing based upon a combination of pain and gain.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Use+Case+Management+is+a+Tough+Balancing+Act+http%3A%2F%2Fbit.ly%2FhRvhBc+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/02/04/balancing-use-cases/&amp;t=Use+Case+Management+is+a+Tough+Balancing+Act" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/02/04/balancing-use-cases/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>User Adoption ROI</title>
		<link>http://tynerblain.com/blog/2008/01/17/user-adoption-roi/</link>
		<comments>http://tynerblain.com/blog/2008/01/17/user-adoption-roi/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 03:48:24 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[usability metrics]]></category>
		<category><![CDATA[user adoption]]></category>
		<category><![CDATA[user adoption metrics]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/17/user-adoption-roi/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F01%2F17%2Fuser-adoption-roi%2F", "style": "big", "title": "User Adoption ROI" }); You want your software to be used, not to sit on the shelf. You can&#8217;t achieve the ROI of your software if people don&#8217;t use it. And you can&#8217;t achieve the ROI of your software by forcing people to use it either.  Some will fail [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2008%252F01%252F17%252Fuser-adoption-roi%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22User%20Adoption%20ROI%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F01%2F17%2Fuser-adoption-roi%2F", "style": "big", "title": "User Adoption ROI" });</script></div>
<p><img alt="using or bypassing the software" title="using or bypassing the software" src="http://www.smugmug.com/photos/244541345-L.jpg" /></p>
<p>You want your software to be used, not to sit on the shelf.  You can&#8217;t achieve the ROI of your software if people don&#8217;t use it. And you can&#8217;t achieve the ROI of your software by forcing people to use it either.  Some will fail to achieve the benefits, and others will delay using it or refuse to use it entirely.  You have to make them want to use it, and you have to design the software for the users who must use it.  Otherwise, you won&#8217;t achieve the ROI.</p>
<p><span id="more-624"></span></p>
<h2>The ROI of User Adoption</h2>
<p>The image above is great &#8211; it shows one person choosing to use the software, and one person choosing to do the work by hand instead.  It is a classic user adoption problem.  The good thing about it is that you can talk in concrete terms about the goals of your software, and how user adoption plays a role.</p>
<p>Let&#8217;s start with a definition of return on investment (and read the full article for more details and examples)</p>
<blockquote><p>ROI is the acronym for return on investment. Another way to think of it is “How much profit will we make if we invest in this project?” Profit is revenue minus costs. Technically, the question should be “How much profit will we make, relative to our investment, if we invest in this project?”</p>
<p><cite><a title="Definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">Definition of ROI &#8211; Return on Investment</a></cite></p></blockquote>
<p>OK, with a definition of ROI, you have to develop a model for return, and one for investment.  The model for investment is built by looking at the cost of developing the software.  That defines how much it costs.  Assume it costs $1,000,000 to develop and deploy the solution.</p>
<p><a title="ROI calculation tips" href="http://tynerblain.com/blog/2007/02/08/five-roi-calculation-tips/">The model for return is a little more complicated</a>.</p>
<p>For our user adoption example, assume that the software saves the company $1 every time it is used, relative to whatever the company does in the absence of the software.  There are several ways to calculate the ROI of design, we&#8217;re picking one Assume we have 1000 users, each of whom would use (or not use) the software 10 times per day.  That is a <em>potential</em> savings of $10,000 per day.  Call it $2,000,000 per year once all the users are using it all the time.</p>
<p>Unfortunately, many people stop there.   They see a 6-month <a title="definition of payback period" href="http://tynerblain.com/blog/2006/03/19/definition-of-payback-period/">payback period</a>, they fund the project, and they stop thinking about it &#8211; the money is already in the bank.  But you&#8217;re not going to do that.</p>
<p>Imagine that this is your project.  You write perfect requirements, you have an excellent development team, and the software works perfectly &#8211; saving a dollar every time it is used.  The problem is, only 100 people are willing to use the software.  Now, instead of a 6-month payback period, it takes five <strong>years</strong> to recover the cost of developing the software.</p>
<h2>The False Promise of the Mandate</h2>
<p>&#8220;Not a problem <em>for us</em>,&#8221; you say.  &#8220;Everyone must use the software.  Or they&#8217;re fired!&#8221;</p>
<p>Many corporate IT departments work this way.  The business tells them what they need (&#8220;Save us a dollar!&#8221;), and the IT guys gather requirements, develop a perfect application and confirm that it saves a dollar every time someone uses it.  And then they mandate that everyone use it.  Simple.  6-month payback.</p>
<p>There are a couple problems with this approach.</p>
<ol>
<li>Not everyone uses it right away, even if everyone is required to use it.</li>
<li>Not everyone uses it <em>effectively</em>, even when required to use it.</li>
</ol>
<p>The explanation is a little less obvious, but the brutal reality of it is just as true.</p>
<h2>Delayed User Adoption</h2>
<p>You issue a mandate &#8211; all 1000 users will use the software!  The users are conveniently spread out into 10 business units, each with 100 users.  One of those business units will go first.  And your software is a disaster (we&#8217;ll get to #2 in a minute).  The plan was to pilot the software with the first 100 users, then roll it out a month later to the other 900.  No problem &#8211; 7 month payback, and less risk to the business.</p>
<p>The problem is that the people running the business units &#8211; and thereby managing the users &#8211; are smart too.  They see the train wreck that Tom&#8217;s department became, and they refuse to use the software.  They have their own financial targets, and they don&#8217;t want to jeopardize them.  These business unit directors, if they lack the power, will escalate, until their demands are heard.</p>
<p>What&#8217;s the first place in the hierarchy where there&#8217;s a common manager?  Is it the CEO?  Maybe you&#8217;re lucky, and it is only a couple VP&#8217;s arguing about it.  What conclusion do you think they will reach when presented with the following arguments:</p>
<ul>
<li>If we use the software, we will miss our numbers &#8211; it slows people down.  And that will cost <em>you</em> $X.</li>
<li>But we want them to use the software &#8211; they <em>have to</em>.  If they were smarter, it would save money</li>
</ul>
<p>Even if the argument isn&#8217;t accurate &#8211; who will win?  Best case, your roll-out is delayed.  Worst case, it is killed before it ever gets a chance to work.</p>
<h2>Ineffective User Adoption</h2>
<p>It turns out, after watching the pilot group, that <em>expert users</em> can in fact save a dollar every time.  <a title="competent users" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/"><em>Competent</em> users</a> break even &#8211; there&#8217;s no savings for them.  And <em>beginners</em> were better off with the old solution.  It was less efficient, but the new way is so hard that they can&#8217;t do it well.</p>
<p>You&#8217;ve mandated that people use the software.  Since they didn&#8217;t otherwise <em>want</em> to use it, you had to spend a bunch of energy (and money, in <a title="opportunity cost definition" href="http://tynerblain.com/blog/2006/02/24/definition-of-opportunity-cost/">opportunity cost</a>) to make it happen.  The rollout was delayed, and at the end of the day, you break even.  Most users have no savings, and the few that do are offset by those that caused an increase in cost.</p>
<p>Mandating user adoption creates a false sense of confidence, and does not assure ROI &#8211; it only assures adoption.  We&#8217;ll say that again, to let it sink in.</p>
<blockquote><p><img title="handcuffs" alt="handcuffs" src="http://www.smugmug.com/photos/244554578-L.jpg" /></p>
<p>Mandating user adoption does not assure ROI &#8211; it only assures adoption.</p></blockquote>
<p>So what can you do?</p>
<h2>Measuring User Adoption</h2>
<p>As <a title="product managers and user experience" href="http://tynerblain.com/blog/2007/03/05/product-management-and-ux/">product managers who care about user adoption</a>, our first thought is &#8220;measure it!&#8221;  The biggest challenge is in measuring the right thing.</p>
<p>We can&#8217;t just measure <em>how many clicks</em>, because while that might <a title="correlation and causation explained" href="http://tynerblain.com/blog/2007/10/16/correlation-and-causality/">correlate</a> with ease of use &#8211; it does not necessarily cause increased user adoption.</p>
<p>To stay aligned with the ROI model, we have to measure, directly, that user adoption is meeting the forecast used to create the ROI model.  The only measurement that is assured to be an accurate reflection of user adoption is measurement of user adoption directly.</p>
<h2>Prevent Mistakes, Then Monitor Them</h2>
<p>If we measure poor user adoption after it has proven to be inadequate, that doesn&#8217;t help very much.  It is generally accepted that a good design leads to higher user adoption rates.  In the case of the &#8220;false mandate,&#8221; good design yields faster roll-outs and allows more users to be more effective with the software.</p>
<p>There are also other <a title="measuring the ROI of design investments" href="http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/">reasons to invest in good design</a>.</p>
<p>The right solution is to invest in good design &#8211; targeting <a title="usability learning curves" href="http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/">competent users</a> (<a title="products for novice users" href="http://tynerblain.com/blog/2007/03/23/dont-make-products-too-simple/">not novice users</a>) to achieve the desired ROI.  A good design is easier to learn too.  You can track the rate of improvement among users.</p>
<p>Here&#8217;s a chart from an article that goes into learning curves in more depth:</p>
<blockquote><p><img alt="80% learning curve frequencies" title="80% learning curve frequencies" src="http://sehlhorst.smugmug.com/photos/135449754-M.jpg" /></p>
<p>[<a title="larger 80% learning curve chart" href="http://sehlhorst.smugmug.com/photos/135449796-O.jpg">larger image</a>]</p>
<p>The graph shows that for a weekly frequency, after 16 weeks, the task time has reduced from 300 seconds to 100 seconds. With a daily frequency, the task time is even lower &#8211; about 60 seconds. This graph shows nothing other than converting the <em>academic</em> learning curve graph into one that incorporates calendar time and frequency of occurance.</p>
<p>Note the odd, vertical drops in task time during week 1. This is just a manifestation of looking at a weekly time scale. For a task that happens once per hour, the user will rack up 40 repetitions during the first week. From a decision-making standpoint, you don’t have time to react to that rapid rate of learning, so it is ok that it is collapsed on this graph.</p>
<p><cite>Software Usability and Learning Curves</cite></p></blockquote>
<p>Thanks, now go hire some designers and achieve your ROI!</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+User+Adoption+ROI+http%3A%2F%2Fbit.ly%2Ff2MD8T+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/01/17/user-adoption-roi/&amp;t=User+Adoption+ROI" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/01/17/user-adoption-roi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Why Prioritization Matters</title>
		<link>http://tynerblain.com/blog/2007/10/22/why-prioritization-matters/</link>
		<comments>http://tynerblain.com/blog/2007/10/22/why-prioritization-matters/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 03:50:11 +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[kano]]></category>
		<category><![CDATA[Kano analysis]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[value maximization]]></category>
		<category><![CDATA[what and how]]></category>
		<category><![CDATA[what how]]></category>
		<category><![CDATA[why what how]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/10/22/why-prioritization-matters/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F10%2F22%2Fwhy-prioritization-matters%2F", "style": "big", "title": "Why Prioritization Matters" }); I am a big fan of boxes and arrows, but this time, Jeffrey Davidson found a great article by Dan Willis before I did, and told me about it. Thanks Jeffrey! The article is about how to deal with the what and how of requirements [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F10%252F22%252Fwhy-prioritization-matters%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Why%20Prioritization%20Matters%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F10%2F22%2Fwhy-prioritization-matters%2F", "style": "big", "title": "Why Prioritization Matters" });</script></div>
<p>I am a big fan of <em>boxes and arrows</em>, but this time, <a title="Jeffrey Davidson Company" href="http://www.jdco.com/">Jeffrey Davidson</a> found a great article by Dan Willis before I did, and told me about it.  Thanks Jeffrey!  The article is about how to deal with the <em>what and how</em> of requirements and design &#8211; and it provides some really sage advice.  But what got my attention was the lack of prioritization of requirements in his example.</p>
<p><span id="more-587"></span></p>
<h2>One Man&#8217;s Trash</h2>
<p><a title="Why information architects care about requirements" href="http://www.boxesandarrows.com/view/are_useful_requirements_just_a_fairy_tale_and_why_an_ia_should_care_">Dan&#8217;s article</a> is about the difference between what and how.  He provides good advice on changing the conversation to be <em>what</em>-centric, not <em>how-</em>centric.  Dan is writing from the perspective of an information architect, and he defines what and how as follows:</p>
<blockquote><p>As I started to work in jobs where some people communicated with one another using requirements, it seemed reasonable to keep separating “the what” from “the how.” These two definitions are the result:</p>
<ul>
<li><strong>Business requirements:</strong> What the project, system, or solution needs to accomplish.</li>
<li><strong>Functional requirements:</strong> From a high level, how the project, system, or solution needs to accomplish what it needs to accomplish.</li>
</ul>
<p><cite><a title="useful requirements" href="http://www.boxesandarrows.com/view/are_useful_requirements_just_a_fairy_tale_and_why_an_ia_should_care_">Are Useful Requirements Just A Fairy Tale? (and why an IA should care)</a></cite></p></blockquote>
<p>Although we used slightly different language, we wrote an article about how different people in the software development life cycle think about different artifacts created in the process.  The following diagram sums it up:</p>
<blockquote><p><img alt="different perspectives on artifacts" title="different perspectives on artifacts" src="http://sehlhorst.smugmug.com/photos/69105260-M.png" /></p>
<p><cite><a title="Why prioritization matters" href="http://tynerblain.com/blog/2006/05/11/requirements-documents-one-mans-trash/">Requirements Documents &#8211; One Man&#8217;s Trash&#8230;</a></cite></p></blockquote>
<p>Dan describes the product management view of the world in his article.  It is a good article, and you should read it &#8211; his pragmatic solutions to common frustrations are good ones.  They center around turning the conversation (with product managers) into one of <em>What do you need?</em> instead of <em>How do you think I should build something?</em>.</p>
<h2>Prioritization Hell</h2>
<p>As good as his article is about the frustration of mis-matched roles, here&#8217;s the paragraph that really got my attention:</p>
<blockquote><p>First, you get a group of stakeholders in a room so they can “blue-sky brainstorm” to figure out how they want to improve their product. The group comes up with a list that has everything from “Make the little blue buttons bigger” to “Bring world peace.” The list goes to an engineering team who organizes the list into three categories: Things we can do now, things we can do by the end of the year, and things that will take a long time. They email the categorized list to a project manager who changes the categories to Phase 1, Phase 2, and Phase 3 and sets up a project schedule for the first 10 things in the Phase 1 list.</p>
<p><cite>Dan Willis</cite></p></blockquote>
<p>Aargh!</p>
<p>This is why prioritization matters.</p>
<p>You should always <a title="value maximization" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">prioritize the capabilities that yield the highest returns</a> on your investments.  Those returns may be based upon a measurement of risk, a strategy for gaining market share, or straightforward cost reductions.  You can also refine this approach by <a title="Kano analysis and prioritization" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">applying the principles of Kano analysis</a> to maintain a user-focus.  You may need to <a title="stakeholder and user goals" href="http://tynerblain.com/blog/2007/10/18/stakeholder-goals-2/">balance the goals of users with those of stakeholders</a>.  But definitely don&#8217;t let someone prioritize features based on how long they take to implement.</p>
<p>Dan, we feel your pain!</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Why+Prioritization+Matters+http%3A%2F%2Fbit.ly%2FeEWC0j+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/10/22/why-prioritization-matters/&amp;t=Why+Prioritization+Matters" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/10/22/why-prioritization-matters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prioritization and Value Maximization</title>
		<link>http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/</link>
		<comments>http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 05:52:15 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Expert systems]]></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[Use Cases]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[prioritizing use cases]]></category>
		<category><![CDATA[time boxes]]></category>
		<category><![CDATA[time boxing]]></category>
		<category><![CDATA[timeboxes time-boxes]]></category>
		<category><![CDATA[timeboxing]]></category>
		<category><![CDATA[use cases]]></category>
		<category><![CDATA[value maximization]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F07%2F31%2Fprioritization-and-value-maximization%2F", "style": "big", "title": "Prioritization and Value Maximization" }); We all know the story about the emperor&#8217;s new clothes. I&#8217;ve been thinking about prioritization and scheduling, and as far as I know, no one is promoting that we maximize value &#8211; they (and we) have been promoting that we do the most valuable [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F07%252F31%252Fprioritization-and-value-maximization%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Prioritization%20and%20Value%20Maximization%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F07%2F31%2Fprioritization-and-value-maximization%2F", "style": "big", "title": "Prioritization and Value Maximization" });</script></div>
<p><img title="emperor's clothes" alt="emperor's clothes" src="http://sehlhorst.smugmug.com/photos/179245489-M.jpg" /></p>
<p>We all know the story about the emperor&#8217;s new clothes.  I&#8217;ve been thinking about prioritization and scheduling, and as far as I know, no one is promoting that we maximize value &#8211; they (and we) have been promoting that we do the most valuable stuff first.  Doing the most valuable things first does not result in getting value the fastest.  In this article, we show why not.</p>
<p><span id="more-550"></span></p>
<h2>Genesis</h2>
<p>About a month ago, I read an <a title="Prioritize intuitively" href="http://kw-agiledevelopment.blogspot.com/2007/06/how-to-prioritise-quickly-and.html">article by Kelly Waters on how to prioritize intuitively</a>.  He presents a magic square diagram, showing both the &#8220;how valuable is it&#8221; and the &#8220;how hard is it to do&#8221; axes.  I&#8217;m oversimplifying, read his article for more details &#8211; he incorporates elements of risk, complexity, etc.  I really liked that he was addressing the &#8220;missing element&#8221; of how much work is involved.  However, his diagrammatic approach, while presenting this information very well, does not really yield insights into <em>what to do first</em>.  Kelly and I had a great discussion over the next couple weeks, exploring the interplay of work and value in prioritization, trying to find a way to encourage value-maximizing decisions.</p>
<h2>Prioritize By Value</h2>
<p>We have talked about prioritizing the <em><a title="prioritize by value" href="http://tynerblain.com/blog/2006/01/18/prioritizing-requirements-three-techniques/">most</a> <a title="prioritize across releases" href="http://tynerblain.com/blog/2006/03/08/prioritizing-software-requirements-across-releases/">valuable</a> <a title="cost reduction potential" href="http://tynerblain.com/blog/2006/09/25/cost-reduction-potential/">requirements</a></em> first repeatedly.  And in the last of those links, we accidentally hinted at, but didn&#8217;t grasp the real goal:</p>
<blockquote><p>We will only consider those steps where the profitability of change  exceeds our <a title="definition of npv" href="http://tynerblain.com/blog/2006/03/05/definition-of-npv-net-present-value/">hurdle rate</a> for investment.</p></blockquote>
<p>We&#8217;ve also talked in the past about using <a title="Planning a delivery schedule with use cases" href="http://tynerblain.com/blog/2006/07/19/communicating-a-release-schedule-with-use-cases/">use cases as the basis for scheduling</a>, as each use case represents realizable value.  For the rest of this article, we&#8217;ll talk in the context of scheduling use cases across releases.</p>
<p>Consider a very simple example &#8211; you have five use cases, with values of 10, 9, 9, 8, and 7 respectively (the units don&#8217;t matter).  If you sort those use cases in order by value, from left to right, they would look like the following:</p>
<p><img alt="use cases in order by value" title="use cases in order by value" src="http://sehlhorst.smugmug.com/photos/179245556-M.png" /></p>
<p>The size of each box shows the relative value of having the use case implemented.</p>
<p>Based on our previous guidance (and everyone else&#8217;s), you would implement them in order, from left to right.  Makes sense.  Do the most valuable thing first.  Do the next most valuable thing next.  Repeat until the value is not high enough to continue.</p>
<h2>What About The Amount of Work?</h2>
<p>OK, the amount of work required should play a role too.  In our <a title="how to timebox" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">time-boxing article</a>, we describe each release as having a given capacity, which you can visualize in terms of cost (resource) and time (duration of applying resources):</p>
<p><img alt="empty timebox" title="empty timebox" src="http://sehlhorst.smugmug.com/photos/64224627-M.png" /></p>
<p>We fill up that capacity with use cases, based upon how much work is involved.</p>
<p><img alt="filled timebox" title="filled timebox" src="http://sehlhorst.smugmug.com/photos/64224630-M.png" /></p>
<p>We can estimate the work involved with each use case by any of a number of methods &#8211; but the earliest estimates can be developed using <a title="use case points tutorial" href="http://tynerblain.com/blog/2007/02/12/software-cost-estimation-ucp-1/">use case points</a>.</p>
<p>Consider the following &#8220;work&#8221; measurements, identified for each of our use cases from above:</p>
<p><img alt="prioritize by value with work" title="prioritize by value with work" src="http://sehlhorst.smugmug.com/photos/179245541-M.png" /></p>
<p>We have the same sequence of use case implementation (based on value), but now we can visually see that there are different amounts of work associated with each use case.  The area of each box represents the relative level of effort required to implement the use case.</p>
<h2>Prioritize By Value Results</h2>
<p>The best way to explain the flaw with the classical &#8220;prioritize by value&#8221; approach is to show what happens after the first release.  Consider that you can accomplish 30 units of work in the first release.</p>
<p><img title="empty timebox of size 30" alt="empty timebox of size 30" src="http://sehlhorst.smugmug.com/photos/179245531-M.png" /></p>
<p>We can schedule the first two use cases for this release.  The size of the time-box above represents the amount of work that can be accomplished.  With the first two use cases scheduled, the time-box will look like the following:</p>
<p><img title="first release" alt="first release" src="http://sehlhorst.smugmug.com/photos/179245535-M.png" /></p>
<p>We have completely used up the available capacity of the team (Work = W = 30 = 10 + 20) by delivering the two most valuable use cases.  We have delivered <strong>19 units of value</strong> (Value = V = 10 + 9 = 19).</p>
<h2>Value Maximization</h2>
<p>When we consider both the value (V) and the cost (in terms of work, W) of each use case, we see that some use cases generate more value <em>per unit of work</em> than other use cases.  If we consider the ratios of value to work (V/W), and sort the use cases based on this approach, we would see the following:</p>
<p><img title="ratio order" alt="ratio order" src="http://sehlhorst.smugmug.com/photos/179245567-M.png" /></p>
<p>And with the previous specific value and work values:</p>
<p><img title="value and work in ratio order" alt="value and work in ratio order" src="http://sehlhorst.smugmug.com/photos/179245574-M.png" /></p>
<p>If we were to organize our delivery of use cases based on this ratio, we would be saying &#8220;<strong>prioritize the most effective use cases in terms of value per unit of work</strong>.&#8221;  This may seem counter intuitive, but it makes sense &#8211; get the most bang for the buck earlier, and you will get more value faster.</p>
<p>Consider what our first release would look like:</p>
<p><img title="timebox scheduled by ratio" alt="timebox scheduled by ratio" src="http://sehlhorst.smugmug.com/photos/179245564-M.png" /></p>
<p>We would complete three use cases (using 25 units of available work), and we would deliver <strong>25 units of value</strong>.  We would also be able to start working on one of the use cases that would be delivered in the next release.</p>
<h2>True Maximization</h2>
<p>To find the mathematically proven maximal value, we have to do a bunch more work.  This prioritization exercise is actually an example of the <em>bin-packing problem</em>, an np-complete computer science puzzle.  To make a long story short, we can&#8217;t use a simple heuristic and guarantee that in all cases it will be optimal.  But we can do better than &#8220;most valuable first.&#8221;</p>
<p>If we use the scheduling rule as follows:</p>
<p>Schedule the use cases in order based on the highest value-to-work ratio, skipping use cases that are &#8220;too big&#8221; for the current release.</p>
<p>Then we will get value out of the system as fast as possible.  There are a couple problems with this approach:</p>
<ol>
<li>It does not take into account that you can apply work from one release to a use case that is scheduled in a future release.  Intuitively, any &#8220;remaining time&#8221; after scheduling complete use cases should be spent on the next highest-ratio use case.  I haven&#8217;t proven that mathematically, but it makes sense.</li>
<li>Use cases, and their underlying requirements, and the implementation tasks to support those requirements are not actually independent.  You may need to introduce one use case before another &#8211; the second use case may not be possible without the first one.  Implementing a requirement that is shared across use cases will reduce the &#8220;remaining work&#8221; for those other use cases &#8211; causing a need to recalculate ratios.  Implementation tasks are often dependent upon one another.  The discrete tasks to support a valuable use case may require implementation work that is also leveraged in lower value use cases.  Further, some implementation tasks <em>must</em> be performed sequentially.  You can&#8217;t optimize a query before defining a database schema, for example.</li>
</ol>
<p>The second problem actually applies to any prioritization approach that incorporates value.  The nature of software development introduces constraints (X must be  completed before Y can be started).  Those constraints narrow the possible scheduling choices.  And they make it impractical to determine the &#8220;optimal&#8221; solution.  At least with commercially available tools, excluding expert systems, which can be used to solve this type of problem.</p>
<h2>Conclusion</h2>
<ul>
<li>Sequencing use cases based <em>solely</em> on value does not maximize the delivery of value over time.</li>
<li>Sequencing those use cases based upon the ratio of value to effort will increase the rate at which value is delivered to customers.</li>
<li>It is impractical (and possibly marginally valuable) to determine the optimal sequence for scheduling use cases to maximize value.</li>
</ul>
<p>You should use the &#8220;highest ratio first&#8221; approach, and when a use case can&#8217;t be delivered yet because of interdependencies, skip it.  Also &#8211; apply judgement to sanity check if you are doing something that seems odd &#8211; like delaying a high ratio, high value use case.  Explore with the development team if there are ways to adjust their dependencies to allow for a &#8220;more valuable&#8221; delivery sequence</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Prioritization+and+Value+Maximization+http%3A%2F%2Fbit.ly%2FdTO4vm+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/&amp;t=Prioritization+and+Value+Maximization" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Measuring the ROI of Design</title>
		<link>http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/</link>
		<comments>http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 04:04:58 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[measuring design investments]]></category>
		<category><![CDATA[measuring roi]]></category>
		<category><![CDATA[roi of design]]></category>
		<category><![CDATA[ucd]]></category>
		<category><![CDATA[user centered design]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F07%2F30%2Fmeasuring-the-roi-of-design%2F", "style": "big", "title": "Measuring the ROI of Design" }); Measuring the return on investments in design may be the hardest ROI calculation you can do. It certainly is one of the rarest. To measure ROI, you have to be able to determine what would happen without the investment, and what happens with [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F07%252F30%252Fmeasuring-the-roi-of-design%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Measuring%20the%20ROI%20of%20Design%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F07%2F30%2Fmeasuring-the-roi-of-design%2F", "style": "big", "title": "Measuring the ROI of Design" });</script></div>
<p><img alt="unicorn" title="unicorn" src="http://sehlhorst.smugmug.com/photos/178789160-M.jpg" /></p>
<p>Measuring the return on investments in design may be the hardest ROI calculation you can do.  It certainly is one of the rarest.  To measure ROI, you have to be able to determine what would happen without the investment, and what happens with the investment.  The difference between them is what happened <em>because</em> of the investment.</p>
<p><span id="more-549"></span></p>
<h2>Fast Company Interview</h2>
<p>Bill Breen posted an <a title="rob wallace" href="http://blog.fastcompany.com/archives/2007/07/26/proving_the_value_of_design.html">interview with Rob Wallace</a> on the Fast Company blog about proving the value of design.  The start of Bill&#8217;s article lets us know that measuring the ROI of design (ROD) is so rare that it may be impossible or impractical to do.  He points to a Whirlpool survey of 15 design-focused companies &#8211; most of whom were &#8220;clueless&#8221; about the return on their design investments.</p>
<p>Rob explains that the reason for measuring the ROI of design investments is that ROI is the language of executives.  &#8220;If you can&#8217;t measure it you can&#8217;t manage it. Businesspeople operate in a world of numbers.&#8221;  Simply put, if you want to make someone invest in design, you have to show them why they should invest in design.  One way to get a company to invest in design is to convince the <a title="voting on scope and vision" href="http://tynerblain.com/blog/2007/04/20/apr-scope-and-vision-vote-1/"><em>benevolent dictator</em> in charge of the product</a> (or company) of the <em>subjective merits</em> of having good design.  Apple is a great example of a company with a leader who is passionate about design.  And you can argue that the Zune (from Microsoft) has had meager success against  Apple&#8217;s iPod due to shortcomings in design.  But can you <em>objectively</em> argue the point?</p>
<h2>Argument by Extension</h2>
<p>After Rob mentions that there is a dearth of measurement of design ROI, Bill challenges Rob&#8217;s premise &#8211; why should we expect that there <em>is</em> an ROI for design?  Rob cites a series of studies done on Fortune 500 companies:</p>
<blockquote><p>On average, based on two dozen case studies with Fortune 500 companies, for every dollar invested in advertising, packaging and promotion, and visual communication at the point of sale, companies realized a $7.21 ROI. But when the advertising didn&#8217;t change (or there was no advertising)—<em>and packaging design was the only thing that did change</em>—there was a $15.17 average ROI on every dollar invested.</p></blockquote>
<p>Based on this data, Rob argues, it is easy to extend that if packaging (design) changes can yield ROI, then so to will product design changes.</p>
<h2>Insights from Adaptive Path</h2>
<p>Peter Merholz, President and founding partner of Adaptive Path wrote on <a title="Value of design" href="http://www.adaptivepath.com/ideas/essays/archives/000045.php">communicating the value of design</a> in Aug. 2002.  In his article, based on a breakout session, the AIGA&#8217;s 5th Advance for Design Summit, he shares a series of internal benefits that they found to be more significant (or at least more measurable) than external benefits.</p>
<blockquote><p>As we continued listing the value of our user experience design work, a more intriguing realization emerged — the bulk of our value comes from the efficiency that we can create in a company’s operations.</p></blockquote>
<p>Some of the areas they identified are:</p>
<ul>
<li>Smarter Product Development Processes</li>
<li>Lowered Maintenance Costs</li>
<li>Less Internal Documentation</li>
<li>Maximized IT Investments</li>
<li>Scalability</li>
</ul>
<h2>Our Concerns</h2>
<p>One challenge for each of these sources of ROI is that you can&#8217;t truly isolate the benefits &#8211; you would never have two teams design products for the same market, with differing levels of design investment, with a resultant analysis of project costs.  Even if you did, you wouldn&#8217;t be able to isolate the impact that the team members had.  You have to look at historical data, which introduces enough variables to question the validity of any quantitative conclusion.</p>
<p>Further, we will show that each of these is either a weak proposition, or potentially very false one.</p>
<p><strong>Smarter Product Development Processes</strong>.   No one has concretely identified a design-centric, purely agile, or structured requirements approach as being the best one.  At least where best is defined as most profitable.  Even the <a title="agile vs ux" href="http://tynerblain.com/blog/2006/03/07/interaction-design-explained-by-alan-cooper/">debate between Alan Cooper and Kent Beck</a> highlighted more &#8220;stylistic differences&#8221; than quantified differences.  There are elements of genius in each approach.  Incorporating the needs of users is key to an effective design.  Incremental delivery and incorporation of feedback is incredibly efficient.  Tracing decisions, designs and requirements to the ultimate goals for the software is key to building the right software.  If there is a &#8220;perfect process&#8221;, it is one that incorporates elements from all three disciplines.  And as such &#8211; there is value to incorporating design into the process.  We can&#8217;t quantify it, but we are convinced that it is there.   And based on the <a title="economics of fixing bugs" href="http://tynerblain.com/nexus/article/show/44-why-agile-software-development-techniques">economics of when software problems are fixed</a>, we believe that investments in design early in the cycle will yield positive returns.</p>
<p><strong>Lowered Maintenance Costs</strong>.  There are a couple ways this benefit might be inferred.  First, <a title="better design yields lower costs" href="http://tynerblain.com/blog/2007/02/28/agile-development-roi-2/">better design yields easier to maintain code</a>.  This is primarily a premise of agile development (where the design decisions are what Cooper calls <em>program design</em>), but perhaps the benefits also apply to interface design.  Often, good interfaces simplify the complexity of, or at least obscure the means of implementation.  Those interfaces are not necessarily easier to maintain.  One reason complexity leaks through to users in a lot of software is that it is easier to code it that way.  This value-prop probably doesn&#8217;t hold water.</p>
<p><strong>Less Internal Documentation</strong>.  The better the design of the interface, the less you need to teach someone how to use it.  There is definitely potential for reduced external documentation, or producing the same amount of documentation may cost less, as it is easier to understand the product.  It isn&#8217;t clear how internal documentation needs can be reduced by good design.  Except perhaps that a picture is worth a thousand words.  But a great picture may take as long to draw as it does to write a thousand words.</p>
<p><strong>Maximized IT Investments</strong><em>.</em>  This is simply self-referential.  Maximizing investments yields higher ROI.  But in what way?</p>
<p><strong>Scalability</strong>. Better design, from a user perspective does not imply that software will be more scalable.  And often in an implementation, when user-tasks are simplified (by automating steps in the process), those decisions don&#8217;t disappear.  By removing the burden from the users, you often add it to the software.  However, Peter may have been talking about scalability of the team &#8211; the ability to leverage design investments across products (sharing branding, metaphors and workflow paradigms).  In other words, design <em>re-use</em>.  In that case, there is definitely a benefit, but re-usable design, while cheaper than green field design, is more expensive than no design.</p>
<p><strong>Support Costs</strong>.  One <em>external</em> benefit that Peter does identify is the reduced burden for training and support.  Many software companies actually have profitable businesses built on support and training.  Unfortunately, reducing the demand for those would reduce the profitability along that dimension.</p>
<h2>Where We See Value</h2>
<p>Fundamentally, we don&#8217;t perceive design investments as being significant cost reductions &#8211; we see them as significant revenue enhancers.  Better design yields increased usage, more efficient usage, increased satisfaction, and <a title="word of mouth marketing from improved usability" href="http://tynerblain.com/blog/2007/01/10/usability-sells-software/">increased word of mouth marketing</a>.</p>
<p><strong>Increased Usage</strong>.  ROI forecasts are often built upon estimations (or suppositions) of levels of user adoption.  As an example, consider the &#8220;Buy it now&#8221; button on eBay auctions.  When people click on the &#8220;Buy it now&#8221; button, the auction is closed, and the transaction occurs at a fixed price.  People are more likely to sell an auctioned item (generating a commission) by encouraging an impulse shopper.  The seller risks getting less than they otherwise would, in exchange for the buyer knowing that they can get the item they want.  Fewer auctions will expire unexecuted.  More commissions are generated for eBay.  Comparisons of final selling prices (and commissions to eBay) of equivalent items with and without the button can be done to measure the return.</p>
<p><strong>More Efficient Usage</strong>.  Better designs make it easier for users to do what they want to do.  Easier often equates to faster.  A call-center application that simplifies data access for the operator will allow them to process calls more quickly.  The employer ends up with higher throughput from the call center.  This throughput can be used to reduce costs, or increase customer satisfaction (with reduced &#8220;time per call&#8221; stats, or better experiences for the callers), or some of each.  Comparing the results of operators using the new system versus the old system will yield measurable data.</p>
<p>Peter mentioned reduced training costs &#8211; and we see that as an external benefit that comes from accelerating a user&#8217;s growth from new user to proficient or even expert user.  <a title="user centered design benefits" href="http://tynerblain.com/blog/2007/02/22/user-centered-design-bridge/">Bridging the canyon of pain</a> to get to higher usage rates and more efficient usage faster.  This also leads to increased satisfaction by creating more satisfied users more quickly.</p>
<p><strong>Increased Satisfaction</strong>.  Customer or user satisfaction surveys may be the only way to approximate (not really measuring) this benefit.  And it isn&#8217;t clear that X% increase in satisfaction leads to Y% increase in sales.  But it is likely to lead to increased sales, and may also lead to increases in sales of other products by the same company.  Apple leverages this affect across its family of synergistic products.  Perhaps a Bayesian analysis of survey results and sales stats could identify the strength of a correlation between satisfaction and sales.  That would be expensive to do, but would lead to quantified <em>estimates</em> of the return.</p>
<p>Ultimately, you raise the <a title="definition of utility" href="http://tynerblain.com/blog/2007/02/06/foundation-series-intro-to-utility-curves/">utility</a> of the software for the user. By increasing the value to the user, you increase their satisfaction, and thereby increase the likelihood that they will encourage other people to buy and use your products.</p>
<p><strong>Increased Word of Mouth Marketing</strong>.  When your customers become your sales people, you get more sales than you would have without those recommendations.  Perhaps comparisons of growth curves for products with varying degrees of customer satisfaction (or varying degrees of &#8220;free publicity&#8221; &#8211; like reviews, blog articles, etc) would yield some predictive insight.  Web 2.0 successes have been predominantly built on word-of-mouth.  And their growth curves are exponential (as would be the propogation of good words from satisfied mouths).  Does anyone know of analyses that validate this?</p>
<h2>Conclusion</h2>
<p>Design investments yield benefits.  <em>The</em> way to measure those benefits is still up for debate.  Some folks believe the benefits are primarily internal &#8211; we believe that the benefits are external</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Measuring+the+ROI+of+Design+http%3A%2F%2Fbit.ly%2FePkeae+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/&amp;t=Measuring+the+ROI+of+Design" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Software Usability and Learning Curves</title>
		<link>http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/</link>
		<comments>http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/#comments</comments>
		<pubDate>Tue, 13 Mar 2007 02:00:28 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[ROI]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[boston consulting group]]></category>
		<category><![CDATA[competent users]]></category>
		<category><![CDATA[learning curve]]></category>
		<category><![CDATA[learning curves]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[roi of usability]]></category>
		<category><![CDATA[software usability]]></category>
		<category><![CDATA[usability research]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/</guid>
		<description><![CDATA[Learning curves have been studied for decades when evaluating manufacturing systems and proposing cost reductions.  The Boston Consulting Group did an oft-cited analysis in the 1960's that describes how people get faster at tasks through repetition.  Peter Abilla looked at the extension of this to writing software.  We look at how it applies to using software.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F03%252F12%252Fsoftware-usability-learning-curves%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Software%20Usability%20and%20Learning%20Curves%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F03%2F12%2Fsoftware-usability-learning-curves%2F", "style": "big", "title": "Software Usability and Learning Curves" });</script></div>
<p><img title="assemblers" alt="assemblers" src="http://sehlhorst.smugmug.com/photos/135451401-M-0.jpg" /></p>
<p>Learning curves have been studied for decades when evaluating manufacturing systems and proposing cost reductions.  The Boston Consulting Group did an oft-cited analysis in the 1960&#8242;s that describes how people get faster at tasks through repetition.  Peter Abilla looked at the application of <a title="shmula on learning curves" href="http://www.shmula.com/362/the-learning-curve">learning curves to <em>writing</em> software</a>.  We look at how they apply to <em>using</em> software.</p>
<p><strong>Learning Curves</strong></p>
<p>Wikipedia tells us that the learning curve phenomenon was <a title="wikipedia entry" href="http://en.wikipedia.org/wiki/Learning_curve">discovered in the 1800&#8242;s</a> by a psychologist, but industrial applications of the concept reference the Boston Consulting Group study on <em>experience curves</em>.</p>
<p>Learning curves describe how people become more efficient through repetition of a task. The experience curve concept extends this idea to organizations, suggesting that overall costs for an operation will drop over time in the same way.  People argue about the validity of this &#8211; suggesting that <em>economies of scale</em> take over with high volume activities.  Regardless, the element of <strong><em>learning</em></strong> still applies.</p>
<p><strong>Learning Curve Explanation</strong></p>
<p>The easiest way to explain the concept is with an example.  Consider a task that takes five minutes (300 seconds).  Over time, a person will get faster at performing that task.  The graph shows the amount of time required to complete the task decreasing with repetition of the task.</p>
<p>To make it more concrete, consider the task to be &#8220;Enter an issue into the bug-tracking system.&#8221;</p>
<p><img title="classical learning curves" alt="classical learning curves" src="http://sehlhorst.smugmug.com/photos/135449800-M.jpg" /></p>
<p>[<a title="larger classical learning curve" href="http://sehlhorst.smugmug.com/photos/135449779-O.jpg">larger image</a>]</p>
<p>There are three curves in the graph above, labeled 90%, 85%, and 80%.  Each curve shows a progressively faster rate of learning.  Note that the scale of repetitions is logarithmic.  The first time the user enters an issue in the bug tracking system, it takes five minutes.  By the thousandth time, the user will spend under two minutes on the &#8220;90% curve.&#8221;</p>
<p>The percentage-labels of the curve represent the quickness of learning.  Each time the number of repetitions doubles, the amount of time a person spends on the task is reduced by the listed percentage.</p>
<p>On the 80% curve, the user will spend 300 seconds on the first issue, 240 seconds on the second issue, 192 seconds on the fourth issue, etc.</p>
<p><strong>Usability Is Important</strong></p>
<p>Usability is an important factor in software development.  It may be a challenge to <a title="Defining Usability Requirements" href="http://tynerblain.com/blog/2007/03/05/product-management-and-ux/">define the usability requirements</a>, but <a title="Usability Impact on Satisfaction" href="http://tynerblain.com/blog/2006/04/14/goldilocks-and-the-three-products/">usability affects user satisfaction</a>, and <a title="Usability Sells Software" href="http://tynerblain.com/blog/2007/01/10/usability-sells-software/">usability sells software</a>.</p>
<p>When investing in usability, you have to take into account how valuable each investment is.  Any product will have a number of business use cases, and each use case will have a frequency with which it happens.  Usability investments affect two factors of that use case:</p>
<ul>
<li>The initial amount of time it takes.</li>
<li>The speed with which someone improves at the task.</li>
</ul>
<p><strong>ROI of Usability</strong></p>
<p>Once your company reaches <em>stage 5</em> in<a title="Stages of Corporate Usability Awareness" href="http://tynerblain.com/blog/2007/02/26/eight-stages-of-usability-awareness/"> corporate usability awareness</a>, you will be prioritizing usability initiatives, and prioritization should be driven by <a title="Definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">return on investment</a>.  That analysis is typically done based on the initial amount of time that a task takes.</p>
<p>Incorporating the element of learning into that analysis will yield a better (and higher) indication of the value of usability investments.</p>
<p>If you&#8217;re math-oriented, you&#8217;ll notice that the learning curve never really ends (theoretically).  You have to &#8220;stop&#8221; the learning at some point when performing a financial analysis, based on the <a title="Definition of NPV" href="http://tynerblain.com/blog/2006/03/05/definition-of-npv-net-present-value/">net present value</a> of future savings.  Three years is a realistic time horizon for software (and might even be a little long).</p>
<p>However, you won&#8217;t continue to see benefits for three years.</p>
<p><strong>Competent Users</strong></p>
<p>There&#8217;s a phenomenon with software &#8211; <a title="Software Design for Competent Users" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">people stop learning when they become competent</a>.  Most people get &#8220;good enough&#8221; to satisfy their own needs, and don&#8217;t move on.  They don&#8217;t become experts, so <a title="Design for Competent Users" href="http://tynerblain.com/blog/2007/02/22/user-centered-design-bridge/">don&#8217;t design for experts</a>, and don&#8217;t propose an ROI that assumes that everyone will be an expert.</p>
<p><strong>Grasping Time Horizons</strong></p>
<p>The theoretical learning curve is handy, but you have to do a little more work to make it useful.  Consider first the frequency of repetition of the task.  Is it a weekly, daily, or more frequent activity?  This frequency will determine how quickly (on the calendar) someone will achieve the high levels of repetition that result in improved efficiency.</p>
<p>The following graph shows how an 80% learning curve overlays a calendar for tasks that happen daily, weekly, and hourly.</p>
<p><img alt="80% learning curve frequencies" title="80% learning curve frequencies" src="http://sehlhorst.smugmug.com/photos/135449754-M.jpg" /></p>
<p>[<a title="larger 80% learning curve chart" href="http://sehlhorst.smugmug.com/photos/135449796-O.jpg">larger image</a>]</p>
<p>The graph shows that for a weekly frequency, after 16 weeks, the task time has reduced from 300 seconds to 100 seconds.  With a daily frequency, the task time is even lower &#8211; about 60 seconds.  This graph shows nothing other than converting the <em>academic</em> learning curve graph into one that incorporates calendar time and frequency of occurance.</p>
<p>Note the odd, vertical drops in task time during week 1.  This is just a manifestation of looking at a weekly time scale.  For a task that happens once per hour, the user will rack up 40 repetitions during the first week.  From a decision-making standpoint, you don&#8217;t have time to react to that rapid rate of learning, so it is ok that it is collapsed on this graph.</p>
<p><strong>Further Limiting The Time Horizon For ROI</strong></p>
<p>There are three vertical, dashed red lines on the graph.  The original learning curve theory stays pretty, well, theoretical &#8211; using log graphs for a time horizon.  This is fine for academics that want to understand the underlying trends and drivers.  An ROI analysis brings in a set of <em>relevance</em> constraints driven primarily by the time-value of money.</p>
<p>However, software&#8217;s time cycle should limit the time horizon even further in order to be practical.</p>
<ul>
<li><strong>First Impression</strong>.  Software is often evaluated for usability or suitability based on first impressions.  The reduced barrier to entry for many software products makes it extremely easy for a user to say &#8220;I&#8217;ll download something else &#8211; this isn&#8217;t good enough&#8221; after a couple minutes with the software.</li>
<li><strong>End of Training</strong>.  Other software sales cycles involve training as part of the evaluation period.  This is more common with enterprise software, and may be the way your target users (or decision makers) approach the evaluation.  Everyone is different.  When this is the case, the user&#8217;s ability to be effective with the software will be evaluated after some nominal period &#8211; perhaps two weeks.</li>
<li><strong>End of Attention Span</strong>. The <em>competent user phenomenon</em> limits the attention span of <em>most</em> users &#8211; they simply stop learning.  A realistic way to represent this may be to draw an (admittedly arbitrary) line in the sand at the three-month mark.  At this point, users either like the software or they don&#8217;t.  They&#8217;re as good as they&#8217;re going to get.</li>
</ul>
<p><strong>Conclusion</strong></p>
<p>You will have to determine which time horizon is most relevant for your product, customer, and users.  That decision will determine the relevance and impact that learning should play in prioritizing usability investments for your product.  If your product will thrive or die on first impressions, then the learning curve should be all-but-irrelevant to your decisions.  Only the <em>word-of-mouth-marketing</em> factor will come into play. You need to stress investments that lower the initial task times over those that accelerate learning.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Software+Usability+and+Learning+Curves+http%3A%2F%2Fbit.ly%2Fgfqszn+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/&amp;t=Software+Usability+and+Learning+Curves" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/03/12/software-usability-learning-curves/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Development and Software Maintenance Costs</title>
		<link>http://tynerblain.com/blog/2007/02/28/agile-development-roi-2/</link>
		<comments>http://tynerblain.com/blog/2007/02/28/agile-development-roi-2/#comments</comments>
		<pubDate>Thu, 01 Mar 2007 03:00:10 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile development methodology]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[development stage]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[product life cycle]]></category>
		<category><![CDATA[software maintenance]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/02/28/agile-development-roi-2/</guid>
		<description><![CDATA[Over 90% of the cost of software development is software maintenance (cite).  This alarming trend was predicted as early as 1972.  McKinsey suggests that CIOs should spend no more than 40-60% on maintenance.  Gartner's IT Spending and Demand Survey (2002) reports that CIOs are spending 80% of their budgets on maintenance (p12 of presentation).  Agile development can help reverse this trend.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F02%252F28%252Fagile-development-roi-2%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Agile%20Development%20and%20Software%20Maintenance%20Costs%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F02%2F28%2Fagile-development-roi-2%2F", "style": "big", "title": "Agile Development and Software Maintenance Costs" });</script></div>
<p><img title="broken window" alt="broken window" src="http://sehlhorst.smugmug.com/photos/132682851-M.jpg" /></p>
<p>Over 90% of the cost of software development is software maintenance (<a title="software maintenance cost analysis" href="http://www.cs.jyu.fi/~koskinen/smcosts.htm">cite</a>).  This alarming trend was predicted <a title="software maintenance cost calculations" href="http://www.dacs.dtic.mil/techs/value/examples.shtml">as early as 1972</a>.   <a title="mckinsey quarterly article" href="http://www.mckinseyquarterly.com/article_page.aspx?ar=1840&#038;L2=13">McKinsey suggests</a> that CIOs should spend no more than 40-60% on maintenance.  Gartner&#8217;s IT Spending and Demand Survey (2002) reports that CIOs are spending 80% of their budgets on maintenance (<a title="cio spending on maintenance" href="http://www.cai.co.kr/downfile/caexpo/2003_23.pdf">p12 of presentation</a>).  Agile development can help reverse this trend.</p>
<p><strong>The Cost Trends of Software Maintenance</strong></p>
<p><a title="Jacoozi blog" href="http://www.jacoozi.com/blog">Jacoozi </a>published an analysis of the impact of continuous refactoring on software maintenance costs.  Continuous refactoring is an element of agile software development, where the developers continuously make minor improvements to the architecture and design as they maintain the code.</p>
<blockquote><p><img title="cost trends" alt="cost trends" src="http://sehlhorst.smugmug.com/photos/132683532-M.gif" /></p>
<p>(<a title="larger cost trends of software maintenance" href="http://sehlhorst.smugmug.com/photos/132682875-O.png">larger image</a>)</p>
<p>Thanks to Levent Gurses for providing this modified version of the chart from his article, <cite><a title="agile development costs" href="http://www.jacoozi.com/blog/?p=11">Continuous Refactoring and ROI</a></cite>.  In his article, he discusses both recurring &#8220;big bang&#8221; refactoring (the pink curve) and continuous refactoring (the green curve).</p></blockquote>
<p>What Levent&#8217;s chart shows with the black line is that the cost of maintenance grows at a significant rate over time when you don&#8217;t refactor the code.</p>
<p>We can re-use the diagram from our earlier <a title="Agile Software Development impact on sales volume" href="http://tynerblain.com/blog/2007/02/27/agile-development-roi-1/">analysis of agile development and ROI</a>, and overlay this cost structure.  The green curve represents sales volume, contrasted with the shaded curve representing development costs.</p>
<p><img title="cost of waterfall" alt="cost of waterfall" src="http://sehlhorst.smugmug.com/photos/132689429-M.png" /></p>
<p>In the product lifecycle diagram above, there is an initial &#8220;hump&#8221; of development cost.  Note that when you are using incremental development, the hump extends past the end of the development stage of the product life cycle.</p>
<p>The largest part of the shaded area represents the ongoing costs &#8211; 90% of which are maintenance costs.  Note &#8211; we are assuming that companies use a rational investment strategy &#8211; they continue to maintain the software until the costs equal or exceed the revenue.  The investment should stop when the <a title="Definition of opportunity cost" href="http://tynerblain.com/blog/2006/02/24/definition-of-opportunity-cost/">opportunity cost of continued investment</a> exceeds the benefits of continued investment.</p>
<p><strong>Broken Windows</strong></p>
<p>Continuous refactoring is making small investments in improving the code over time.  The absence of those investments allows the code to grow more expensive to maintain over time.  Gartner estimated that 50% of the cost of ongoing maintenance labor is spent trying to understand the existing code base.  <em>This is very inefficient</em>.<br />
In <em>The Tipping Point</em>, Malcolm Gladwell described this phenomenon by analogy to <a title="broken windows story" href="http://www.gladwell.com/1996/1996_06_03_a_tipping.htm">the broken windows in East New York City</a>.  This is just one gripping example from his book of the same title.</p>
<p>As the code gets more convoluted over time, these two factors serve to increase costs dramatically &#8211; the increased difficulty of doing the job, combined with increased apathy about doing it right.  Costs would go up simply because the code gets larger (as the software is expected to do more and more).  These factors accelerate the rate at which the phenomenon occurs &#8211; consistent with Levent&#8217;s <em>faster than linear</em> cost growth function.</p>
<p><strong>Fixing The Windows</strong></p>
<p>When faced with the challenge of reducing the ongoing maintenance costs, you have a few choices:</p>
<ul>
<li><strong>Eliminate Ongoing Maintenance and Development</strong>.  This was the Autodesk strategy (fire the engineers, milk the product for revenue).  It worked great for a very short time.  Profit growth was tremendous.  This of course accelerated the decline in sales, eliminating revenue (and therefore profit).</li>
<li><strong>Reduce Spending On Maintenance and Development</strong>.  Simply reducing the budget has all of the negative impact of cutting the budget, but with fewer gains.  A reduced budget (with no other changes) increases the frustration both of unstatisfied customers and of overwhelmed developers.  This is a bad idea.</li>
<li><strong>Refactor The Code To Improve Efficiency</strong>.  You can make ongoing maintenance more efficient by making the code easier to understand and modify.  This generates cost savings &#8211; the &#8220;big money&#8221; in <a title="How to calculate ROI" href="http://tynerblain.com/blog/2007/02/08/five-roi-calculation-tips/">ROI calculations</a>.</li>
</ul>
<p>Improving efficiency reduces the costs of ongoing development, as the following diagram shows:</p>
<p><img title="savings from continuous refactoring" alt="savings from continuous refactoring" src="http://sehlhorst.smugmug.com/photos/132690705-M.png" /></p>
<p><strong>Other Benefits</strong></p>
<p>By reducing the cost of ongoing maintenance, you can improve the profitability of the product.  You also free up resources for investment in new product development.  This helps move your organization to McKinsey&#8217;s recommended 40% to 60% maintenance budget.</p>
<p>You will also get intangible benefits and improved efficiency by reducing the number of <em>broken windows</em> in the product&#8217;s code base.  This results in increased motivation of the team members and greater job satisfaction.  <a title="Use Case Points analysis" href="http://tynerblain.com/blog/2007/02/14/software-cost-estimation-ucp-3/">The increase in motivation will decrease the cost of development</a> of other functionality.</p>
<p>You may also extend the useful life of the product &#8211; by extending the amount of time when ongoing maintenance is still profitable.  This additional development work could result in increased sales &#8211; extending the product life cycle.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Agile+Development+and+Software+Maintenance+Costs+http%3A%2F%2Fbit.ly%2FhR8cRH+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/02/28/agile-development-roi-2/&amp;t=Agile+Development+and+Software+Maintenance+Costs" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/02/28/agile-development-roi-2/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Product Life Cycle and the ROI of Agile Development</title>
		<link>http://tynerblain.com/blog/2007/02/27/agile-development-roi-1/</link>
		<comments>http://tynerblain.com/blog/2007/02/27/agile-development-roi-1/#comments</comments>
		<pubDate>Wed, 28 Feb 2007 03:00:56 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile methodology]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[product life cycle]]></category>
		<category><![CDATA[product life cycle diagram]]></category>
		<category><![CDATA[product life cycle stages]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/02/27/agile-development-roi-1/</guid>
		<description><![CDATA[The product life cycle is a description of the presence or behavior of a product in the marketplace over time.  The framework for description is a function of the sales volume of the product versus time.  Over time, products are created and introduced, and sales grow, peak and decline.  The product life cycle uses phases to describe these different periods in the life of a product.  Understanding the product life cycle is also key to calculating the ROI of agile development.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F02%252F27%252Fagile-development-roi-1%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Product%20Life%20Cycle%20and%20the%20ROI%20of%20Agile%20Development%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F02%2F27%2Fagile-development-roi-1%2F", "style": "big", "title": "Product Life Cycle and the ROI of Agile Development" });</script></div>
<p><img title="agile skateboarder" alt="agile skateboarder" src="http://sehlhorst.smugmug.com/photos/132471701-M.jpg" /><br />
The product life cycle is a description of the presence or behavior of a product in the marketplace over time.  The framework for description is a function of the sales volume of the product versus time.  Over time, products are created and introduced, and sales grow, peak and decline.  The product life cycle uses phases to describe these different periods in the life of a product.  Understanding the product life cycle is also key to calculating the ROI of agile development.</p>
<p><strong>The Five Stages of A Product Life Cycle</strong></p>
<p>There are five product life cycle stages.  The stages are defined as having different sales-growth characteristics</p>
<ol>
<li><strong>Development Stage</strong>.  In the development stage, there are no sales &#8211; the product is being created and is not available.</li>
<li><strong>Introduction Stage</strong>. The introduction stage starts with the first sale and then sales begin to grow.  Sales growth is slow at first but accelerating.</li>
<li><strong>Growth Stage</strong>.  This is the period of rapid growth in sales for the product.</li>
<li><strong>Maturity Stage</strong>.  This phase is characterized by growth as well, but the sales growth is decelerating.  Sales volume reaches its maximum at the end of the maturity stage.</li>
<li><strong>Decline Stage</strong>. This phase represents the period of declining sales &#8211; they may still be very high, but they are declining.</li>
</ol>
<p>Here is the product life cycle diagram [credit to <a title="wikipedia entry" href="http://en.wikipedia.org/wiki/Product_Life_Cycle_Management#External_links">wikipedia</a> and <a title="plc" href="http://www.netmba.com/marketing/product/lifecycle/">NetMBA</a> for both using this approach to drawing the graph]:</p>
<p><img title="product life cycle sales volume graph" alt="product life cycle sales volume graph" src="http://sehlhorst.smugmug.com/photos/132613762-M.png" /></p>
<p>The area under the curve is total sales.  This model was developed with traditional product development in mind.</p>
<p><strong>What About Agile Development?</strong></p>
<p>Agile development uses an approach of <a title="Incremental Delivery and Waterfall Delivery" href="http://tynerblain.com/blog/2006/01/03/foundation-series-software-process-waterfall-process-versus-incremental-process/">incremental delivery</a> to deliver a partially-completed product to market earlier.  As long as the product is &#8220;complete enough&#8221;, it will shift the curve to the left.  By shortening the period of time with <em>no product revenue</em> (aka Development), we spend more of our time in the last four stages of the product life cycle.</p>
<p>Think of <em>beta</em> releases of software. GMail, for example, was released as a beta a few years ago.  The product was just finally released to the general public in the last month.  Think of all the advertising revenue that Google earned during the beta period &#8211; while GMail was being completed.  If they had waited until the product (and infrastructure) were complete, and not released GMail until last month, Google would have lost all that revenue.</p>
<p>If we take the most conservative approach to modeling sales with an agile process, the graph would look like the following:</p>
<p><img alt="agile product life cycle" title="agile product life cycle" src="http://sehlhorst.smugmug.com/photos/132613783-M.png" /></p>
<p>The sales volume curve is shifted to the left without changing its shape.  The exact same growth curve applies to the product (this is the conservative assumption).  The <em>decline</em> in sales continues to decline.  The difference is that our previous time horizon (which remains fixed) now includes additional sales.</p>
<p>The time horizon stays fixed because releasing the software earlier neither reduces or increases our ability to predict the future.  Our net <a title="Definition of NPV" href="http://tynerblain.com/blog/2006/03/05/definition-of-npv-net-present-value/">present value calculations</a> will be based on time, not &#8220;time with a product in the market.&#8221;  In a concrete example:  Assume we are willing to base our financial decisions on a five year forecast.  Having an incremental release six months before the product is complete does not have any effect on our decision to look out five years.</p>
<p>It may be that sales are increased by getting to market earlier, but that is a less-conservative assumption.  By getting to market earlier, when we are in a race to capture market share, we may ultimately capture more of the market.  An example might be Intel&#8217;s recent multi-core processor launch.  By getting to market faster than AMD (with a comparable product), Intel will probably sell more CPUs than they would had their launch been delayed until AMD was ready with a competitive product.</p>
<p>It may also be reasonable to assume that sales will peak at the same (fixed) point in time in the future.  This would further increase the benefits of incremental delivery.  One way this might make sense is if our product is filling a <em>temporary</em> hole in the market, and we know that the hole is going to be filled on a given date.  An example might be an emulator that allows people to run Windows Vista programs on Windows XP.  The time-table for transitioning to Vista is unchanged by our release schedule, and is the dominant factor in our sales forecast.  Therefore our forecasted peak would be unchanged.</p>
<p><strong>Conclusion</strong></p>
<p>This is a handy visualization for the <em>conservative</em> calculation of <a title="Definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">ROI</a> of agile development.  Note that this only shows sales, it does not show costs.  The costs of agile (versus non-agile) development will be the topic of another article.  This is only half of the picture.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Product+Life+Cycle+and+the+ROI+of+Agile+Development+http%3A%2F%2Fbit.ly%2F2dYyAY+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/02/27/agile-development-roi-1/&amp;t=Product+Life+Cycle+and+the+ROI+of+Agile+Development" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/02/27/agile-development-roi-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

