<?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; UX</title>
	<atom:link href="http://tynerblain.com/blog/category/software-development/hci/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog</link>
	<description>Software product success.</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:38:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Good Stuff on Agile and UXD</title>
		<link>http://tynerblain.com/blog/2010/11/10/agile-and-ux/</link>
		<comments>http://tynerblain.com/blog/2010/11/10/agile-and-ux/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 02:56:59 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[ux]]></category>
		<category><![CDATA[uxd]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1396</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F11%2F10%2Fagile-and-ux%2F", "shorturl": "http://bit.ly/cKIAAo", "style": "big", "title": "Good Stuff on Agile and UXD" }); Best practices for user experience design and agile.  I don&#8217;t have the brainpower at the moment, or the experience and eloquence in general, to say it better than these guys.  So this week, I&#8217;m phoning it in, and deferring to [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2010%252F11%252F10%252Fagile-and-ux%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FcKIAAo%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Good%20Stuff%20on%20Agile%20and%20UXD%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2010%2F11%2F10%2Fagile-and-ux%2F", "shorturl": "http://bit.ly/cKIAAo", "style": "big", "title": "Good Stuff on Agile and UXD" });</script></div>
<p><img class="alignnone" title="phoning it in" src="http://sehlhorst.smugmug.com/Other/blog/cell-phone-small/103204127_ibX7b-O.jpg" alt="" width="250" height="227" /></p>
<p>Best practices for user experience design and agile.  I don&#8217;t have the brainpower at the moment, or the experience and eloquence in general, to say it better than these guys.  So this week, I&#8217;m <em>phoning it in</em>, and deferring to these folks to say it far better than I can.</p>
<h2><span id="more-1396"></span>UXD and Agile</h2>
<p><a title="best practices for UXD" href="http://agileproductdesign.com/blog/emerging_best_agile_ux_practice.html">Twelve emerging best practices for adding UX work to Agile development</a>, by Jeff Patton in 2008.  Incredibly comprehensive article here &#8211; both summarizing in breadth, and covering in depth.  If you&#8217;re interested in how user experience design (UXD) should work in an agile environment, this is the article you need to read.  If you&#8217;re <em>really</em> interested in UXD and agile &#8211; this is where you need to start!</p>
<p><a href="http://www.slideshare.net/mortenjust/an-introduction-to-ux-in-scrum-1289533">Scrum and UX &#8211; a presentation</a> by Morten Just from 2009.  Morten tells a great story about how many of the different disciplines within the &#8220;catchall&#8221; of UXD can fit in the world of projects being run in the Scrum framework.</p>
<p>My soundbite addition:</p>
<p>I feel like UXD is such a broad term that you can&#8217;t simply answer &#8220;how does UXD work in Scrum?&#8221; (a question I was asked today).  Some elements (outputs traditionally labeled as UXD) represent requirements (what should people be doing, what should some of the acceptance criteria be), and others represent design (how should things work / look / feel / exist, given a solution approach).</p>
<p>Every team will be organized differently, and parts of UXD that are &#8220;requirements&#8221; should be driven &#8211; in Scrum &#8211; by the product owner and UXD professional working together, expressing the need to enable the right stories with &#8220;good (big picture) design.&#8221;  The parts of UXD that are &#8220;design&#8221; should be handled inside the team, and the product owner (and doubly-so the stakeholders) should rely on their trust of the Scrum team to include &#8220;good UXD&#8221; as part of their design of solutions that enable stories.</p>
<p>As I mentioned in the pre-amble, Jeff and Morten do a much better job of articulating this point of view, so this article is 99% &#8220;go read their stuff&#8221; and 1% &#8220;my mental model that some of it should happen as part of expressing what needs to be done, and some of it should happen as expressing how it should be done.&#8221;</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+Good+Stuff+on+Agile+and+UXD+http%3A%2F%2Fbit.ly%2FcKIAAo+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2010/11/10/agile-and-ux/&amp;t=Good+Stuff+on+Agile+and+UXD" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/11/10/agile-and-ux/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>A Prototype is Worth a Thousand Lines of Code</title>
		<link>http://tynerblain.com/blog/2010/10/25/a-prototype-is-worth-a-kloc/</link>
		<comments>http://tynerblain.com/blog/2010/10/25/a-prototype-is-worth-a-kloc/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 15:09:35 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Business Rules]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile interaction]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[process prototyping]]></category>
		<category><![CDATA[prototypes]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[uml as prototype]]></category>

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

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+A+Prototype+is+Worth+a+Thousand+Lines+of+Code+http%3A%2F%2Fbit.ly%2FaMAQo4+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2010/10/25/a-prototype-is-worth-a-kloc/&amp;t=A+Prototype+is+Worth+a+Thousand+Lines+of+Code" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/10/25/a-prototype-is-worth-a-kloc/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Cadence Versus Risk</title>
		<link>http://tynerblain.com/blog/2010/10/20/cadence-versus-risk/</link>
		<comments>http://tynerblain.com/blog/2010/10/20/cadence-versus-risk/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 15:04:49 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Design of Design]]></category>
		<category><![CDATA[epiricism]]></category>
		<category><![CDATA[incremental development]]></category>
		<category><![CDATA[rationalism]]></category>
		<category><![CDATA[release cadence]]></category>
		<category><![CDATA[risk]]></category>

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

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

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

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Use+Cases+for+Iterative+Development+http%3A%2F%2Fbit.ly%2FaoG6ea+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/&amp;t=Use+Cases+for+Iterative+Development" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2010/10/05/use-cases-and-iteration/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>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>Design-Free Requirements</title>
		<link>http://tynerblain.com/blog/2009/11/03/design-free-requirements/</link>
		<comments>http://tynerblain.com/blog/2009/11/03/design-free-requirements/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 16:16:06 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[big ten rules]]></category>
		<category><![CDATA[product management and design]]></category>
		<category><![CDATA[rules of requirements]]></category>
		<category><![CDATA[rules of writing requirements]]></category>

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

<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+Design-Free+Requirements+http%3A%2F%2Fbit.ly%2F1pf903+" 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/03/design-free-requirements/&amp;t=Design-Free+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/11/03/design-free-requirements/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Agile Prioritization: Which Widget?</title>
		<link>http://tynerblain.com/blog/2009/10/19/agile-prioritization/</link>
		<comments>http://tynerblain.com/blog/2009/10/19/agile-prioritization/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 03:54:46 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[product management and user experience]]></category>
		<category><![CDATA[ux and product management]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=1093</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F10%2F19%2Fagile-prioritization%2F", "style": "big", "title": "Agile Prioritization: Which Widget?" }); Your company is building out a toolkit to support third-party developers.  You&#8217;ll need a bunch of different types of widgets &#8211; combo-boxes, text entry fields, domain-specific controls, etc.  You&#8217;ve got a long list of desired controls from your customers.  You&#8217;re agile.  What do you [...]]]></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%252F19%252Fagile-prioritization%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Agile%20Prioritization%3A%20Which%20Widget%3F%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F10%2F19%2Fagile-prioritization%2F", "style": "big", "title": "Agile Prioritization: Which Widget?" });</script></div>
