<?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; Interaction design</title>
	<atom:link href="http://tynerblain.com/blog/category/software-development/hci/interaction-design/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>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>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>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>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>Nexus &#8211; Drag and Drop</title>
		<link>http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/</link>
		<comments>http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/#comments</comments>
		<pubDate>Thu, 31 May 2007 04:16:50 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[design ideas]]></category>
		<category><![CDATA[drag and drop affordance]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[nexus]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/05/30/nexus-drag-and-drop/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F30%2Fnexus-drag-and-drop%2F", "style": "big", "title": "Nexus - Drag and Drop" }); Implementation continues on nexus, and we&#8217;ve re-factored the way that items in a bundle are ordered, as mentioned in our earlier post. We talk a little about affordance, and show a couple screen shots. Drag and Drop Affordances An affordance, to oversimplify, is [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F05%252F30%252Fnexus-drag-and-drop%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Nexus%20-%20Drag%20and%20Drop%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F05%2F30%2Fnexus-drag-and-drop%2F", "style": "big", "title": "Nexus - Drag and Drop" });</script></div>
<p><img title="drag" alt="drag" src="http://sehlhorst.smugmug.com/photos/157993584-M.jpg" /><img title="drop" alt="drop" src="http://sehlhorst.smugmug.com/photos/157993625-M.jpg" /></p>
<p>Implementation continues on nexus, and we&#8217;ve re-factored the way that <a title="more progress on nexus" href="http://tynerblain.com/blog/2007/05/29/nexus-more-progress/">items in a bundle are ordered</a>, as mentioned in our earlier post.  We talk a little about affordance, and show a couple screen shots.</p>
<p><span id="more-507"></span></p>
<h2>Drag and Drop Affordances</h2>
<p>An affordance, to oversimplify, is an appearance of an object that causes users to intuitively know how to interact with it.  We found a couple good articles on this challenge and posted them to <a title="nexus main page" href="http://tynerblain.com/nexus/">nexus</a>.</p>
<p>Drag and drop user interface elements are becoming more common on the web.  The challenge is that many implementations do not make it obvious to users that the elements can be dragged and dropped.  In the best case, users are missing out on powerful functionality.  In the worst case, the user interface is frustratingly unusable.  Here are the nexus links for the two articles we liked.  Please read them, rate them, and comment on them.</p>
<ul>
<li><a title="drag and drop controls" href="http://tynerblain.com/nexus/article/show/29-drag-and-drop-controls">Drag and Drop Controls</a></li>
<li><a title="Drag and drop article" href="http://tynerblain.com/nexus/article/show/28-drag-n-drop-is-invisible">Drag &#8216;n Drop is Invisible to Users</a></li>
</ul>
<h2>Nexus Design Choices</h2>
<p>The design decisions that we came away with from reading these articles were</p>
<ol>
<li>Include a text explanation like &#8220;drag to re-order&#8221; so that people would know that it was an option.</li>
<li>Create an image that conveys the ability to drag to re-order the items.</li>
</ol>
<p>Here are the screen shots of what we came up with for our first usable iteration on the task of re-ordering items in a bundle:</p>
<p>1. Two items, in order.</p>
<p><img title="before" alt="before" src="http://sehlhorst.smugmug.com/photos/157996582-M.jpg" /></p>
<p>2. Dragging one of the items to re-order them.</p>
<p><img title="during" alt="during" src="http://sehlhorst.smugmug.com/photos/157996593-M.jpg" /></p>
<p>3. The two items, in the new order.</p>
<p><img title="after" alt="after" src="http://sehlhorst.smugmug.com/photos/157996605-M.jpg" /></p>
<p>The design element we created is a double-headed arrow, with some cross-bar lines that give it a tactile feel.  When you drag one element past another, the second element moves into the space previously occupied by the first element.  Screenshots don&#8217;t do it justice.  It is really cool.  Effectiveness will be determined by you &#8211; but I believe it will work.</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+Nexus+%E2%80%93+Drag+and+Drop+http%3A%2F%2Fbit.ly%2Ff6MFdD+" 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/05/30/nexus-drag-and-drop/&amp;t=Nexus+%E2%80%93+Drag+and+Drop" 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/05/30/nexus-drag-and-drop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>APR: Persona Development</title>
		<link>http://tynerblain.com/blog/2007/04/23/apr-persona/</link>
		<comments>http://tynerblain.com/blog/2007/04/23/apr-persona/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 21:26:53 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[agile case study]]></category>
		<category><![CDATA[agile project]]></category>
		<category><![CDATA[agile requirements management]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[persona]]></category>
		<category><![CDATA[persona development]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/23/apr-persona/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F04%2F23%2Fapr-persona%2F", "style": "big", "title": "APR: Persona Development" }); The last step in our agile software development project was documenting our understanding of our users. In this article, we will define the personas that we will use to guide our design and requirement development. This definition of personas is built by combining our experiences [...]]]></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%252F04%252F23%252Fapr-persona%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Persona%20Development%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F04%2F23%2Fapr-persona%2F", "style": "big", "title": "APR: Persona Development" });</script></div>
<p><img alt="Creating Personas" title="Creating Personas" src="http://sehlhorst.smugmug.com/photos/60909981-M.jpg" /></p>
<p>The last step in our agile software development project was documenting our understanding of our users.  In this article, we will <a title="How To Create Personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">define the personas</a> that we will use to guide our design and requirement development.  This definition of personas is built by combining our experiences in consulting, product and program management, and business analysis.</p>
<p>A couple other good articles on how to create personas:</p>
<ul>
<li>Leisa at disambiguity on the <a title="Why You Should be Using Personas" href="http://www.disambiguity.com/yes-you-should-be-using-personas/">merits of creating personas</a>.</li>
<li><a title="Persona Creation" href="http://www.evolt.org/article/Practical_Persona_Creation/4090/56111/index.html">Practical persona creation</a> at evolt.org.</li>
</ul>
<p>In this article we define our primary, secondary, and supplemental user personas.</p>
<p><span id="more-470"></span></p>
<p>One of the main benefits of developing personas is that we avoid the &#8220;elastic user&#8221;, where we map characteristics to &#8220;the users&#8221; at our convenience.  The risk of the elastic user is that we design part of the interface for an expert, and part of it for a beginner &#8211; all the while calling them &#8220;the user.&#8221;  By defining personas, we can make sure that a particular design is well suited to an archetypical user, not an amalgam of ill-defined users.</p>
<h2>Primary Persona: Jill The Business Analyst</h2>
<p><img alt="Jill" title="Jill" src="http://sehlhorst.smugmug.com/photos/146277379-M.jpg" /></p>
<p>Jill just got promoted to senior analyst at her firm.  She&#8217;s on the road 4 or 5 days a week working with clients, and doesn&#8217;t have time to read a book in order to get one or two new ideas she can use.  Her Blackberry is a lifeline to the people at her company &#8211; the reason she went there anyway is for the great people, and now she&#8217;s on the road working with clients all the time.</p>
<p>Jill is 28, lives in an apartment, her car lives at the airport, and she&#8217;s looking for the day when she can make partner and cut her travel down to every other week.  She knows she has to grow the scope of her role to step up to the next level, and she&#8217;s focused on doing exactly that.</p>
<h2>Secondary Persona: Paul The Product Manager</h2>
<p><img alt="jim" title="jim" src="http://sehlhorst.smugmug.com/photos/146277389-M.jpg" /></p>
<p>Paul is 43 years old and is one of 5 product managers at his company, and has half a dozen books scattered around his home in various stages of completion.  He drives a hybrid Escape because he wants to help push environmentalism, but needs the utility of a larger car for taking his twins to soccer games. Paul is always looking for ways to make his company&#8217;s products better, and whenever he finds a new idea, the first thing he does is share it with the rest of his team.</p>
<p>Paul&#8217;s iPod playlist reads like the top-10 songs from Billboard in every genre &#8211; he doesn&#8217;t care what type of music it is, as long as it is best of breed.  He buys blank CDs in bulk and is constantly burning mix-discs for his friends to help them stay on top of &#8220;the best&#8221; music.</p>
<h2>Secondary Persona: Brian The Blogger</h2>
<p><img alt="john" title="john" src="http://sehlhorst.smugmug.com/photos/146277395-M.jpg" /></p>
<p>Brian had always been a little bit counter-culture, and was regularly frustrated with how his team was forced to run their development projects.  He went to an Agile conference when it happened in his city, and began researching agile processes.  He convinced his project and eventually his department to convert to agile approaches and he loves how it has changed his work environment, and his team&#8217;s success.</p>
<p>It is important to Brian that other people benefit from what he&#8217;s experienced, and he started a blog as a means to spread the word.  He also uses the blog to foster communication with other people that push him forward in agile practices, which he then rolls back into his job.  At 26, John is a big open-source advocate and contributes to a project that is building open source publishing packages.  His blog also serves as one of the deployments of that package, allowing him to combine his efforts and passions so that he gets the most results from his efforts.</p>
<h2>Supplemental Persona: Ellen The Program Manager</h2>
<p><img alt="ellen" title="ellen" src="http://sehlhorst.smugmug.com/photos/146277237-M.jpg" /></p>
<p>Ellen built her career as a project manager outside of IT in a large corporation, and loved helping her teams deliver great solutions.  But she wasn&#8217;t enjoying the high percentage of time she spent asking people &#8220;how much longer?&#8221; and &#8220;if we change this, what will happen?&#8221;  What Ellen thrived on was seeing how all the parts worked together, and knowing when something didn&#8217;t matter.  She just moved, at 36, into a new role as a program manager on a team in IT, and now she gets to spend most of her time &#8220;doing valuable stuff.&#8221;</p>
<p>Ellen loves that she&#8217;s leveraging her big-picture understanding in her daily work.  But she&#8217;s scrambling to get up to speed on the tools of the trade.  There&#8217;s so much to learn.  Ellen realizes that if the IT team can&#8217;t deliver well, their jobs will be outsourced (and she&#8217;s acutely aware of the negative perception IT has in the rest of the company).  Ellen goes to lunch with the co-workers from previous departments (who her co-workers now call &#8220;the users&#8221;), because those folks are more real than her IT cohorts.  This helps her stay &#8220;tapped in&#8221; to what people are actually trying to do &#8211; and when she needs to know something, she just calls a buddy and ask.  Her great network is ready to be leveraged, as soon as she learns how.</p>
<h2>Who Are You?</h2>
<p>In an earlier post, the question was asked &#8211; who are the readers of Tyner Blain (presumed to be representative of the users of this new site)?  In the poll below, please select which persona (if any) you feel helps to identify you.  It may not be any of them, or it may be a combination of all of them.  If you have a different approach or set of goals that aren&#8217;t covered above, please tell us about how you would approach a ratings site.</p>
<p>[poll=5]</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+APR%3A+Persona+Development+http%3A%2F%2Ftynerblain.com%2Fblog%2F%3Fp%3D470+" 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/04/23/apr-persona/&amp;t=APR%3A+Persona+Development" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/04/23/apr-persona/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>APR: Understanding Our Users</title>
		<link>http://tynerblain.com/blog/2007/04/19/apr-understanding-users/</link>
		<comments>http://tynerblain.com/blog/2007/04/19/apr-understanding-users/#comments</comments>
		<pubDate>Fri, 20 Apr 2007 02:00:07 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Project: Ratings]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[managing data]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/04/19/apr-understanding-users/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F04%2F19%2Fapr-understanding-users%2F", "style": "big", "title": "APR: Understanding Our Users" }); Continuing the articles in our agile project case study. The next step in our agile requirements management process is to develop an understanding of our target users. We believe a user-centric design approach is important. The user interface should conform to the way our [...]]]></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%252F04%252F19%252Fapr-understanding-users%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22APR%3A%20Understanding%20Our%20Users%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F04%2F19%2Fapr-understanding-users%2F", "style": "big", "title": "APR: Understanding Our Users" });</script></div>