<p><img class="alignnone" title="agile combobox" src="http://sehlhorst.smugmug.com/photos/686509239_2Y8GV-O.png" alt="" width="205" height="194" /></p>
<p>Your company is building out a toolkit to support third-party developers.  You&#8217;ll need a bunch of different types of widgets &#8211; combo-boxes, text entry fields, domain-specific controls, etc.  You&#8217;ve got a long list of desired controls from your customers.  You&#8217;re agile.  What do you build first?</p>
<h2><span id="more-1093"></span>Agile In A Soundbite</h2>
<p>Being <a title="agile explained" href="http://tynerblain.com/blog/2007/03/16/explaining-agile-development/">agile is about delivering incremental value</a>, quickly, getting feedback, and then delivering more incremental value.  Repeat until &#8220;done.&#8221;  <em>Good</em> agile adds a qualifier &#8211; do the <em>most valuable</em> thing quickly, get feedback, do the <em>most valuable</em> thing (that has not already been done) quickly. <em>Better</em> <a title="value optimization and prioritization" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">agile optimizes the rate at which you deliver value</a> by taking into account both benefit and cost.  <em>Great</em> agile overlays a focus on getting better at doing all of these things while you do them &#8211; becoming a learning organization.</p>
<h2>Boiling the Ocean</h2>
<p><img class="alignnone" title="boiling the ocean" src="http://sehlhorst.smugmug.com/photos/686571065_y35xb-O.jpg" alt="" width="250" height="166" /></p>
<p>A product manager I was coaching was faced with a challenge commonly referred to as <em>boiling the ocean</em>. His team was tasked with solving a market problem, and they were constrained to doing it with a service-oriented architecture that exposed a set of widgets (user interface controls) that customers could easily integrate into their products.  This approach was designed to provide competitive differentiation by reducing the time and cost to deploy solutions that allowed customers to integrate his product into their existing platforms.</p>
<p>In initial conversations with customers, technologists, and architects, this product manager quickly amassed a list of desired widgets (controls) and scenarios (stories) in which they could be used.  The product manager&#8217;s team had recently switched to an agile development methodology.  The internal stakeholders, not yet accustomed to agile development, wanted &#8220;all of the widgets,&#8221; now.</p>
<p>This product manager was able to convince them that the team would deliver the widgets incrementally, following agile principles.</p>
<p>His question was &#8211; <em>How do I sequence the widgets in the backlog</em>?</p>
<h2>Defining Widget Priority</h2>
<p>The product manager had a list of widgets, combo-boxes, data-grids, text fields, radio buttons, etc., and for each widget, he had a real-world scenario showing how the widget could be used.  Most of the scenarios involved customers using multiple widgets.  He wondered if he should do some sort of analysis that detailed the frequency of use of each widget.  &#8221;This widget is used in 7 scenarios, so it should be done first; this widget is used in 5 scenarios&#8230;&#8221;</p>
<p>There was a strong temptation to add several &#8220;Create a widget&#8221; tasks to his backlog.  It would be easy for his development team to estimate the effort required to deliver each widget.  His team wanted to deliver incrementally, and &#8220;one widget at a time&#8221; felt like logical, discrete chunks of work to them.  They could easily sink their teeth into estimating, building, and testing each widget.</p>
<p>A quick reminder of a main tenet of agile, delivering incremental value, illuminated the flaw in this approach.  This approach would have been an <em>inside-out</em> prioritization, when <a title="outside-in software development" href="http://tynerblain.com/blog/2007/09/27/outside-in/">value delivery requires an outside-in perspective.</a> (See the &#8216;recommended reading&#8217; suggestions on this page to check out Kessler and Sweitzer&#8217;s great book.)</p>
<p>If the team used this approach, after the first widget was complete, they would be able to deliver exactly 1 task, and 0 stories.  Development teams don&#8217;t deliver tasks, however.  The team&#8217;s customers would not be able to get incremental value from having a single widget.  The team would have delivered seven incomplete stories &#8211; so they would have delivered no stories at all!</p>
<p>We reworked his approach as follows:</p>
<ol>
<li><strong>Assess a value for each story</strong>, making sure that<a title="writing complete user stories" href="http://tynerblain.com/blog/2009/07/06/writing-complete-user-stories/"> each story would enable his customers to accomplish something valuable</a>.</li>
<li>Engage their user interface /<a title="definition of user experience" href="http://tynerblain.com/blog/2006/03/03/foundation-series-user-experience-disciplines/"> user experience</a> designer to <em><strong>design</strong></em><strong> a solution for the most valuable story</strong>.  This design was constrained to use widgets in the user interface.  The suggested way to communicate this design was with a storyboard and low-fidelity wireframes.</li>
<li><strong>Identify the widgets needed</strong> to be built to deliver that story, <em>using the designer&#8217;s design</em>.</li>
<li><strong>Deliver the story</strong> to the development team, including the storyboard, wireframes, and list of widgets to be used as acceptance criteria.</li>
<li>Get the development team to <strong>size (estimate) the effort to complete each story</strong>.</li>
<li>Where stories were too big (epics), <strong>collaborate </strong>to identify good ways to <a title="agile story decomposition" href="http://tynerblain.com/blog/2007/06/27/benefits-of-agile-stories/">break up the stories</a> into manageable chunks.</li>
<li><strong>Repeat steps 2 through 6</strong> until the amount of identified effort was likely to fill the release (keep the dev team busy delivering value).</li>
<li>As the team delivers each story, get feedback from the market, revisit the prioritization, and revise the &#8220;next&#8221; story.</li>
</ol>
<p>What we discovered was that a scenario like the following (modified for this article) played out:</p>
<ul>
<li>The first story required two widgets.  As no widgets existed, both had to be built.</li>
<li>The second story required three widgets, but two of them had been built to support the first story &#8211; only one <em>incremental</em> widget had to be created.</li>
<li>The third story used one of the widgets from the first story, but required additional behaviors.  The original widget was modified to provide <em>incremental</em> capabilities (and value).</li>
</ul>
<h2>A Note On Team Structure</h2>
<p>Astute readers will notice that there was a <em>design step</em> &#8220;inside the requirements process&#8221; &#8211; before the stories were delivered to the development team.  Technically, that is true, for the way this particular company was organized.  The user experience designer was not a member of the scrum team, but rather, an external consultant who supported multiple teams.  The product manager engaged the designer prior to engaging the development teams.</p>
<p>This just as easily could have happened as follows:</p>
<ol>
<li>Product manager identifies, values, and prioritizes stories to be added to the backlog.</li>
<li>Development team, as part of sizing the stories, engages their user experience designer to select the appropriate widgets, and those <em>design decisions</em> inform the estimation process.</li>
<li>Everything else is the same.</li>
</ol>
<p>This <em>procedural variation</em> does not have design &#8220;inside the requirements process.&#8221;  The same people do the same things, in the same sequence in this scenario.  The only difference is that the interface / interaction designer is a member of the development team.  That would be ideal, but that was not how the company was organized.</p>
<p>In this particular example, <a title="product managers and UX designers" href="http://tynerblain.com/blog/2007/03/05/product-management-and-ux/">having the product manager collaborate with the UX designer</a> made the most sense.  It introduced less complexity for the product manager to accept responsibility for this activity than it would have for the development team (who was still new to using an agile delivery cadence) to do it.</p>
<h2>Conclusion</h2>
<p>The key ideas at play here:</p>
<ul>
<li>Focus on <em>realizable</em> <strong>value to the customer</strong> (outside-in development), not <em>tractable</em> tasks (inside-out development).</li>
<li><strong>Collaboration with a UX</strong> professional is key to driving &#8220;interface requirements.&#8221;</li>
<li><strong>Deliver frequently and valuably</strong>, get feedback (learn), and incorporate that knowledge into whatever is next.</li>
</ul>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Agile+Prioritization%3A+Which+Widget%3F+http%3A%2F%2Fbit.ly%2F401Wu2+" 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/19/agile-prioritization/&amp;t=Agile+Prioritization%3A+Which+Widget%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/2009/10/19/agile-prioritization/feed/</wfw:commentRss>
		<slash:comments>16</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>User Goals and Corporate Goals</title>
		<link>http://tynerblain.com/blog/2009/06/22/user-goals-and-corporate-goals/</link>
		<comments>http://tynerblain.com/blog/2009/06/22/user-goals-and-corporate-goals/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 04:59:02 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[corporate goals]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[user goals]]></category>
		<category><![CDATA[ux]]></category>

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

<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+Goals+and+Corporate+Goals+http%3A%2F%2Fbit.ly%2FTSTgM+" 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/06/22/user-goals-and-corporate-goals/&amp;t=User+Goals+and+Corporate+Goals" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/06/22/user-goals-and-corporate-goals/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Personas Make Blue Ocean Strategy Proactive</title>
		<link>http://tynerblain.com/blog/2009/04/29/personas-and-blue-oceans/</link>
		<comments>http://tynerblain.com/blog/2009/04/29/personas-and-blue-oceans/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 15:57:34 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[blue ocean]]></category>
		<category><![CDATA[blue ocean persona]]></category>
		<category><![CDATA[blue ocean strategy]]></category>
		<category><![CDATA[persona]]></category>
		<category><![CDATA[personas]]></category>

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

<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+Personas+Make+Blue+Ocean+Strategy+Proactive+http%3A%2F%2Fbit.ly%2Fi71T94+" 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/29/personas-and-blue-oceans/&amp;t=Personas+Make+Blue+Ocean+Strategy+Proactive" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/04/29/personas-and-blue-oceans/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>2009 Bad Usability Calendar</title>
		<link>http://tynerblain.com/blog/2009/01/13/2009bad-usability-calendar/</link>
		<comments>http://tynerblain.com/blog/2009/01/13/2009bad-usability-calendar/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 02:14:50 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[2009 bad usability calendar]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=801</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F01%2F13%2F2009bad-usability-calendar%2F", "style": "big", "title": "2009 Bad Usability Calendar" }); Netlife Research brings us the 2009 Bad Usability calendar.  Get it while it&#8217;s hot. Download it from the 2009 bad usability calendar page on their website.  Or check out our article from last year for the 2007-2008 bad usability calendars.  They really do have [...]]]></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%252F01%252F13%252F2009bad-usability-calendar%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%222009%20Bad%20Usability%20Calendar%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2009%2F01%2F13%2F2009bad-usability-calendar%2F", "style": "big", "title": "2009 Bad Usability Calendar" });</script></div>
<p><img class="alignnone" title="bad usability calendar thumbnail" src="http://sehlhorst.smugmug.com/photos/454515968_v6kRJ-L.png" alt="" width="237" height="315" /></p>
<p>Netlife Research brings us the 2009 <em>Bad</em> Usability calendar.  Get it while it&#8217;s hot.</p>
<p><span id="more-801"></span></p>
<p>Download it from the <a title="2009 usability calendar" href="http://www.badusability.com/">2009 bad usability calendar page</a> on their website.  Or check out our article from last year for the <a title="older bad usability calendars" href="http://tynerblain.com/blog/2008/01/31/bad-usability-calendar-2/">2007-2008 bad usability calendars</a>.  They really do have some great points to make.  Two in particular got my attention this year &#8211; any guesses which months?</p>
<p>Last year, over 100K copies were downloaded.  Act now and be on the bleeding edge of the first 2% to download for 2009.</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+2009+Bad+Usability+Calendar+http%3A%2F%2Fbit.ly%2FeVDhdc+" 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/01/13/2009bad-usability-calendar/&amp;t=2009+Bad+Usability+Calendar" 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/01/13/2009bad-usability-calendar/feed/</wfw:commentRss>
		<slash:comments>3</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>Bad Usability Calendar 2008</title>
		<link>http://tynerblain.com/blog/2008/01/31/bad-usability-calendar-2/</link>
		<comments>http://tynerblain.com/blog/2008/01/31/bad-usability-calendar-2/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 05:35:28 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Austin TX]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[bad usability]]></category>
		<category><![CDATA[bad usabilty]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[usabilty]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/31/bad-usability-calendar-2/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F01%2F31%2Fbad-usability-calendar-2%2F", "style": "big", "title": "Bad Usability Calendar 2008" }); Netlife Research (company website in Norwegian) has done it again. Their 2008 Bad Usability Calendar is here and it is great. So great that it is hard to pick a favorite. Download it here. 2007 has more great examples. [Note: This is a short [...]]]></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%252F31%252Fbad-usability-calendar-2%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Bad%20Usability%20Calendar%202008%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F01%2F31%2Fbad-usability-calendar-2%2F", "style": "big", "title": "Bad Usability Calendar 2008" });</script></div>
<p><img title="calendar" alt="calendar" style="width: 190px; height: 269px" src="http://www.smugmug.com/photos/249609356-L.jpg" /></p>
<p><a title="Netlife Research" href="http://www.badusability.com/about/">Netlife Research</a> (<a title="Netlife Research NO" href="http://www.netliferesearch.no/om_oss/kontakt_oss/netlife_research_just_another_ux_company">company website in Norwegian</a>) has done it again.  Their 2008 Bad Usability Calendar is here and it is great.  So great that it is hard to pick a favorite.  Download it <a title="bad usability calendar" href="http://www.badusability.com/">here</a>.  2007 has <a title="2007 usabilty calendar" href="http://tynerblain.com/blog/2006/11/08/bad-usability-calendar/">more great examples</a>.</p>
<p>[Note: This is a short post- just got back from the <a title="VR" href="http://www.velvetrevolver.com/">Velvet Revolver</a> concert at <a title="Stubbs" href="http://www.stubbsaustin.com/">Stubb's</a>.  Living in Austin rocks!]</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+Bad+Usability+Calendar+2008+http%3A%2F%2Fbit.ly%2Ffk5EB3+" 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/31/bad-usability-calendar-2/&amp;t=Bad+Usability+Calendar+2008" 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/31/bad-usability-calendar-2/feed/</wfw:commentRss>
		<slash:comments>2</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>You Are Creating Bugs In Your Software</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/</link>
		<comments>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 03:19:16 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[Test Automation]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[good requirements techniques]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[reducing bugs]]></category>
		<category><![CDATA[requirements prevent bugs]]></category>
		<category><![CDATA[sdlc]]></category>
		<category><![CDATA[software development lifecycle]]></category>
		<category><![CDATA[source of bugs]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F01%2F14%2Fyou-are-creating-bugs%2F", "style": "big", "title": "You Are Creating Bugs In Your Software" }); No matter how good your quality process is, you are introducing bugs. This article reviews the places where bugs are introduced in the software development process (from stakeholders to users), and reviews ways to address those bugs. One way to identify [...]]]></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%252F14%252Fyou-are-creating-bugs%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22You%20Are%20Creating%20Bugs%20In%20Your%20Software%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2008%2F01%2F14%2Fyou-are-creating-bugs%2F", "style": "big", "title": "You Are Creating Bugs In Your Software" });</script></div>