<p><img alt="Standing meeting" title="Standing meeting" src="http://sehlhorst.smugmug.com/photos/145083958-M.jpg" /></p>
<p>Continuing the articles in our <a title="agile software development case study" href="http://tynerblain.com/blog/2007/04/17/agile-software-development-experiment/">agile project case study</a>.</p>
<p>The next step in our agile requirements management process is to develop an understanding of our target users.  We believe a user-centric design approach is important.  The user interface should conform to the way our users think about what they are doing and trying to accomplish.  We should minimize the amount that we force our users to think like our software, and maximize the amount that we should force our software to work the way people want it to.</p>
<p>In this article we document some of the thoughts around who are target users are, and how we think about finding patterns in the way that they would approach using our product.  This is a micro-example of market definition / segmentation.  We&#8217;re looking for patterns that provide interesting commonalities.  We&#8217;ll use this as a foundation for developing personas.</p>
<p><span id="more-467"></span>Starting with the classical breakdown of users&#8230;</p>
<h2>Beginning, Intermediate, and Expert Users</h2>
<p>This is the canonical breakdown of users &#8211; classification by level of experience with the product.  We&#8217;ve written before about <a title="Designing for Competent Users" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">designing for competent users</a>.  And we also wrote an article focused on the need to help people bridge the <a title="User Centered Design by User Experience Level" href="http://tynerblain.com/blog/2007/02/22/user-centered-design-bridge/">canyon of pain from beginner to expert user</a>.</p>
<p>All users of our site will start out as beginning users.  And when the site first launches, all of our users will be beginners (except maybe some beta testers).<br />
<img title="beggining user" alt="beggining user" src="http://sehlhorst.smugmug.com/photos/62702460-M.jpg" /></p>
<p>But none of them will stay beginners for long.  They will either quickly become intermediate users, or they will stop using the site.  Some people will also become expert users.  But most of them will stay perpetual intermediates (as Alan Cooper calls them).</p>
<h2>Domain Expertise as a Differentiator</h2>
<p>We have another interesting dynamic with the site.  All users will either be looking for, or promoting articles.  Any given exercise will generally be in one of the topics we&#8217;ve identified in our <a title="Agile Project Scope Document" href="http://tynerblain.com/blog/2007/04/18/apr-scope-and-vision/">scope document</a>.  A user can be an expert business analyst and be a beginner in interaction design.  Or she can be a skilled product manager who is exploring business process modeling for the first time.  Someone might have written hundreds of use cases, but be new to using UML to describe processes.</p>
<p>So we have an odd situation &#8211; people can be both experts and beginners at the same time.  Everyone has a different pattern of domain expertise.  Someone could understand market analysis techniques far better than go-to-market strategies.  But in terms of a single set of interactions with the site, the user will be exhibiting <em>one of</em> their domain expertise levels.</p>
<p>So, any given interaction will have some combination : New User / Domain Expert, Intermediate User / Domain Proficient, etc.  I don&#8217;t believe that domain expertise will affect how we design interactions for someone &#8211; it will only affect what the user wants to do.</p>
<h2>User Needs: Initial Thoughts</h2>
<p>As a first pass or pre-amble to developing user personas, here are some general ideas about articles that someone would want to find in a particular area as a function of their domain expertise in the area.  The lists are numbered not to show relative importance, but to make it easier for people to refer to them individually in the discussion of this article.</p>
<p><strong>Beginner</strong></p>
<ol>
<li>Find an overview of the area, to understand if it is worth exploring, or to help put the ideas in perspective with what the user already knows.</li>
<li>Find tutorials on how to do specific things, like &#8220;how to write a use case&#8221; or &#8220;how to faciliate a JAD session.&#8221;</li>
<li>Look for suggestions and reviews of tools that might help them to do work in the space.</li>
<li>Participate in discussions on good articles.</li>
</ol>
<p><strong>Proficient</strong></p>
<ol>
<li>Look for reviews of tools that might help them to do work in the space.</li>
<li>Read detailed articles that will serve as refreshers on how to do something, or improve their depth of understanding in a narrow area, like &#8220;estimating projects with use case points&#8221;</li>
<li>Share articles that would help beginners get up to speed &#8211; this is the bootstrap approach (you&#8217;ve learned it recently, you&#8217;re better positioned than an expert to help someone else learn it).</li>
<li>Share articles that are good additions to the toobox in a domain for other proficient users.</li>
<li>Participate in discussions on good articles.</li>
</ol>
<p><strong>Expert</strong></p>
<ol>
<li>Look for thought-leadership articles that combine or extend ideas in novel ways, like &#8220;goal driven documentation&#8221; or &#8220;combining interaction design and structured requirements&#8221; or &#8220;combining pairwise testing with use case scenario analysis.&#8221;</li>
<li>Promote articles that you have published elsewhere for community review.</li>
<li>Share articles with beginners and proficient users that you know to be very good &#8211; this is the &#8216;stamp of approval&#8217; model.</li>
<li>Participate in discussions on good articles.</li>
<li>Create tutorials / lists / links that combine multiple good articles into informal &#8220;learning packets&#8221; that mix the best content from multiple authors on a single topic.</li>
</ol>
<h2>How You Can Help</h2>
<p>Care to validate, refute or extend any of the lists above?   Or suggest better ways to look for patterns in behavior or to organize users?</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+APR%3A+Understanding+Our+Users+http%3A%2F%2Fbit.ly%2FevvQFF+" 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/04/19/apr-understanding-users/&amp;t=APR%3A+Understanding+Our+Users" 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/04/19/apr-understanding-users/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Overdoing Personas</title>
		<link>http://tynerblain.com/blog/2006/12/14/overdoing-personas/</link>
		<comments>http://tynerblain.com/blog/2006/12/14/overdoing-personas/#comments</comments>
		<pubDate>Fri, 15 Dec 2006 04:00:34 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[driving development with personas]]></category>
		<category><![CDATA[gdd]]></category>
		<category><![CDATA[goal-driven development]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[persona]]></category>
		<category><![CDATA[personas]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/12/14/overdoing-personas/</guid>
		<description><![CDATA[Its easy for us to overdo almost anything.  Kim Goodwin offers some good advice about how not to overdo it when using personas as part of our software development process.]]></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%252F2006%252F12%252F14%252Foverdoing-personas%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Overdoing%20Personas%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F12%2F14%2Foverdoing-personas%2F", "style": "big", "title": "Overdoing Personas" });</script></div>
<p><img alt="people on needle" title="people on needle" src="http://sehlhorst.smugmug.com/photos/116752017-M.jpg" /></p>
<p>Its easy for us to overdo almost anything.  Kim Goodwin offers some good advice about how not to overdo it when using personas as part of our software development process.  Hat <a title="pragmatics link" href="http://www.pragmaticmarketing.com/Blogs/2006/12/taking-personas-too-far.asp">tip to Steve</a>.<br />
<strong>Personas</strong></p>
<p>Personas are the representation of archetypical users of our software.  They are used as a component in an <a title="overview of interaction design" href="http://tynerblain.com/blog/2006/03/21/interaction-design-process-overview/">interaction design approach</a> to developing software.  Start with our earlier article <a title="using personas for gdd" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/"><em>How To Create Personas for Goal-Driven Development</em></a>.</p>
<p>Then check out Kim&#8217;s article about <a title="taking personas too far" href="http://www.cooper.com/content/insights/newsletters/2006_Issue33/Taking_personas_too_far.asp">how to not overdo it</a> (and good practical advice about what is important).</p>
<p>Thanks Kim for the great advice.</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+Overdoing+Personas+http%3A%2F%2Fbit.ly%2FgKjkhF+" 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/2006/12/14/overdoing-personas/&amp;t=Overdoing+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/2006/12/14/overdoing-personas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Actor Hierarchies And Then Some</title>
		<link>http://tynerblain.com/blog/2006/12/13/actor-hierarchies/</link>
		<comments>http://tynerblain.com/blog/2006/12/13/actor-hierarchies/#comments</comments>
		<pubDate>Thu, 14 Dec 2006 04:01:29 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[actor hierarchies]]></category>
		<category><![CDATA[actor hierarchy]]></category>
		<category><![CDATA[actor hierarchy model]]></category>
		<category><![CDATA[actor map]]></category>
		<category><![CDATA[actor model]]></category>
		<category><![CDATA[actor table]]></category>
		<category><![CDATA[evolving use cases]]></category>
		<category><![CDATA[ID]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[personas]]></category>
		<category><![CDATA[use cases]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/12/13/actor-hierarchies/</guid>
		<description><![CDATA[Actor Hierarchies give us an overview of the people who will interact with the system.  We can extend this model to provide a visual indication of how use cases are distributed through the organization.  Further, we can leverage a hierarchy to show how use cases are rolled out to the users - a targeted communication for our stakeholders.]]></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%252F2006%252F12%252F13%252Factor-hierarchies%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Actor%20Hierarchies%20And%20Then%20Some%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F12%2F13%2Factor-hierarchies%2F", "style": "big", "title": "Actor Hierarchies And Then Some" });</script></div>
<p><img alt="actor hierarchy" title="actor hierarchy" src="http://sehlhorst.smugmug.com/photos/116706205-M.png" /></p>
<p>Actor Hierarchies give us an overview of the people who will interact with the system.  We can extend this model to provide a visual indication of how use cases are distributed through the organization.  Further, we can leverage a hierarchy to show how use cases are rolled out to the users &#8211; a <em>targeted</em> communication for our stakeholders.</p>
<p><strong>Actor Hierarchy</strong></p>
<p>A hierarchy is a model for representing the classification of things.  The example we probably all learned first is the hierarchy of phylums, used to classify animals (dogs are a kind of canine, which is a kind of mammal, which is a kind of animal).</p>
<p>The hierarchy is a presentation of classification.  Imagine that we were developing a GPS system for after-market addition to cars.  As part of determining the requirements for our product we would want to identify the users of our product.  In <a title="Use Case Series: Formal Use Cases" href="http://tynerblain.com/blog/2005/12/20/use-case-series-formal-use-case/">use cases</a>, these users are the <em>actors</em>.  We might identify casual drivers, taxi drivers, and couriers as  the potential users of our product.  What we need to do is organize these users in a logical way.  We can use a hierarchy to do this.</p>
<p><img title="car and driver hierarchy" alt="car and driver hierarchy" src="http://sehlhorst.smugmug.com/photos/116713253-M.png" /></p>
<p>All of the <em>actors</em> in the above diagram are &#8220;Car Drivers.&#8221;  Some are casual drivers, and others are professional drivers.  There are also taxi drivers and couriers, both of whom are types of professional driver.</p>
<p>If we&#8217;re using <a title="Interaction Design Overview" href="http://tynerblain.com/blog/2006/03/21/interaction-design-process-overview/">interaction design</a>, we can build a similar hierarchy for our <a title="Creating Personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">personas</a>.</p>
<p><strong>Mapping Use Cases To Users</strong></p>
<p>We can create a simple table that shows how our targeted use cases map to our users.  We can present the information in our table so that the hierarchy is evident.  The pretty pictures above are cool and all, but harder to put in a table</p>
<blockquote><p><img alt="actors and use cases" title="actors and use cases" src="http://sehlhorst.smugmug.com/photos/49195704-M.jpg" /></p>
<p><cite><a title="delivery scheduling" href="http://tynerblain.com/blog/2005/12/22/communicating-a-delivery-schedule-with-use-cases/">Communicating A Delivery Schedule With Use Cases</a></cite></p></blockquote>
<p>The top of the hierarchy is <em>Actors</em>, branching into sales and accounting as two types of actors.  With sales, we have a salesperson and a regional manager.  Each column represents an actor, and the groupings of columns give us the hierarchy.</p>
<p>Each row represents a use case.  We could put &#8220;X&#8221;s in each cell to represent which user can do each activity.  We get more value from our document by populating each cell with the release-information for each use case (see the cited <a title="Scheduling by use case" href="http://tynerblain.com/blog/2005/12/22/communicating-a-delivery-schedule-with-use-cases/">article on scheduling releases</a> for details).</p>
<p><strong>Evolving Use Cases</strong></p>
<p>Yesterday we presented the concept of <a title="Evolving Use Cases" href="http://tynerblain.com/blog/2006/12/12/incremental-delivery-and-use-cases/"><em>evolving</em> use cases</a>.  We can use this approach to make communication of this evolution even more effective.</p>
<p>Imagine that we were evolving the <em>Review Regional Orders</em> use case to have an initial version in the Q2 release, and a second version in the Q3 release.  In the first (Q2) release (of the functionality that enables the use case), we have all of the features needed by the regional manager.  In the second (Q3) release, we add the functionality needed for corporate accounting to use the use case.  The diagram above <em>sort-of</em> implies this &#8211; but it could be much more effective.</p>
<p>Our chart would look like the following:</p>
<p><img alt="evolving use case chart" title="evolving use case chart" src="http://sehlhorst.smugmug.com/photos/116722127-M.jpg" /></p>
<p>The highlighted region shows that we are going to manage two different versions of the <em>Review Regional Orders</em> use case.  Version 1 is released in Q2, and version 2 is released in Q3.</p>
<p><strong>Summary</strong></p>
<p>Actor hierarchies allow us to organize our use cases and understand how our users interact with the product.  We can combine this documentation model with the concept of evolving use cases to provide powerful communication.</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+Actor+Hierarchies+And+Then+Some+http%3A%2F%2Fbit.ly%2FfK3lds+" 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/2006/12/13/actor-hierarchies/&amp;t=Actor+Hierarchies+And+Then+Some" 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/2006/12/13/actor-hierarchies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fifteen Ways to Shut Down</title>
		<link>http://tynerblain.com/blog/2006/11/23/fifteen-ways-to-shut-down/</link>
		<comments>http://tynerblain.com/blog/2006/11/23/fifteen-ways-to-shut-down/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 02:58:08 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software requirements specification]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[featuritis]]></category>
		<category><![CDATA[ID]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[shutdown]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows vista]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/11/23/fifteen-ways-to-shut-down/</guid>
		<description><![CDATA[There are 15 ways for someone to shutdown a laptop running Windows Vista.  This adds unwarranted complexity to our software.  How can we avoid the same problem in our software?]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2006%252F11%252F23%252Ffifteen-ways-to-shut-down%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Fifteen%20Ways%20to%20Shut%20Down%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F11%2F23%2Ffifteen-ways-to-shut-down%2F", "style": "big", "title": "Fifteen Ways to Shut Down" });</script></div>
<p><img title="shutdown" alt="shutdown" src="http://sehlhorst.smugmug.com/photos/112338150-M.jpg" /></p>
<p>[Updated Below] There are 15 ways for someone to shutdown a laptop running Windows Vista.  This adds unwarranted complexity to our software.  How can we avoid the same problem in our software?</p>
<p><strong>Hat Tip</strong></p>
<p>Joel (on Software) has an <a title="choice = headache" href="http://www.joelonsoftware.com/items/2006/11/21.html">article where he lambastes</a> the Vista team for providing 9 different ways to <em>stop using</em> the computer.  Add in the hardware options on the laptop (like Fn F3), and closing the screen down or hitting the physical power button, and you get to 15 different ways to shut down.</p>
<blockquote><p>Inevitably, you are going to think of a long list of intelligent, defensible reasons why each of these options is absolutely, positively essential. Don&#8217;t bother. I know. Each additional choice makes complete sense until you find yourself explaining to your uncle that he has to choose between 15 different ways to turn off a laptop.</p>
<p><cite>Joel Spolsky</cite></p></blockquote>
<p><strong>Make <strike>Everybody</strike> Nobody Happy</strong></p>
<p>Joel posits that the unreasonable number has grown out of the desire to make everybody happy.  We know that <a title="Products with too many features" href="http://tynerblain.com/blog/2006/04/14/goldilocks-and-the-three-products/"><em>too many features</em></a> makes everyone unhappy.  This bloated list of choices is just one manifestation of too-many-features, and it doesn&#8217;t make anyone happy.</p>
<p><strong>Inadvertantly Causing The Problem</strong></p>
<p>It is pretty easy to imagine how we might inadvertantly cause this problem.</p>
<p>A <a title="Foundation Series on Structured Requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">structured requirements</a> approach allows us to track and manage different requirements, as well as the implementation of those requirements.  In Joel&#8217;s example, imagine requirements like the following:</p>
<ul>
<li>User secure the computer in order to walk away from it without other people getting access.</li>
<li>User can shut down the computer such that it will stop consuming power.</li>
<li>The computer will support rapid switching from one user to another.</li>
</ul>
<p>Each requirement could drive an independent solution approach.  As Joel points out, each requirement, evaluated in isolation, may lead to a different solution.  The problem is that we are finding <em>local optima</em>, and not looking at the problems introduced by the complexity of supporting all of these solutions.</p>
<p><strong>Avoiding This Problem</strong></p>
<p>How can we avoid this sort of problem in our own product development?  A holistic view of the proposed solution is required to assess if there are too many features.  <a title="prioritizing" href="http://tynerblain.com/blog/2006/02/17/prioritizing-software-requirements-am-i-hot-or-not/">Prioritization</a> of those features will help us reduce the number to a reasonable level.</p>
<p>Incorporating elements of <a title="ID overview" href="http://tynerblain.com/blog/2006/03/21/interaction-design-process-overview/">interaction design</a> into our solution approach may be the best way to do this (short of abandoning a structured requirements approach).</p>
<p><img title="ID and Structure" alt="ID and Structure" src="http://sehlhorst.smugmug.com/photos/61228367-O.png" /></p>
<p>Each of the <em>shutdown scenarios</em> leads to a functional requirement.  Each element of program design leads to one of the many ways to shut down or lock or restart the computer.  Addressing the personal goals of each <a title="creating personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">persona</a> provides us with a cross-feature, holistic perspective.  If our target audience includes Joel&#8217;s uncle, then we can make sure that our design approach accounts for the appropriate level of complexity and choice.</p>
<p><strong>[Update]</strong></p>
<p>Moishe Lettvin, one of the developers on <em>the shutdown team</em> for Vista, formerly at Microsoft, has written an article about the organizational and situational challenges faced by the team.  He titled the article <a title="Windows Shutdown" href="http://www.drizzle.com/~lettvin/2006/11/windows-shutdown-crapfest.html"><em>The Windows Shutdown Crapfest</em></a>.  That should give you a feel for how the now-Googler feels about the experience.  There were 43 people involved, and they spent over a year.  And the source code control system was frightening.  Check out the comment thread on Moishe&#8217;s article too &#8211; it includes comments from other Microsoft and knowledgable anonymous people.  Hat Tip to <a title="Underrated" href="http://scobleizer.com/2006/11/26/vista-underrated/">Scoble</a>.  Also, a <a title="followup" href="http://www.drizzle.com/~lettvin/2006/11/brief-followup-to-yesterdays-post.html">followup</a> from Moishe.<br />
<strong>Summary</strong></p>
<p>Multiple requirements can lead to multiple, locally-optimized solutions or features.  A holistic view needs to be taken to assure that we aren&#8217;t introducing too much complexity with these variations of similar features.  Interaction design gives us a big-picture perspective to make sure we aren&#8217;t making our software too hard for our target users to use.</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+Fifteen+Ways+to+Shut+Down+http%3A%2F%2Fbit.ly%2Ffd4nCi+" 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/2006/11/23/fifteen-ways-to-shut-down/&amp;t=Fifteen+Ways+to+Shut+Down" 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/2006/11/23/fifteen-ways-to-shut-down/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Gathering Implicit Requirements</title>
		<link>http://tynerblain.com/blog/2006/11/17/gathering-implicit-requirements/</link>
		<comments>http://tynerblain.com/blog/2006/11/17/gathering-implicit-requirements/#comments</comments>
		<pubDate>Sat, 18 Nov 2006 05:01:16 +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[Requirements gathering]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[gathering implicit requirements]]></category>
		<category><![CDATA[gathering requirements]]></category>
		<category><![CDATA[ID]]></category>
		<category><![CDATA[implicit requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements and design]]></category>
		<category><![CDATA[requirements elicitation]]></category>
		<category><![CDATA[software requirements gathering]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/11/17/gathering-implicit-requirements/</guid>
		<description><![CDATA[Johanna Rothman just wrote an article titled Implicit Requirements are Still Requirements.  She points out that her expectations were not met, even though her needs might have been.  Johanna also implicitly begs the question - how do we gather implicit requirement?]]></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%252F2006%252F11%252F17%252Fgathering-implicit-requirements%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Gathering%20Implicit%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F11%2F17%2Fgathering-implicit-requirements%2F", "style": "big", "title": "Gathering Implicit Requirements" });</script></div>
<p><img alt="magic hat" title="magic hat" src="http://sehlhorst.smugmug.com/photos/111066589-M.gif" /></p>
<p>Johanna Rothman just wrote an article titled <em>Implicit Requirements are Still Requirements</em>.  She points out that her expectations were not met, even though her needs might have been.  Johanna also <em>implicitly</em> begs the question &#8211; how do we gather <em>implicit</em> requirements?<br />
<strong>Johanna&#8217;s Experience</strong></p>
<p>Johanna <a title="Implicit Requirements" href="http://www.jrothman.com/weblog/2006/11/implicit-requirements-are-still.html">describes the process</a> of installing updated drivers for an all-in-one scanner/fax/printer.  The installation process did not live up to her expectations.  It took too long, caused additional inconveniences for her, and when she was done, the user interface was inconsistent with her other applications.  In short, her expectations, her <em>implicit</em> requirements, were not satisfied.</p>
<p><strong>How Could This Happen?</strong></p>
<p>When we <a title="Three prioritization techniques" href="http://tynerblain.com/blog/2006/01/18/prioritizing-requirements-three-techniques/">prioritize the requirements</a> for, and creation of a new product, we focus our effort on the most important elements.  We may even exclude everything but the <a title="Prioritizing Software Requirements" href="http://tynerblain.com/blog/2006/02/17/prioritizing-software-requirements-am-i-hot-or-not/">most important requirements</a>.  We spend time and money on those things that create the most value for our customers (or at least maximize our sales).</p>
<p>Even with a <a title="Prioritizing with Kano Analysis" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">Kano Analysis driven prioritization</a> approach, we start with <em>must-be</em> requirements, then <em>surprise-and-delight</em>, and eventually <em>more-is-better</em> requirements.  We may never get to &#8220;implicit requirements.&#8221;  Even if we have the time to get to them &#8211; we may not have identified them.</p>
<p>This could have been avoided, and we don&#8217;t need a magic wand to identify implicit requirements.</p>
<p><strong>Interaction Design Will Help</strong></p>
<p>An approach to software development that uses<a title="Interaction Design overview" href="http://tynerblain.com/blog/2006/03/21/interaction-design-process-overview/"> interaction design</a> is much more likely to identify <em>implicit</em> requirements.  Like <a title="Foundation Series on UX" href="http://tynerblain.com/blog/2006/03/03/foundation-series-user-experience-disciplines/">user experience disciplines</a> (UX), interaction design focuses on the users.  The interaction design approach starts with identifying the typical users, represented as personas, and documents and <a title="Prioritizing personal goals" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">prioritizes their personal goals</a>.  This user-centric approach would probably identify the personal goals that would guide software designers to prioritize a consistent interface and pain-free installation.  This approach is a powerful way to <a title="Great design" href="http://tynerblain.com/blog/2006/11/15/how-to-not-suck-at-design/">design products that don&#8217;t suck</a>.</p>
<p>We could also use an approach that <a title="Combining ID and Requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">melds interaction design with traditional requirements</a> approaches.</p>
<p><strong>Making Traditional Requirements Work</strong></p>
<p>The biggest challenge in addressing <em>implicit</em> requirements is identifying them.  Once we identify them, we can conciously prioritize them.  Prioritization is a function of <a title="Definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">ROI</a>, but ROI requires user adoption (or purchase).  Bad user experiences create bad marketing, prevent repeat business, and prevent future sales.  This is the mechanism by which we prioritie them, once we identify them.</p>
<p><strong>Eliciting Implicit Requirements</strong></p>
<p>One way to identify these requirements is through observation.  By observing users of the product (or a competitor&#8217;s product), we can get a perspective on how users interact with the product.  This is also known as <a title="Ethnographic Research" href="http://cauvin.blogspot.com/2005/08/ethnography.html"><em>ethnographic research</em></a>.  We may still miss requirements &#8211; the competitor&#8217;s product may not push on the pain points that would fail to live up to expectations.  Or they may identify pain points in the competitive product that present opportunities for us.</p>
<p>We can combine this observation with the use of prototypes.  Prototypes can be used to <a title="Prototyping as a means of documenting requirements" href="http://tynerblain.com/blog/2006/01/31/irise-software-prototyping-tool/">document requirements</a>, and they can even be used as the first iteration of an incremental delivery.  More importantly, they can be used as a tool for gathering requirements.</p>
<p><strong>Prototypes Uncover Overlooked Implicit Requirements</strong></p>
<p>Prototypes simulate the product.  Interacting with the prototype simulates interactions with the product.  If we&#8217;ve done something wrong, or are about to do something wrong, a prototype will help us uncover it.   We need to get feedback from the users (or people who match our target personas) about how the prototype meets and fails to meet their expectations.  Other requirements gathering techniques can help us define the explicit requirements, and then interacting with the prototype will help us identify the implicit requirements.</p>
<p><strong>Conclusion</strong></p>
<p>Implicit requirements are real.  And we have ways to uncover them.  We can use interaction design as our approach.  Or we can use traditional requirements techniques, and elicit the implicit requirements through prototyping and observation.</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+Gathering+Implicit+Requirements+http%3A%2F%2Fbit.ly%2FdJuhAE+" 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/2006/11/17/gathering-implicit-requirements/&amp;t=Gathering+Implicit+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/2006/11/17/gathering-implicit-requirements/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How To Not Suck At Design</title>
		<link>http://tynerblain.com/blog/2006/11/15/how-to-not-suck-at-design/</link>
		<comments>http://tynerblain.com/blog/2006/11/15/how-to-not-suck-at-design/#comments</comments>
		<pubDate>Thu, 16 Nov 2006 03:19:38 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[featuritis]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[killer features]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[not suck at design]]></category>
		<category><![CDATA[suck at design]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/11/15/how-to-not-suck-at-design/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F11%2F15%2Fhow-to-not-suck-at-design%2F", "style": "big", "title": "How To Not Suck At Design" }); Michael Shrivathsan just wrote an article presenting five tips for creating products with great design. Michael&#8217;s List Start with the user interface. [Roger Cauvin adds, start with a working first iteration] Work closely with UI designers. Pay attention to details. Simpler is [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2006%252F11%252F15%252Fhow-to-not-suck-at-design%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22How%20To%20Not%20Suck%20At%20Design%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F11%2F15%2Fhow-to-not-suck-at-design%2F", "style": "big", "title": "How To Not Suck At Design" });</script></div>
<p><img alt="pacifier" title="pacifier" src="http://sehlhorst.smugmug.com/photos/110695439-M.jpg" /></p>
<p>Michael Shrivathsan just wrote an article presenting <a title="Five tips for great design" href="http://michael.hightechproductmanagement.com/2006/11/five_tips_for_creating_product.html">five tips for creating products with great design</a>.</p>
<p><strong>Michael&#8217;s List</strong></p>
<ol>
<li>Start with the user interface. [Roger Cauvin adds, <a title="Designing Great Products" href="http://cauvin.blogspot.com/2006/11/michael-on-ui-design-and-requirements.html">start with a working <em>first iteration</em></a>]</li>
<li>Work closely with UI designers.</li>
<li>Pay attention to details.</li>
<li>Simpler is better.</li>
<li>Be brave.</li>
</ol>
<p><strong>Our Thoughts</strong></p>
<p>User centric design is the core of UX and <a title="Interaction Design overview" href="http://tynerblain.com/blog/2006/03/21/interaction-design-process-overview/">interaction design</a>.  It is the most effective way to design something that is a pleasure to use.  As Michael points out, almost no one does it.  <a title="Beck and Cooper debate" href="http://tynerblain.com/blog/2006/03/07/interaction-design-explained-by-alan-cooper/">Kent Beck (founder of Extreme Programming) argues</a> with Alan Cooper that all the up-front design work to understand the users is wasting time that could be used to build something valuable.  Cooper argues that designing for the users is the most important thing.  They are both right.  There isn&#8217;t a black-and-white answer to that debate.</p>
<p>Simpler is the key to avoiding featuritis, where <a title="Getting the Right Number of Features" href="http://tynerblain.com/blog/2006/04/14/goldilocks-and-the-three-products/">too many features</a> actually make a poduct less effective.</p>
<p>Being brave.  Great point.  Great designs are product leaders.  Many politicians try and predict where the population will be (test polling, trial balloons, etc), and then try to get there first &#8211; so that it looks like leading.  Not very brave.  Michael&#8217;s examples of the iPod and GMail are good ones.  Both products demonstrate design departures from &#8220;everybody else.&#8221;</p>
<p><strong>Our Additions</strong></p>
<p>We would also add</p>
<ol>
<li><strong>Have Valuable Innovation</strong>.  <a title="Differentiation Vs Improvement" href="http://tynerblain.com/blog/2006/05/24/differentiation-vs-improvement/">Innovation for it&#8217;s own sake isn&#8217;t worth much</a>.  GMail uses tagging (instead of folders) because it is valuable.  Folders require every email to only be in &#8220;one place.&#8221;  Tags allow emails to be in more than one place.  That&#8217;s valuable innovation.  [Here are <a title="Top Ten Tips for Preventing Innovation" href="http://tynerblain.com/blog/2006/03/06/top-ten-tips-for-preventing-innovation/">ten tips for preventing innovation</a> too - one of the most-read posts at Tyner Blain]</li>
<li><strong>Focus On Killer Features</strong>.  Prioritization drives the identification of what is actually important.  <a title="Prioritize the Killer Features" href="http://tynerblain.com/blog/2006/02/17/prioritizing-software-requirements-am-i-hot-or-not/">Don&#8217;t do the other stuff</a>.  Combine this prioritization with <em>Simpler Is Better</em> to get the most bang for your buck.</li>
</ol>
<p><strong>Conclusion</strong></p>
<p>Great ideas from Michael.  Thanks!</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+How+To+Not+Suck+At+Design+http%3A%2F%2Fbit.ly%2FetzFp4+" 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/2006/11/15/how-to-not-suck-at-design/&amp;t=How+To+Not+Suck+At+Design" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/11/15/how-to-not-suck-at-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Apply Market Research Better</title>
		<link>http://tynerblain.com/blog/2006/11/01/how-to-apply-market-research-better/</link>
		<comments>http://tynerblain.com/blog/2006/11/01/how-to-apply-market-research-better/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 03:44:57 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[market segmentation]]></category>
		<category><![CDATA[persona]]></category>
		<category><![CDATA[trio]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/11/01/how-to-apply-market-research-better/</guid>
		<description><![CDATA[Mike Mace provides us with some great insight about market research - helping us to avoid 'the blender' and 'the gap'.  The gap is a reflection of the inability of most customers to innovate.  The blender is the loss of useful market information into a homogenized input that pushes only the lowest common denominator - again stifling innovation.  We have to avoid the blender and the gap to get useful data from our research.]]></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%252F2006%252F11%252F01%252Fhow-to-apply-market-research-better%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22How%20To%20Apply%20Market%20Research%20Better%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F11%2F01%2Fhow-to-apply-market-research-better%2F", "style": "big", "title": "How To Apply Market Research Better" });</script></div>
<p><img alt="survey" title="survey" src="http://sehlhorst.smugmug.com/photos/104940146-M.jpg" /></p>
<p>Mike Mace provides us with some <a title="market research essay" href="http://www.mikemace.com/stopflyingblind/archives/28">great insight about market research</a> &#8211; helping us to avoid <em>&#8216;the gap&#8217;</em> and <em>&#8216;the blender&#8217;</em>.  The gap is a reflection of the inability of most customers to innovate.  The blender is the loss of useful market information into a homogenized input that pushes only the lowest common denominator &#8211; again stifling innovation.  We have to avoid the blender and the gap to get useful data from our research.</p>
<p>We know we need to base our product decisions on data, not opinion.  How do we avoid the common pitfalls of misinterpreting the data.</p>
<p><img alt="gap in bridge" title="gap in bridge" src="http://sehlhorst.smugmug.com/photos/106191868-M.jpg" /></p>
<p><strong>The Gap</strong></p>
<p>The gap, simply put, is the <em>possibility</em> gap between a customer&#8217;s perspective on what <em>is</em> and a product vision of what <em>could be</em>.  Mike argues that customers are so focused on what is wrong with their product that they will respond with only incremental improvement suggestions.  We won&#8217;t find innovative new ideas by asking customers what they don&#8217;t like about their current products.  As a curmudgeon giving directions would say, &#8220;<em>You can&#8217;t get there from here.</em>&#8221;</p>
<p><img alt="blender" title="blender" src="http://sehlhorst.smugmug.com/photos/106190658-M.jpg" /></p>
<p><strong>The Blender</strong></p>
<p>When surveying a large group of people, such as all customers in the market for our product, the feedback that we will see is that the items that get the greatest response are the items that get a response from the most people.  The counter-intuitive notion is that these may be the least valuable features or capabilities.  These only represent those things that are at least mildly beneficial to the most people &#8211; a lowest common denominator.</p>
<p>Mike points to the fact that the most successful products aren&#8217;t the ones that have bland, somewhat useful, wide spread appeal.  They are the products that are loved by a minority.  He uses the Blackberry and Treo as great examples &#8211; the vast majority of cell phone users have no interest in the features they provide.  The minority that cares about email love both products &#8211; and both products succeed remarkably.<br />
<img alt="profiler" title="profiler" src="http://sehlhorst.smugmug.com/photos/78233337-M.jpg" /></p>
<p><strong>Avoiding The Blender</strong></p>
<p>To avoid the blender-phenomenon, we need to get a more precise classification of the audiences in our target markets.  Market segmentation is what we need to do.  Mike points out that this is generally applied, and easy to do, when discussing existing markets.  The SUV buyers, for example, were not a segment until after someone bought an SUV.  The luxury SUV buyers weren&#8217;t a segment until someone bought a luxury SUV.  So how do we define segments before segments exist?<br />
<strong>Personas</strong></p>
<p>By focusing on the creation of <a title="How to create personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/"><em>personas</em>, </a>we identify the personal goals that would provide useful segementation for a new market.  When reading Mike&#8217;s list of three groups of cell-phone users, we can see how persona identification would have led us to a similar conclusion (emphasis mine).</p>
<blockquote><p>When you do that with advanced phone buyers, three groups emerge. <strong>One group gives high ratings to all communication-related features</strong> — e-mail, instant messaging, built-in fax, etc. Basically, they’re communication junkies, and they’ll pay extra for a communication-enhanced phone. These are the people buying RIM Blackberries and Palm Treos today.</p>
<p><strong>The second group gives high ratings to information-related features</strong> — large memory, document display, databases, etc. These are people in information-intense jobs who need a mobile memory supplement. Think of a doctor looking up drug dosage information on the go, or a lawyer trying to find a case reference in court.</p>
<p><strong>The third group responds best to entertainment-related features</strong>: music, video, games, and other ways to have fun. These entertainment-focused users tend to be younger than the others, and don’t want to give up their electronic lifestyle even as they enter the job market.</p></blockquote>
<p>Thanks Mike, for a great article!</p>
<p><strong>Conclusion</strong></p>
<p>There is an interesting point in this analysis &#8211; that for a product to succeed, it does not need to be perfect for everyone, it only needs to address the needs of a subset of people in the market.  Several people have written that for a product to really succeed, it must be both hated and loved.  We can interpret this to mean that a product targets one segment of the market (who loves it) to the exclusion of another segment (who hates it).  Most people hate minivans, but the people who love them really love them.  A persona-based approach to segmenting the market will help us identify these collections of like-minded individuals.</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+How+To+Apply+Market+Research+Better+http%3A%2F%2Fbit.ly%2FgTxE12+" 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/2006/11/01/how-to-apply-market-research-better/&amp;t=How+To+Apply+Market+Research+Better" 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/2006/11/01/how-to-apply-market-research-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Case Driven Documentation</title>
		<link>http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/</link>
		<comments>http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/#comments</comments>
		<pubDate>Wed, 11 Oct 2006 04:00:42 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Use Cases]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[doc]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[help file design]]></category>
		<category><![CDATA[interaction design and documentation]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[software doc]]></category>
		<category><![CDATA[software documentation]]></category>
		<category><![CDATA[structured requirements]]></category>
		<category><![CDATA[structured requirements and documentation]]></category>
		<category><![CDATA[use case analysis]]></category>
		<category><![CDATA[use cases]]></category>
		<category><![CDATA[writing doc]]></category>
		<category><![CDATA[writing documentation]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/</guid>
		<description><![CDATA[Yesterday we wrote about focusing our documentation on what our users are trying to accomplish.  With a structured requirements approach, or with an interaction-design driven approach, we've already solved half the problem - determining what to document.]]></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%252F2006%252F10%252F10%252Fuse-case-driven-documentation%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Use%20Case%20Driven%20Documentation%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F10%2F10%2Fuse-case-driven-documentation%2F", "style": "big", "title": "Use Case Driven Documentation" });</script></div>
<p><img alt="drilling" title="drilling" src="http://sehlhorst.smugmug.com/photos/101627752-M.jpg" /></p>
<p>Yesterday we wrote about <a title="Goal driven doc" href="http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/">focusing our documentation</a> on what our users are trying to accomplish.  With a structured requirements approach, or with an interaction-design driven approach, we&#8217;ve already solved half the problem &#8211; determining what to document.</p>
<p>Our proposed documentation approach is to write about what users are doing with the software, not what the software can do for the users.  Using a power drill as an example, we proposed the following representative approach:</p>
<blockquote>
<ol>
<li>How to drill a hole in a flat surface (wood or plastic, metal, masonry).</li>
<li>How to select the right screw for fastening items.</li>
<li>How to drive screws (phillips, flat-head) with your drill.</li>
<li>How to stir paint with your drill.</li>
<li>etc…</li>
</ol>
<p>Suddenly, the documentation is helping us to achieve our goals.</p></blockquote>
<p><strong>Extending Structured Requirements </strong></p>
<p>When we use a <a title="Foundation Series on structured requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">structured requirements</a> approach, we have established a framework for defining the problems that our software will solve.  We articulate how people solve those problems with use cases.  These use cases define <em>exactly</em> what we need to document.</p>
<p>When we view structured requirements, they look like the following diagram:</p>
<p><img alt="structured requirements" title="structured requirements" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" /></p>
<p><cite>From <a title="Non-func ERA" href="http://tynerblain.com/blog/2006/05/23/non-functional-requirements-era/">Non-Functional Requirements Equal Rights Amendment</a></cite></p>
<p>We extend this structure by leveraging the fact that the use cases identify the highest priority tasks that users will perform to achieve goals.  These are therefore the highest priority tasks to document.  The documentation represents how a user would achieve a use case, with the implementation that we&#8217;ve created.</p>
<p><img title="structured documentation" alt="structured documentation" src="http://sehlhorst.smugmug.com/photos/101635387-O.png" /></p>
<p>We can even trace each portion of our documentation work to the use case that it supports.</p>
<p><strong>Extending Interaction Design</strong></p>
<p>With<a title="Interaction Design process overview" href="http://tynerblain.com/blog/2006/03/21/interaction-design-process-overview/"> interaction design</a>, we are again focusing on what people intend to achieve while using our software.  Even if we are writing game software (which is designed to be played without a &#8220;goal&#8221; in the traditional sense), the user still has a goal of &#8220;being entertained.&#8221;</p>
<p>With interaction design, we would write documentation that demonstrates the way that scenarios play out with the given implementation that we created.</p>
<p>Even when <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</a> into a hybrid approach, we still have a source from which to define our documentation needs &#8211; the scenario.</p>
<p><strong>Summary</strong></p>
<p>We&#8217;ve previously defined <a title="goal-driven documentation" href="http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/">the benefits of documenting what users do</a> with our software instead of documenting what our software can do for users.  In this article we present a framework for defining and tracing that documentation &#8211; building upon use cases or scenarios.  This documentation approach makes for software that is easier to use, and therefore better.</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+Driven+Documentation+http%3A%2F%2Fbit.ly%2FiaAozg+" 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/2006/10/10/use-case-driven-documentation/&amp;t=Use+Case+Driven+Documentation" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Writing Valuable Requirements</title>
		<link>http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/</link>
		<comments>http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/#comments</comments>
		<pubDate>Wed, 31 May 2006 03:43:18 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[business requirements documentation]]></category>
		<category><![CDATA[good requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[product requirements]]></category>
		<category><![CDATA[requirements documentation]]></category>
		<category><![CDATA[software requirements]]></category>
		<category><![CDATA[valuable requirements]]></category>
		<category><![CDATA[writing business requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/</guid>
		<description><![CDATA[One of the ten big rules of writing a good MRD is writing valuable requirements. How do we determine what requirements are valuable?  To whom are they valuable? When a requirement represents a continuum how much is enough? What is too fast, what is too scalable? To whom must the requirement be valuable?]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2006%252F05%252F30%252Fwriting-valuable-requirements%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Writing%20Valuable%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F05%2F30%2Fwriting-valuable-requirements%2F", "style": "big", "title": "Writing Valuable Requirements" });</script></div>
<p><img alt="Big Ten Logo" title="Big Ten Logo" src="http://sehlhorst.smugmug.com/photos/128628528-M.png" /></p>
<p>One of the ten big rules of writing a good MRD is writing valuable requirements.  How do we determine what requirements are valuable?  To whom are they valuable?  When a requirement represents a continuum how much is enough?  What is too fast, what is too scalable?  To whom must the requirement be valuable?</p>
<p><strong>The Big Rule of Value</strong></p>
<p>From our previous article,  <a title="The Big Ten Rules of Writing MRDs" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/"><em>Writing Good Requirements &#8211; Big Ten Rules</em></a>:</p>
<blockquote><p>Pragmatic uses <em>necessary</em> as a criteria of good requirements. We  believe that <em>valuable </em>requirements are good requirements. <a title="Prioritizing requirements across releases" href="http://tynerblain.com/blog/2006/03/08/prioritizing-software-requirements-across-releases/">When  prioritizing requirements, we should do the <em>must-have</em> requirements  first</a>. But other valuable requirements are critically important &#8211; even if  they aren’t mandatory. Prioritization and release scheduling should stress  <em>necessary</em> requirements first, and then the most valuable requirements  next.</p>
<p>Requirements that can <a title="Differentiation versus Improvement" href="http://tynerblain.com/blog/2006/05/24/differentiation-vs-improvement/">differentiate  our product from the competition</a> are by definition not necessary &#8211; or the  competition would have done it already.</p></blockquote>
<p><strong>Valuable How?</strong></p>
<p>Ultimately, we care about requirements that are valuable to us &#8211; they help us sell more software, more profitably.</p>
<p>We might sell more software by selling additional products to the customer.  Our customer could become an advocate for our products, helping us sell the software to more customers.  We could get a maintenance, subscription, or renewal contract.  Or we might offer services that can be sold in conjunction with our software.</p>
<p>When we solve the right problems, we can sell our software for more profit.</p>
<p><strong>Valuable  to Whom?</strong></p>
<p>While value to us is our ultimate goal, we sell software because it is valuable to our customers.  There are two key groups we need to listen to, and one we need to ignore.  We address the needs of the purchasing persona and the key user persona.  We don&#8217;t let our salespeople have undue influence over our requirements.</p>
<p>Salespeople are <em>correctly</em> focused on a single sale.  &#8220;Add this feature, and I know we can close this deal!&#8221;  And a good salesperson is likely to be right about that.  This, however, is a slippery slope.   When we are writing an MRD we are writing <em>market</em> requirements, not <em>customer X</em> requirements.  Salespeople give us input that is overwhelmingly driven by the influence of the current deal.  Its possible that the salesperson is tapped into a single example of a market requirement.  But it isn&#8217;t the salesperson&#8217;s priority to vett that requirement as one that applies to multiple customers.  We have to do that.</p>
<p>The key <a title="How to create personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">user personas</a> are the primary beneficiaries of our software.  We are helping them improve existing processes, or we are introducing new capabilities that allow them to introduce new business processes.  We help them in a way that helps their employer to make more profit.  Since this is a <em>market</em> requirement, we need to validate that this problem is one that applies generally to our potential customers in the market, and not specifically to this customer.</p>
<p>A market requirement may look like the following:</p>
<blockquote><p>Customers are waiting an average of five minutes for customer support when they call for assistance.  We need to reduce the time that people wait on for support to an average of under a minute without adding support staff.</p></blockquote>
<p>The <a title="From MRD to PRD" href="http://tynerblain.com/blog/2006/01/24/from-mrd-to-prd-the-key-to-defining-a-spec/">supporting product requirement</a> might look like the following:</p>
<blockquote><p>Our best technical people are spending time on easy-to-solve problems, and our new-hires are wasting time trying to solve problems that they can&#8217;t solve.  We need a way to make sure that our new-hires are not trying to solve problems they can&#8217;t solve, and our experts are not spending time solving trivial problems.  We need a solution where new-hires solve >90% of all calls they handle, and experts only handle calls passed on by new hires.</p></blockquote>
<p>In this example, the user persona is the call-center support staff member.  The key user would be the new-hire.  This requirement is valuable to them.  The new-hire might have a <a title="Goal Driven Development" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">personal goal </a>of getting promoted.  The ability to process more calls to resolution (by immediately rerouting hard problems) will help them achieve their personal goals.</p>
<p>The corporate goal of increasing the effective capacity of the team is also achieved.  Our buying persona cares about this.  And <a title="We Must Sell the Software First" href="http://tynerblain.com/blog/2006/03/14/we-must-sell-the-software-first/">our buyer won&#8217;t buy if they don&#8217;t understand the value</a>.  A valuable requirement will be measurable.  In this example, reduction of waiting time from over five minutes to under a minute is an easily measured market requirement.  We can also easily measure that more than 90% of calls get re-routed, or that all expert-calls are previously vetted by the new hires.</p>
<p><strong>How much value is too much?</strong></p>
<p>Why did we set a goal of moving from over five minutes per call to under one minute?  Why not under two minutes, or under ten seconds?</p>
<p>We&#8217;re dealing with a measureable goal that operates on a continuum.  Most continuum-based goals operate under the law of diminishing returns.  A reduction in time from five minutes to three is worth more than a reduction from three minutes to one.  In our example, we have data that indicates that most people who will wait ten seconds will wait a minute.  After we have asked them to wait a minute, more people become unhappy with the service with each passing moment.  We have a data-driven utility curve that we can measure caller-happiness versus wait time.  This gives us a good understanding of value versus wait time.</p>
<p>We also have to understand the cost function.  Our engineering team, in this example, has studied the previous call logs and believes that we can achieve the one-minute mark by providing a solution that helps new-hires triage a call in ten seconds, and know if they need to forward it to an expert.  To get the triage process under ten seconds, our engineering team has told us that they would have to build a system that automatically knows if the problem is easy to solve or hard.  And this solution can involve voice recognition, or online-connectivity to the product being supported, or other <em>cutting edge</em> technological solutions.  These clever solutions are also dramatically more expensive.  This gives us a good understanding of the cost of solution versus predicted wait time.</p>
<p>By combining these two sets of data (benefit versus cost) we can produce a curve that tells us exactly how much is too much.</p>
<p><img title="Cost Benefit Curve" alt="Cost Benefit Curve" src="http://sehlhorst.smugmug.com/photos/57708984-M.png" /></p>
<p><strong>Making the tradeoff</strong></p>
<p>Our customers will be willing to pay more for more value.  However, they will have a target <a title="Definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">ROI</a> or <a title="Hurdle Rate is Based on Opportunity Cost" href="http://tynerblain.com/blog/2006/02/24/definition-of-opportunity-cost/">hurdle rate</a> for making an investment in our solution.  The cost axis of the curve becomes the cost to our customer for a particular measurement of the requirement (three minutes, one minute, ten seconds).  The customer&#8217;s hurdle rate is tangent to the cost-benefit curve (representing <em>customer</em> cost and <em>customer</em> benefit) at the customer&#8217;s optimal point.</p>
<p>We should target this point for the requirement.</p>
<p><strong>When Should We Get the Value?</strong></p>
<p>We might not target this point for the earliest releases of our software.</p>
<p>In an incremental delivery process, we may prioritize a <em>partial delivery</em> of the feature in an earlier release.  When <a title="Prioritizing requirements across releases" href="http://tynerblain.com/blog/2006/03/08/prioritizing-software-requirements-across-releases/">scheduling requirements across releases</a>, we start with a focus on the <a title="Kano Analysis and Prioritization" href="http://tynerblain.com/blog/2006/02/25/prioritizing-software-requirements-with-kano-analysis/"><em>must-have</em></a> requirements, and then introduce the <em>more-is-better</em> requirements.</p>
<p>In our example, we may choose to solve this problem with a database that provides keyword lookups for the new-hires, who can ask two or three simple questions, and then quickly identify the problems that are beyond their capacity to solve.  This system might be designed to also log the solutions based upon the answers to the triage questions (allowing new-hires to solve more and more of the problems).  In our first release, we might choose to implement the logging features.  In the second release, we may include the ability for experts to input post-mortem results (to make the system get smarter over time), and in the third release, we may focus on entering data from the previous call logs, so that the system is sufficiently smart to allow for routing of more than 90% of incoming calls.</p>
<p><strong>Conclusion</strong></p>
<ul>
<li>Make sure our requirements are valuable.</li>
<li>Make sure that the value is expressable to the buyers and ideally directly achievable by the primary users of the system.</li>
<li>When developing requirements along a continuum, use data (not opinion) to set the target for the requirement.</li>
<li>Prioritize incremental delivery of the functionality across sequential releases.</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+Writing+Valuable+Requirements+http%3A%2F%2Fbit.ly%2FgYm9Rb+" 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/2006/05/30/writing-valuable-requirements/&amp;t=Writing+Valuable+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Requirements Gathering &#8211; Interviewing the Right People</title>
		<link>http://tynerblain.com/blog/2006/05/18/requirements-gathering-interviewing-the-right-people/</link>
		<comments>http://tynerblain.com/blog/2006/05/18/requirements-gathering-interviewing-the-right-people/#comments</comments>
		<pubDate>Fri, 19 May 2006 05:09:16 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[crossing the chasm]]></category>
		<category><![CDATA[early adopters]]></category>
		<category><![CDATA[gathering requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[personas]]></category>
		<category><![CDATA[requirements elicitation]]></category>
		<category><![CDATA[requirements interviews]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/05/18/requirements-gathering-interviewing-the-right-people/</guid>
		<description><![CDATA[How do we find out what someone wants when they don't know what they want or what they can have?  One of the best techniques for gathering requirements is to interview users.  But which users?

Imagine aliens came to the planet and offered to solve our gasoline problem.  How could we tell them what we wanted?  We might say we wanted cars that run on clean renewable energy.  The aliens might leave thinking "Oh well, I guess they didn't want faster-than-light travel."  ]]></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%252F2006%252F05%252F18%252Frequirements-gathering-interviewing-the-right-people%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Requirements%20Gathering%20-%20Interviewing%20the%20Right%20People%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F05%2F18%2Frequirements-gathering-interviewing-the-right-people%2F", "style": "big", "title": "Requirements Gathering - Interviewing the Right People" });</script></div>
<p><img alt="aliens" title="aliens" src="http://sehlhorst.smugmug.com/photos/70318420-M.jpg" /></p>
<p>How do we find out what someone wants when they don&#8217;t know what they want or  what they can have?  One of the best techniques for gathering requirements is to  interview users.  But which users?</p>
<p>Imagine aliens came to the planet and offered to solve our gasoline problem.  How could we tell them what we wanted?  We might say we wanted cars that run on clean  renewable energy.  The aliens might leave thinking &#8220;Oh well, I guess they didn&#8217;t  want faster-than-light travel.&#8221;</p>
<p>It isn&#8217;t much different for most software  users.  Users don&#8217;t typically know what software can do, or don&#8217;t have the  skills to synthesize software based solutions to their real problems.  Users are  rarely the source of innovative solutions.  So <a title="Top Five Requirements Elicitation Techniques" href="http://tynerblain.com/blog/2006/01/14/top-five-requirements-gathering-tips/">how do we gather the real requirements</a>?</p>
<p>We can make our user interviews much more valuable by talking to different  users.  We can use Geoffrey Moore&#8217;s <a title="Crossing the Chasm" href="http://www.amazon.com/exec/obidos/ASIN/0060517123/tynerblain-20"><em>Crossing the Chasm</em></a> description of  technology adoption as a basis for segmenting our users.  <a title="User Triangulation" href="http://www.heynorton.org/blog/2005/09/user_triangulat.html">Ken Norton  proposes</a> that we do exactly this, and combine the different perspectives to  reach our conclusions.</p>
<p><strong>Classifying Users</strong></p>
<p>We <a title="Persona Grata" href="http://tynerblain.com/blog/2006/04/17/persona-grata/">use personas</a> to identify different classes of users in a software system.   We use those personas to drive feature prioitization and design decisions.  When  making design decisions, we <a title="Competent Users and Software Design" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">focus on the level of competence of the users to  prioritize features</a>.  When we are <a title="How to Interview When Gathering Requirements" href="http://tynerblain.com/blog/2006/01/15/how-to-interview-when-gathering-requirements/">eliciting requirements</a>, it is before we get to  the prioritization stage, and we are still defining what the features <em>might  be</em>.</p>
<p>We can use the same techniques to increase the value of our requirements  elicitation efforts.</p>
<p><img alt="chasm" title="chasm" src="http://sehlhorst.smugmug.com/photos/70316727-M.png" /></p>
<p>For any given role that we identify as a user of our software, we can use  Geoffrey Moore&#8217;s classification to identify four distinct user archetypes  (personas).</p>
<ul>
<li>Innovators (Influencers) &#8211; people on the bleeding edge of the technology  curve.</li>
<li>Early Adopters &#8211; our first customers.</li>
<li>Majority &#8211; most users of our software.</li>
<li>Late Adopters &#8211; people who follow the crowd.</li>
</ul>
<p>There are pros and cons to interviewing representatives from each group.   With Ken&#8217;s guidance, we can separate the wheat from the chaff and combine their  inputs to drive innovative and valuable solutions.  Our goal in these interviews  is to understand the pain-points and market opportunities.</p>
<p><strong>Innovators</strong></p>
<ul>
<li>pro &#8211; Innovators can prevent tragically bad mistakes.  They can also help us  to identify opportunities to solve problems most people don&#8217;t realize are  problems.</li>
<li>con &#8211; Innovators struggle to distinguish <em>cool</em> from  <em>valuable</em>.  There is also a risk that they can fixate on something that  is irrelevant.</li>
</ul>
<p><strong>Early Adopters</strong></p>
<ul>
<li>pro &#8211; Early Adopters easily develop a deep understanding of our products and  goals.  They can tell us in advance what problems <em>majority</em> users will  face, and provide a bit of a sanity check on the &#8216;problems&#8217; that innovators  suggest</li>
<li>con &#8211; Early Adopters tend to be power users, and are genuinely enthused  about our product ideas.  They tend to gloss over the negatives and focus on the  positives.  They also tend to communicate in terms of features, not  capabilities.</li>
</ul>
<p><strong>Majority</strong></p>
<ul>
<li>pro &#8211; Majority users can give us the best insight into what is painful.  We  can use this insight to drive market requirements and solution ideas.</li>
<li>con &#8211; Majority users don&#8217;t think about software, they think about how  software affects them.  We have to keep a focus on the problem not the solution  when gathering requirements.  We also have to dig deeper with <em>why</em>  questions to understand the underlying cause of a particular problem.</li>
</ul>
<p><strong>Late Adopters</strong></p>
<ul>
<li>pro &#8211; Late Adopters avoid change.  Use them to help us identify where we  need better interaction design and more documentation.</li>
<li>con &#8211; Late Adopters will drive us towards &#8220;&#8230; just like product X&#8221;  solutions.  They will be disinterested in novel solutions until they are  mainstream.</li>
</ul>
<p><strong>Triangulation</strong></p>
<p>Ideas that survive the innovator-filter, make sense to early adopters, and  solve a painful problem for the majority are the ones that we want.  The late  adopters won&#8217;t be using early versions of our software, so we can focus our  attention on the other groups until we become the dominant solution.  Then we  can look to the late adopters to help us manage incremental improvements.</p>
<p>Thanks Ken for suggesting that we triangulate these perspectives into great  ideas!</p>
<p><strong>Conclusion</strong></p>
<p>Even if we don&#8217;t go out in search of these archetypes, we should try and  understand the people we do talk to, and put their inputs into the proper  perspective.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Requirements+Gathering+%E2%80%93+Interviewing+the+Right+People+http%3A%2F%2Fbit.ly%2FeSTtea+" 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/2006/05/18/requirements-gathering-interviewing-the-right-people/&amp;t=Requirements+Gathering+%E2%80%93+Interviewing+the+Right+People" 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/2006/05/18/requirements-gathering-interviewing-the-right-people/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