<p><img title="bug killer" alt="bug killer" src="http://www.smugmug.com/photos/243520519-L.jpg" /></p>
<p>No matter how good your quality process is, you are introducing bugs.  This article reviews the places where bugs are introduced in the software development process (from stakeholders to users), and reviews ways to address those bugs.</p>
<p><span id="more-623"></span></p>
<p>One way to identify the sources of bugs is by listening to how people tell you about the bugs.</p>
<ol>
<li>&#8220;That is not what I want&#8221;</li>
<li>&#8220;That is not what I said&#8221;</li>
<li>&#8220;That is not what I meant&#8221;</li>
<li>&#8220;That is not how it is supposed to work&#8221;</li>
<li>&#8220;That is not what they meant&#8221;</li>
<li>&#8220;That is not what I want it to do&#8221;</li>
</ol>
<p>Visually, you can think of the development process (regardless of methodology) like the following flow</p>
<p><img alt="where bugs enter the process" title="where bugs enter the process" src="http://sehlhorst.smugmug.com/photos/45965627-L.png" /></p>
<p>Each of the six sources of bugs is labeled in the above flow.  The article, <cite><a title="Where bugs come from" href="http://tynerblain.com/blog/2006/01/22/where-bugs-come-from/">Where Bugs Come From</a></cite>, goes into a detailed explanation of each source of bugs.  This article looks at what you can do to improve the ability of your process to reduce these bugs.  I have been a stakeholder, a product manager, a business analyst, a developer and a tester.  And I&#8217;ve been guilty of all of these offenses at one time or another.  When I say <em>you</em>, I also mean <em>me</em>.  So chill.</p>
<h2>&#8220;That is not what I want&#8221;</h2>
<p>Stakeholders introduce bugs into the process by being unable to define what they want.  Some agile methodology proponents argue that as a stakeholder, you <em>can&#8217;t</em> know what you want until you have something you<em> don&#8217;t want</em> in front of you.  In other words, those agilists are giving up on trying to prevent these errors &#8211; they claim it is futile.</p>
<p>You can change your mind.  The team could be dealing with &#8220;That is not what I want <em>now</em>&#8221; &#8211; and change is something that can not be prevented &#8211; although the impact of change can be mitigated.  <a title="11 iterative development models" href="http://tynerblain.com/blog/2007/03/09/agile-software-development-methods/">Iterative development</a> and course-correction through getting immediate feedback is one way to do that.  <a title="iterative specification and prototypes" href="http://tynerblain.com/blog/2006/02/21/software-requirements-specification-iteration-and-prototyping/">Prototyping</a> is another method of course correction.  Prototypes can also be used to<a title="implicit requirements" href="http://tynerblain.com/blog/2006/11/17/gathering-implicit-requirements/"> elicit <em>implicit</em> requirements</a>.</p>
<p>But that still avoids trying to directly address the issue of <em>you </em>not effectively describing what you actually want.  There are ways to improve your team&#8217;s engagement with you, so that you actually say what you want.  First, an emphasis on <a title="writing valuable requirements" href="http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/"><em>valuable</em> requirements</a> drives critical thinking about <em>why</em> you need a particular capability or feature.  One approach to achieve valuable requirements is to <a title="The reason why" href="http://tynerblain.com/blog/2006/02/21/the-reason-why/">question their justification</a>.</p>
<p>The key to making this work is to make sure you <a title="getting approval for your requirements" href="http://tynerblain.com/blog/2007/01/09/requirements-approval/">are approving your requirements</a>.  And watch out for the <a title="approval anti-patterns" href="http://tynerblain.com/blog/2007/01/09/requirements-approval/"><em>anti-patterns</em></a> in the article.</p>
<h2>&#8220;That is not what I said&#8221;</h2>
<p>Business analysts, product managers, and requirements analysts introduce bugs into the process through misunderstanding the stakeholders.  Using the techniques above to stay on top of changes in stakeholder needs is not enough.  Even when you effectively engage your stakeholders so that they are <em>self-aware</em> and can articulate exactly <a title="another use for why" href="http://tynerblain.com/2006/10/24/another-use-for-why/">what they need and why</a>, you still have a problem.</p>
<p>You can improve <a title="Ten active listening skills" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">how you listen</a>, and you can improve how you document what you heard.  Make sure that you write <a title="complete requirements" href="http://tynerblain.com/blog/2006/06/08/writing-complete-requirements/">complete</a>, <a title="consistent requirements" href="http://tynerblain.com/blog/2006/06/09/big-ten-rules-writing-consistent-requirements/">consistent</a> and <a title="unambiguous requirements" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">unambiguous </a>requirements.  While you&#8217;re at it &#8211; make sure you are <a title="correct requirements" href="http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/">writing your requirements correctly</a>.</p>
<h2>&#8220;That is not what I meant&#8221;</h2>
<p>Developers can misinterpret requirements.  While there are situations where a requirement is adequately expressed, but the developer is not capable of understanding, that is not the norm.  Developers are smart.  The onus is on the person writing requirements to make sure that they are <a title="writing for the purpose of reading" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">written for the audience</a>.  So, even though the source of these bugs appears to be the developers, it is actually your documentation.  If your documents need to <a title="Active listening and cultural cues" href="http://tynerblain.com/blog/2005/12/11/when-%E2%80%98no%E2%80%99-means-%E2%80%98yes%E2%80%99/">span cultural chasms</a>, then that&#8217;s your reality.</p>
<p>Make sure you write your requirements <a title="ambiguous requirements" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">unambiguously</a>, so that they are not misinterpreted.  Make sure that they are feasible<a title="attainable requirements" href="http://tynerblain.com/blog/2006/06/07/writing-attainable-requirements/"> requirements</a>, and that they do not <a title="don't specify design in your requirements" href="http://tynerblain.com/blog/2006/06/02/writing-design-free-requirements/">specify design</a>.  The <a title="concise requirements" href="http://tynerblain.com/blog/2006/05/31/writing-concise-requirements/">requirements also need to be concise</a> without being overly terse.</p>
<h2>&#8220;That is not how it is supposed to work&#8221;"</h2>
<p>Developers should test what they create.  Given an understanding of what you believe the code is supposed to do, you should test that it actually does it.  This is the stereotypical bug &#8211; we asked for X, and it doesn&#8217;t work.  <a title="continuous integration" href="http://tynerblain.com/blog/2006/05/08/foundation-series-continuous-integration/">Continuous integration</a> is the most effective technique for addressing bugs that are introduced at this point in the process.</p>
<p>In more complex situations, you can apply <a title="test smarter not harder part 1" href="http://tynerblain.com/blog/2007/12/25/test-smarter-not-harder-1/">more</a> <a title="test smarter not harder part 2" href="http://tynerblain.com/blog/2007/12/27/test-smarter-not-harder-2/">advanced</a> <a title="test smarter not harder part 3" href="http://tynerblain.com/blog/2008/01/02/test-smarter-not-harder-3/">techniques</a> to assure that your testing is complete.</p>
<h2>&#8220;That is not what they meant&#8221;</h2>
<p>The testing team can also misinterpret requirements.  This is a source of <em>false positive</em> bugs &#8211; even when the developers properly interpret the requirements, a bug may be lodged against their code when there is no bug.  That&#8217;s why we have the ability to mark issues as &#8220;not a bug&#8221; when closing them.  Apply the same rules for well-written requirements and you will also address this issue.  Further, make sure that your requirements can be <a title="testable requirements" href="http://tynerblain.com/blog/2005/11/30/how-to-deal-with-untestable-requirements-rewrite-them/">measurable</a>, or <a title="verifiable requirements" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">verifiable</a>.  We recently wrote more about <a title="testing your requirements" href="http://tynerblain.com/blog/2008/01/09/testing-your-requirements/">why you should make requirements testable</a>.</p>
<h2>&#8220;That is not what I want it to do&#8221;</h2>
<p>User education is the key here.  Users should be encouraged to provide feedback about your product.  You don&#8217;t want to discourage feedback, you want to minimize the number of false positives.  False positives come from users misinterpreting how the application is behaving &#8211; a sign of poor design.  False positives also come from users not understanding what the application can (or should) do.</p>
<p>You can address design issues by focusing on <a title="designing for users" href="http://tynerblain.com/blog/2005/12/01/user-centric-design-yields-not-so-obvious-features/">design with the user in mind</a>.  And you can educate the users through a combination of training and with a novel approach to documentation.  Document the product in terms of <a title="goal driven documentation" href="http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/">what users are trying to accomplish</a>, in the context of <a title="use case driven documentation" href="http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/">how they are trying to do it</a>.</p>
<ol />
<h2>Conclusion</h2>
<p>There are a lot of people involved in the software development lifecycle.  As people, we introduce bugs.  As informed software professionals, we also know how to address many of them.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+You+Are+Creating+Bugs+In+Your+Software+http%3A%2F%2Fbit.ly%2FgPAN3T+" 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/14/you-are-creating-bugs/&amp;t=You+Are+Creating+Bugs+In+Your+Software" 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/14/you-are-creating-bugs/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Global Actor Hierarchies and Personas</title>
		<link>http://tynerblain.com/blog/2007/12/20/global-actor-hierarchies-and-personas/</link>
		<comments>http://tynerblain.com/blog/2007/12/20/global-actor-hierarchies-and-personas/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 04:34:01 +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[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[actor hierarchies]]></category>
		<category><![CDATA[actor hierarchies and personas]]></category>
		<category><![CDATA[actor hierarchy]]></category>
		<category><![CDATA[actors]]></category>
		<category><![CDATA[actors and persona]]></category>
		<category><![CDATA[actors and personas]]></category>
		<category><![CDATA[global actor hierarchies]]></category>
		<category><![CDATA[global actors]]></category>
		<category><![CDATA[global hierarchies]]></category>
		<category><![CDATA[global personas]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[managing requirements]]></category>
		<category><![CDATA[persona]]></category>
		<category><![CDATA[personal goals]]></category>
		<category><![CDATA[personas]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[use case to actor]]></category>
		<category><![CDATA[use cases]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/12/20/global-actor-hierarchies-and-personas/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F12%2F20%2Fglobal-actor-hierarchies-and-personas%2F", "style": "big", "title": "Global Actor Hierarchies and Personas" }); We use actor hierarchies to organize the different users of a system. Different people play different roles, and thus do different jobs. We use different actors to identify and organize those people. When deploying a system globally, we usually discover people that 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%252F2007%252F12%252F20%252Fglobal-actor-hierarchies-and-personas%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Global%20Actor%20Hierarchies%20and%20Personas%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F12%2F20%2Fglobal-actor-hierarchies-and-personas%2F", "style": "big", "title": "Global Actor Hierarchies and Personas" });</script></div>
<p><img alt="Actor Hierarchy" title="Actor Hierarchy" src="http://sehlhorst.smugmug.com/photos/116706205-M.png" /></p>
<p>We use actor hierarchies to organize the different users of a system. Different people play different roles, and thus do different jobs. We use different actors to identify and organize those people. When deploying a system globally, we usually discover people that do <em>the same</em> jobs, but do them <em>differently</em>.  Incorporating the notion of personas lets us deal with this.</p>
<p><span id="more-612"></span></p>
<h2>Why Actor Hierarchies?</h2>
<p>User-centered, or <a title="user centric design" href="http://tynerblain.com/blog/2005/12/01/user-centric-design-yields-not-so-obvious-features/">user-centric design</a> is an approach to developing software that focuses, as the name implies, on the users of the system. When designing the solution &#8211; and more importantly, when defining the requirements for the system, <a title="how to not suck at design" href="http://tynerblain.com/blog/2006/11/15/how-to-not-suck-at-design/">special attention is placed on the users</a> of the system. More specifically, center stage is devoted to developing software that helps the users accomplish their goals.</p>
<p>From a requirements perspective, the key is to acknowledge that there are different types of users, doing different types of work with the software. It is reasonable to conclude that they will have different needs. An <a title="actor hierarchies" href="http://tynerblain.com/blog/2006/12/13/actor-hierarchies/">actor hierarchy</a> provides a way to organize the different needs of the people doing different jobs.  [Note: These are the same <a title="how to read a formal use case" href="http://tynerblain.com/blog/2006/06/26/foundation-series-how-to-read-a-formal-use-case/"><em>actors</em> that are identified in use cases</a>.]</p>
<h2>A Simple Actor Hierarchy</h2>
<p>Let&#8217;s start by creating a simple actor hierarchy. We&#8217;ll build on this incrementally as we add more complexity to our user base. We&#8217;ll look at a hierarchy for sales representatives (reps) for a company that manufactures goods for sale to other businesses. Each business to which the company sells products is known as an account.</p>
<p><img title="sales rep hierarchy" alt="sales rep hierarchy" src="http://sehlhorst.smugmug.com/photos/234437216-L.jpg" /></p>
<p>The hierarchy represents an approach to classification of sales reps. Each successive level of the hierarchy is more specific than the previous level. All employees who sell products are considered to be sales reps (the top level in the hierarchy). When the company sells products to its accounts, it is not always obvious <em>which</em> products should be sold. In those cases, an engineer is brought in to help determine the exact need, and suggest the right products to sell. This engineer is known as a <em>technical sales rep</em> and the technical sales rep works with an <em>account</em> rep to determine the right products and terms to close the deal. The account rep is responsible for making the individual sale, and occasionally gets help from the technical sales rep to do it.</p>
<p>The hierarchy shows that all sales reps are either technical reps or account reps. If an employee is a sales rep, then he must be one of the two choices.</p>
<p>Account reps are further divided into two groups &#8211; representatives who work with large accounts, and reps who work with small accounts. The company currently considers accounts that make more than $500,000 in purchases per year to be large accounts, and the rest are small accounts. The main difference in behavior is that a large account rep works with only one customer &#8211; and in fact, for <em>really</em> large accounts, there may be multiple representatives for a single account. Small account reps, however, each work with more than one account, maybe even dozens of accounts.</p>
<p>You could argue, in the abstract, that large and small account reps should not be treated as different types of actors &#8211; because they all manage relationships with customers and sell products. However, there is enough of a difference (in our hypothetical example) between the jobs of the two types of reps that it is worth treating them as separate actors.</p>
<p><img title="account rep hierarchy" alt="account rep hierarchy" src="http://sehlhorst.smugmug.com/photos/234462198-L.jpg" /></p>
<p>In our example, the large account reps are focused on account retention, and maintaining relationships with a single customer. These reps are focused on account <em>retention</em> and are usually managing the upgrade cycle for their customers. The upgrade cycle is when a customer replaces their existing, worn out or obsolete equipment with new equipment. Small account reps might be working with really large <em>potential</em> customers who currently buy from the competition.  These small account reps are focused on <em>acquisition</em> and growth. They are also trying to manage and create relationships in an attempt to grow the customers until they become large accounts. Small account reps are also managing multiple customers, and have additional activities associated with managing that complexity.</p>
<h2>Global User Base</h2>
<p>The situation above describes how the company (or if you have a product management hat on &#8211; <a title="know your customer's market" href="http://tynerblain.com/blog/2006/06/27/know-thy-customers-markets/">the companies in the target market segment</a>) organizes their sales force in one region. What do you do when the the company has operations around the world? If all global operations are the same, then you don&#8217;t do anything. It is a rare company that works this way. Most global companies have grown their regional businesses (where a region might be Europe or Asia, or it might be China or India) independently. This could be do to growth by acquisition, or the parallel growth of separate regions managed separately.</p>
<p>In different regions, companies often have different business models. They also usually deal with customers in different ways. These differences may manifest from varied local business practices, different characteristics of the customers, or different levels of maturity in the market for the products being sold. There are also differences in regional regulations, policies, and laws &#8211; although you should generally manage those as variations in business rules, not business practices. We&#8217;ll side-step that layer of complexity for the purposes of this article. Pretend that the same laws, policies, and regulations are in effect in all of the regions.</p>
<p>The same general actor hierarchy can serve to represent the sales reps in multiple regions, with some modifications to account for the differences. Consider for our example, that the company sells products both in North America and in Latin America. The actor hierarchy above describes how the sales team in North America. The company&#8217;s operations are a little bit different in Latin America (for our example).</p>
<p>Latin American operations are relatively new to the company. Where the company has a well established market in North America, it has relatively low market share but very rapid growth in Latin America.  As a result of the way the company&#8217;s business has evolved in the two different regions, there are two distinct differences between the two regions in the way that sales reps are organized.</p>
<ol>
<li>Technical Sales Reps.  In North America, technical sales reps (TSRs) are salaried employees, who participate in a profit sharing program.  In Latin America, the technical sales reps have a base salary, but sales-commissions make up a large portion of their compensation.  The North American TSRs are therefore incented to propose solutions that are highly profitable (thus increasing their profit sharing bonuses).  The Latin American TSRs are incented to propose solutions that may sacrifice profitability in exchange for increased revenue (thus increasing their commissions) .</li>
<li>Small Account Reps.  In North America, small account reps, like all account reps, are employees of the company, and work on commission.  In Latin America, small account reps are <em>not</em> employees of the company.  Small account reps are third-party sales people.  The model is very similar to independent insurance agents.  The small account reps, when trying to bid on a job, can propose solutions from the company or from one of the competitors.  The third party small account rep also gets to set the price that <em>his</em> customer will pay for the products, and <em>negotiate</em> the price that the company will accept &#8211; pocketing the difference.</li>
</ol>
<p>In both situations, the user populations are different, and will behave differently.  The TSRs in both regions do fundamentally the same work &#8211; but with different motivations.  The Small account reps in Latin America, are markedly different from the ones in North America &#8211; in motivation, relationship with the company, and the work that they do.</p>
<h2>Using Personas To Express Regional Differences</h2>
<p><a title="personas" href="http://tynerblain.com/blog/2006/04/17/persona-grata/">Personas </a>provide an effective way to describe archetypes of classes of users.  Persona development is a key component of the <a title="interaction design process overview" href="http://tynerblain.com/blog/2006/03/21/interaction-design-process-overview/">interaction design process</a>, but it can be <a title="interaction design and requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">leveraged very effectively in a traditional requirements process</a> as well.  Each persona represents a homogeneous population of users.  In other words, the collection of users that are in a role represented by a single actor, and who have similar personal goals.  By defining personas, we can <a title="user goals " href="http://tynerblain.com/blog/2007/10/11/stakeholder-goals/">manage requirements in the context of those personal goals</a>.  One actor in the actor hierarchy may have multiple personas associated with it.  This makes sense when there are groups of individuals with different <a title="personal goals influence design" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">personal goals</a>.</p>
<p>The most common example, and one that is almost always present, is built around the notion of user experience.  You can classify users of a product as <a title="competent users and design" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">novice, competent, or expert users</a>.  Novice users usually become competent users but rarely become expert users.  Those people who become expert users are usually a different breed.  Professional drivers become experts, where casual drivers rarely exceed competence.</p>
<p>These two user groups are made up of people with different goals, who use cars differently (even though they both drive, they drive differently, and with differing expectations and needs).  It is critical to separate user groups that are different, and treat them differently, to avoid the <a title="elastic users and persona" href="http://tynerblain.com/blog/2007/07/23/elastic-users/">elastic user problem</a>.</p>
<p>The two different technical sales rep (TSR) populations &#8211; in Latin America and North America &#8211; would be best represented as two different personas.  The TSRs in both regions do fundamentally the same work &#8211; provide technical support to an account rep, to help in closing a sale.  The North American TSR is profit motivated, where the Latin American TSR is motivated by increasing revenue.  These different goals make it very unlikely that the same persona would accurately describe the TSR population in both regions.  There are other factors that drive the identification of multiple personas for the same role (in the actor hierarchy), but to simplify, we are focusing just on the regional dynamic.</p>
<p>Since the TSRs in both North and Latin America are performing the same job, it does not make sense to treat them as having different roles in the actor hierarchy.</p>
<h2>Using Additional Roles in the Hierarchy to Express Regional Differences</h2>
<p>In situations like with the Small Account Reps in North and Latin America, it is better to create distinct roles in the actor hierarchy to represent them.</p>
<p><img title="small account rep hierarchy" alt="small account rep hierarchy" src="http://sehlhorst.smugmug.com/photos/234466974-L.jpg" /></p>
<p>The North American Small Account Rep works on commission and is an employee of the company.  This rep is focused on closing the deal, but only with products from the company.  This rep also may work with other reps to help them close deals &#8211; sharing intelligence about market pricing, helping with product selection, etc.  There are elements of teamwork and collaboration present because all of the reps are &#8220;on the same team.&#8221;</p>
<p>In Latin America, the Small Account Rep is also focused on closing the deal.  But this rep does not care who&#8217;s products are used to close the deal.  The rep will work to get the lowest possible price from the company, in order to maximize the difference between the company&#8217;s price (to the rep) and the rep&#8217;s price (to the customer).  100% of this difference goes to the rep, so even if the rep is handsomely rewarded or commissioned based on transaction margin, the rep will always make more money by negotiating a lower price from the company.  The rep also has additional activities associated with getting quotes from the competition and managing relationships with the company&#8217;s competitors.</p>
<p>Not only are the jobs different, but the company will treat these two reps very differently.  For example, the company would be likely to share cost or margin information with the North American rep.  That information will help the rep know how low he can price products for the customer without jeopardizing the company&#8217;s profitability.  The company knows that the rep wants to close the deal at the highest possible price, to increase margins and therefore increase the rep&#8217;s compensation.</p>
<p>The company will not want to share cost information with the Latin  American rep.  The company is still motivated to get the most profitable deals, but the company realizes that the rep is trying to get the lowest possible price &#8211; not the highest possible price.  This means that the company needs to provide low enough pricing for the rep to close the deal, and low enough pricing that the rep will resell the company&#8217;s products instead of products from the competition.</p>
<h2>Summary</h2>
<p>Actor hierarchies provide a way to differentiate groups of people who have different roles.  Personas provide a way to describe groups of people within a role who share motivation and characteristics.  The combination of the two allows for clear, yet flexible expression of requirements &#8211; both from a business perspective, and from a user perspective.</p>
<p>When dealing with user populations in different regions of the world, it makes sense to extend the actor hierarchy when the jobs, and business requirements of the user populations vary.  When the users are doing the same job, but with different motivations, using personas to describe the differences makes more sense.</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+Global+Actor+Hierarchies+and+Personas+http%3A%2F%2Fbit.ly%2FgCSejK+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/12/20/global-actor-hierarchies-and-personas/&amp;t=Global+Actor+Hierarchies+and+Personas" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/12/20/global-actor-hierarchies-and-personas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Managing Stakeholder Goals</title>
		<link>http://tynerblain.com/blog/2007/10/11/stakeholder-goals/</link>
		<comments>http://tynerblain.com/blog/2007/10/11/stakeholder-goals/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 04:24:01 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[carl kessler]]></category>
		<category><![CDATA[end users]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[insiders]]></category>
		<category><![CDATA[john sweitzer]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[partners]]></category>
		<category><![CDATA[principals]]></category>
		<category><![CDATA[stake holder]]></category>
		<category><![CDATA[stakeholders]]></category>
		<category><![CDATA[steak holders]]></category>
		<category><![CDATA[steakholder]]></category>
		<category><![CDATA[user-centric]]></category>
		<category><![CDATA[users]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/10/11/stakeholder-goals/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F10%2F11%2Fstakeholder-goals%2F", "style": "big", "title": "Managing Stakeholder Goals" }); A couple weeks ago we wrote about Outside-in Software Development, by Carl Kessler and John Sweitzer. One of their ideas about stakeholders and goals has got us thinking about traceability. Types of Stakeholders Carl and John present a framework for understanding stakeholders that groups them [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F10%252F11%252Fstakeholder-goals%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Managing%20Stakeholder%20Goals%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F10%2F11%2Fstakeholder-goals%2F", "style": "big", "title": "Managing Stakeholder Goals" });</script></div>
<p><img alt="steak holder" title="steak holder" src="http://sehlhorst.smugmug.com/photos/206701750-M.jpg" /><br />
A couple weeks ago we wrote about <a title="Focus on stakeholders" href="http://tynerblain.com/blog/2007/09/27/outside-in/"><em>Outside-in Software Development</em>, by Carl Kessler and John Sweitzer</a>.  One of their ideas about stakeholders and goals has got us thinking about traceability.</p>
<p><span id="more-582"></span></p>
<h2>Types of Stakeholders</h2>
<p>Carl and John present a framework for understanding stakeholders that groups them into four categories &#8211; principals, end users, partners, and insiders.</p>
<blockquote>
<ul>
<li><strong>Principals </strong>- the business sponsors for a product or project. These folks have business goals they are trying to achieve. Your mission is to understand those goals. You also need to recognize that they may be moving targets, and be prepared to adapt to those changes.  And we need to <a title="understanding intent" href="http://tynerblain.com/2006/10/24/another-use-for-why/">understand <em>why</em> they want what they want</a>.</li>
<li><strong>End Users</strong> &#8211; the people who ultimately interact with the software.  The best software development processes are <a title="user experience and product management" href="http://tynerblain.com/2007/03/05/product-management-and-ux/">focused on satisfying the end users</a>.  And a lot of authors are out there teaching us how to do that, although none perhaps as visibly as Alan Cooper.</li>
<li><strong>Partners </strong>- people who are neither principals nor end users. These are the folks who don’t directly benefit from your product, don’t use it directly, and didn’t help create it. But they are responsible for helping your product live, thrive, and interact with other products. Think IT people, keeping your system running, and keeping other systems talking to it.</li>
<li><strong>Insiders </strong>- the people who define the product. Your (internal) team. Not only product managers and developers, but business folks, marketers, testers, support staff, finance, etc. The people creating a product influence what ends up being created. And they are stakeholders in a narrow scope &#8211; they are affected by the creation and ongoing support of your product.</li>
</ul>
<p><cite><a title="outside-in software development" href="http://tynerblain.com/blog/2007/09/27/outside-in/">Outside-In Software Development: First Look</a></cite></p></blockquote>
<p>In the book, they go into more detail on the different types of stakeholders.  One interesting thing that jumped out at me is something the authors mentioned about competing agendas for different stakeholders.</p>
<h2>Support Or Not</h2>
<p>Carl and John mention that end users have goals that <em>usually, but not necessarily</em>, are aligned with the goals of the principals.  This makes sense &#8211; someone responsible for the ROI of an improved process would likely have some aligned goals with the person who uses the software within that process.  Users are represented with personas, and those <a title="personas and goals" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">personas articulate goals</a> &#8211; both personal and practical.  This is one are of stakeholder goals.  The user&#8217;s practical goals are (or should be) aligned with the goals of the principal responsible for the results of what the user does.</p>
<h2>Tracing Among Goals</h2>
<p>We use tracing to represent the <a title="structured requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">supporting relationships</a> between requirements artifacts.</p>
<p><img alt="traceability diagram" title="traceability diagram" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" /></p>
<p>The diagram above shows the general relationships between different types of artifacts.  The following diagram shows how this<a title="tracing and user-centric design" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/"> tracing can incorporate the needs of users</a>.</p>
<p><img alt="tracing to practical goals" title="tracing to practical goals" src="http://sehlhorst.smugmug.com/photos/61228367-O.png" /></p>
<p>The top portion of this diagram accentuates that there is tracing <em>within</em> a requirement type.  That is &#8211; goals can support other goals.  From the perspective of stakeholder analysis, Carl and John describe it as alignment.</p>
<p>When we think about traceability, a good way to represent these <em>aligned</em> goals is through subordinate &#8220;supporting&#8221; relationships and traceability.  Carl and John mention that the challenge is to identify conflicting goals and adjust prioritization accordingly (not all stakeholders are created equal!).  This is great advice that resonates.  The authors also point out that you need to be careful to not ignore a user goal that is critical to the achievement of a principal&#8217;s goal.<br />
By tracking principal goals as <em>corporate goals</em>, and end user goals as <em>practical goals</em>, we can identify when goals are aligned (and supportive).  We can also identify when goals are unaligned.  This is exactly the visibility we need to address the two key elements the authors suggest we look at.  Rewording into representation-centric maxims:</p>
<ul>
<li>Don&#8217;t ignore persona practical goals that support principal (corporate) goals.</li>
<li>Question persona practical goals that are <em>not</em> aligned with principal (corporate) goals.</li>
</ul>
<h2>Conclusion</h2>
<p><em>Outside-in Software Development</em> continues to be a good read with good ideas.  Understanding the relationships between the goals of principal stakeholders and end user stakeholders is one of those good ideas.</p>
<p>Using traceability to manage and communicate our understanding of those relationships will help us to make good decisions about supporting and prioritizing those goals.</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+Managing+Stakeholder+Goals+http%3A%2F%2Fbit.ly%2Fgn0bAL+" 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/11/stakeholder-goals/&amp;t=Managing+Stakeholder+Goals" 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/11/stakeholder-goals/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Foundation Series: Heuristic Evaluation</title>
		<link>http://tynerblain.com/blog/2007/08/27/foundation-series-heuristic-evaluation/</link>
		<comments>http://tynerblain.com/blog/2007/08/27/foundation-series-heuristic-evaluation/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 03:26:01 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[UX]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[heuristic analysis]]></category>
		<category><![CDATA[heuristic evaluation]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[user interface design]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/08/27/foundation-series-heuristic-evaluation/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F08%2F27%2Ffoundation-series-heuristic-evaluation%2F", "style": "big", "title": "Foundation Series: Heuristic Evaluation" }); A heuristic evaluation (or heuristic analysis) is a quick, low-cost usability analysis of the design of a user interface. Pareto&#8217;s rule tells us that we can get 80% of the results from 20% of the effort. And that&#8217;s where discount usability tests like a [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F08%252F27%252Ffoundation-series-heuristic-evaluation%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Foundation%20Series%3A%20Heuristic%20Evaluation%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F08%2F27%2Ffoundation-series-heuristic-evaluation%2F", "style": "big", "title": "Foundation Series: Heuristic Evaluation" });</script></div>
<p><img alt="usability classroom" title="usability classroom" src="http://sehlhorst.smugmug.com/photos/50445724-M.jpg" /></p>
<p>A heuristic evaluation (or heuristic analysis) is a quick, low-cost usability analysis of the design of a user interface.  Pareto&#8217;s rule tells us that we can get 80% of the results from 20% of the effort.  And that&#8217;s where discount usability tests like a heuristic evaluation come in to play.  Formal, and more detailed usability studies yield better results &#8211; but cost more and take more time.  A small investment can pay off big with a heuristic evaluation.</p>
<p><span id="more-562"></span></p>
<h2>Heuristic Evaluation</h2>
<p>The Nielsen Norman Group defines heuristic evaluation as follows:</p>
<blockquote><p>Heuristic evaluation is the most popular of the usability inspection methods. Heuristic evaluation is done as a systematic inspection of a user interface design for usability. The goal of heuristic evaluation is to find the usability problems in the design so that they can be attended to as part of an iterative design process. Heuristic evaluation involves having a small set of evaluators examine the interface and judge its compliance with recognized usability principles (the &#8220;heuristics&#8221;).</p>
<p><cite><a title="heuristic evaluation" href="http://www.useit.com/papers/heuristic/">Jakob Nielsen</a></cite></p></blockquote>
<h2>Relative Usefulness of Usability Methods</h2>
<p>In another article of Nielsen&#8217;s, we see the results of surveys about different usability methods and their usefulness.  One of the figures from that article shows this stunning graph.</p>
<p><img alt="usability graph" title="usability graph" src="http://sehlhorst.smugmug.com/photos/188756399-M.gif" /></p>
<p>[source: <a title="learning inspection" href="http://www.useit.com/papers/heuristic/learning_inspection.html">Technology Transfer of Heuristic Evaluation and Usability Inspection</a>, Jakob Nielsen]</p>
<p>While user testing is the clear winner &#8211; both in usefulness and adoption, heuristic evaluation is a close second.  The two of them are reportedly much more effective than all of the other tests.</p>
<h2>Ten Usability Heuristics</h2>
<p>Nielsen also shares with us <a title="Heuristic list" href="http://www.useit.com/papers/heuristic/heuristic_list.html">a list of ten usability heuristics</a>, or general principles to guide user interface design.  His list goes into more detail on each of the ten heuristics, essentially answering the following questions.  You can think of it as a checklist.</p>
<ol>
<li>Does the system provide information about its status?  ["Please wait while the system is updating"]</li>
<li>Does the system use <a title="software development and customer service" href="http://tynerblain.com/blog/2006/09/06/customer-service-and-sdlc/">terms and language that are familiar</a> to the user?</li>
<li>Can mistakes easily be undone? ["Undo" and "How do I get back to where I was from here?"]</li>
<li>Does the system use controls (buttons, links, words) to enable actions consistently ["Yes" vs. "OK" vs. "Apply"]</li>
<li>Does the system help prevent common user errors?</li>
<li>Is it easy for users to see what they can do, versus being forced to remember what they can do?</li>
<li>Are there ways for <a title="expert users" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">expert users</a> to be more efficient than <a title="novice users" href="http://tynerblain.com/blog/2007/02/22/user-centered-design-bridge/">novice users</a>?</li>
<li>Are users forced to filter out irrelevant information (minimalist design)?</li>
<li>Do <a title="error messages as surprise and delight" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">error messages help users</a> to resolve the errors?</li>
<li>Is the documentation searchable, <a title="use case driven documentation" href="http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/">task-centric</a>, and precise with &#8220;how to&#8221; steps?</li>
</ol>
<p>These are fantastic questions to answer (and there&#8217;s a right answer for each one).  And they also represent very easy to understand ideas &#8211; which can be <em>very</em> helpful when trying to explain it to someone who thinks that HCI folks just make applications &#8220;sexy.&#8221;</p>
<h2>Summary</h2>
<p>Really bad user interface mistakes can be avoided quickly with heuristic evaluations.  This is <a title="prioritize to maximize value" href="http://tynerblain.com/blog/2007/07/31/prioritization-and-value-maximization/">the best bang for the buck</a>, when determining <a title="measuring the ROI of HCI" href="http://tynerblain.com/blog/2007/07/30/measuring-the-roi-of-design/">how to invest in user experience</a> efforts.</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+Foundation+Series%3A+Heuristic+Evaluation+http%3A%2F%2Fbit.ly%2Fi0AUNX+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/08/27/foundation-series-heuristic-evaluation/&amp;t=Foundation+Series%3A+Heuristic+Evaluation" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/08/27/foundation-series-heuristic-evaluation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interface Design: Visualization Methods</title>
		<link>http://tynerblain.com/blog/2007/07/25/interface-design-visualization-methods/</link>
		<comments>http://tynerblain.com/blog/2007/07/25/interface-design-visualization-methods/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 02:17:56 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[data visualization]]></category>
		<category><![CDATA[data visulaization]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[visualization methods]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/07/25/interface-design-visualization-methods/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F07%2F25%2Finterface-design-visualization-methods%2F", "style": "big", "title": "Interface Design: Visualization Methods" }); Visualizing complex data can be very difficult. There are almost as many ways to visualize data as there are data to visualize. The Ralph Lengler and Martin J. Eppler at the Visual Literacy Organization collect many of them for us in a periodic table. [...]]]></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%252F25%252Finterface-design-visualization-methods%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Interface%20Design%3A%20Visualization%20Methods%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F07%2F25%2Finterface-design-visualization-methods%2F", "style": "big", "title": "Interface Design: Visualization Methods" });</script></div>
<p><img title="periodic table of visualization techniques" alt="periodic table of visualization techniques" src="http://sehlhorst.smugmug.com/photos/177014610-M.jpg" /></p>
<p>Visualizing complex data can be very difficult.  There are almost as many ways to visualize data as there are data to visualize.  The Ralph Lengler and Martin J. Eppler at the Visual Literacy Organization collect many of them for us in a periodic table.<br />
<span id="more-546"></span></p>
<h2>References</h2>
<p>Hat tip to <a title="visualization tools" href="http://www.kk.org/cooltools/archives/001662.php">Kevin Kelly</a> for sharing this with us in his <em>Cool Tools</em> blog.  The periodic table is available at the <a title="periodic table" href="http://www.visual-literacy.org/periodic_table/periodic_table.html">visual-literacy.org</a> website.  Hovering over each element provides an example of the type of visualization.</p>
<h2>Different Types of Visualization</h2>
<p>One of the biggest challenges in visualization of complex information is in selecting a means to visualize it.  Many approaches simply don&#8217;t fit the data &#8211; they have too few, or too many variables.  For example, a pie chart is great for showing percentages (37% of new iPhone purchasers switched carriers, 5% had no service previously, 40% were existing AT&#038;T customers, 18% did not respond) or relative proportions.  The pie chart is not effective at showing trends or changes in the data (last year 20%&#8230;).  You could have multiple pie charts, but there are more effective ways to show the trends in the data.</p>
<p>The periodic table that the Visual Literacy folks put together would otherwise be overwhelming &#8211; each element represents a way to visualize information.  When you have something to visualize, it would be difficult and tedious to hover over each element, until you saw something inspiring.  So they&#8217;ve organized it into six different categories of visualization.</p>
<ul>
<li>Data Visualization &#8211; line chart, pie chart, scatterplot, etc.</li>
<li>Information Visualization &#8211; radar chart, tree map, data flow diagram, etc.</li>
<li>Concept Visualization &#8211; mind map, layer chart, pyramid technique, etc.</li>
<li>Strategy Visualization &#8211; supply &#038; demand curve, failure tree, life cycle diagram, etc.</li>
<li>Metaphor Visualization &#8211; tree, funnel, bridge, etc.</li>
<li>Compound Visualization &#8211; cartoon, knowledge map, info-mural, etc.</li>
</ul>
<p>There is also an overlay of text color (blue versus black), where blue elements (like the timeline) represent process visualizations, and black elements (like the venn diagram) represent structure visualizations.</p>
<p>There are also symbols to indicate if the visualization technique is suited to details, overviews or both.  And more symbols to indicate if the diagram is intended to cause viewers to come up with new answers (e.g. solutions to a problem), or to indicate that the diagram is designed to clarify insights found in complex data (like the stakeholder rating map).</p>
<h2>Conclusion</h2>
<p>There are some very cool techniques presented.  What would make the site even better would be if each element were a link to a page about that particular type of visualization.  Roll-over graphics are handy for easily comparing different techniques &#8211; hopefully the authors will add detailed pages for the techniques.  Of course, that is a huge job.  If they added one per week, it would take two years!</p>
<p>Check them out &#8211; they will inspire thoughts when you&#8217;re really stuck.</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+Interface+Design%3A+Visualization+Methods+http%3A%2F%2Fbit.ly%2FgRj6Yf+" 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/25/interface-design-visualization-methods/&amp;t=Interface+Design%3A+Visualization+Methods" 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/25/interface-design-visualization-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Humane Interface Design Philosophy &#8211; 7 Tips</title>
		<link>http://tynerblain.com/blog/2007/07/02/humane-design/</link>
		<comments>http://tynerblain.com/blog/2007/07/02/humane-design/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 04:17:22 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[humane design]]></category>
		<category><![CDATA[humane interface design]]></category>
		<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[managing data]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/07/02/humane-design/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F07%2F02%2Fhumane-design%2F", "style": "big", "title": "Humane Interface Design Philosophy - 7 Tips" }); There are at least 7 ideals to keep in mind when designing a user interface. Shmula tells us about them. In his article on humane interface design, shmula lists and describes seven ideals. After a long day of travel, I don&#8217;t [...]]]></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%252F02%252Fhumane-design%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Humane%20Interface%20Design%20Philosophy%20-%207%20Tips%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F07%2F02%2Fhumane-design%2F", "style": "big", "title": "Humane Interface Design Philosophy - 7 Tips" });</script></div>
<p><img title="thanks" alt="thanks" src="http://sehlhorst.smugmug.com/photos/168991479-M.jpg" /></p>
<p>There are at least 7 ideals to keep in mind when designing a user interface.  Shmula tells us about them.</p>
<p><span id="more-532"></span>In his article on <a title="humane interface design" href="http://www.shmula.com/408/humane-interface-ask-aza-raskin-anything">humane interface design</a>, shmula lists and describes seven ideals.  After a long day of travel, I don&#8217;t have anything to add, so we&#8217;re just going to suggest you read his article.  Here are the seven ideals that are covered in more depth:</p>
<ol>
<li>It&#8217;s not your fault.</li>
<li>Simple things should stay simple.</li>
<li>Fewer choices mean fewer worries.</li>
<li>Your data is sacred.</li>
<li>Your train of thought is sacred.</li>
<li>Good interfaces create good habits.</li>
<li>Modes cause misery.</li>
</ol>
<p>Check it out.</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+Humane+Interface+Design+Philosophy+%E2%80%93+7+Tips+http%3A%2F%2Fbit.ly%2Fepa7ev+" 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/02/humane-design/&amp;t=Humane+Interface+Design+Philosophy+%E2%80%93+7+Tips" 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/02/humane-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

