<?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; Writing</title>
	<atom:link href="http://tynerblain.com/blog/category/consulting/communication/writing/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog</link>
	<description>Software product success.</description>
	<lastBuildDate>Wed, 17 Mar 2010 04:31:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pictures and Ideas for Powerful Whitepapers</title>
		<link>http://tynerblain.com/blog/2009/05/06/pictures-power-whitepapers/</link>
		<comments>http://tynerblain.com/blog/2009/05/06/pictures-power-whitepapers/#comments</comments>
		<pubDate>Wed, 06 May 2009 15:28:37 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[back of the napkin]]></category>
		<category><![CDATA[chip heath]]></category>
		<category><![CDATA[dan heath]]></category>
		<category><![CDATA[dan roam]]></category>
		<category><![CDATA[made to stick]]></category>
		<category><![CDATA[stephanie tilton]]></category>
		<category><![CDATA[whitepapers]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=920</guid>
		<description><![CDATA[
Pictures can convey messages much more powerfully than words.  In a recent discussion about writing whitepapers, I suggested combining the idea-creation advice from Made To Stick with the image-creation advice from Back of The Napkin.  Check out this article to see some concrete examples.
Made To Stick
Paul Young, product manager and author of Product Beautiful,  sent [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="light bulb image powers message" src="http://sehlhorst.smugmug.com/photos/529689995_gyo6w-L.jpg" alt="" width="166" height="250" /></p>
<p>Pictures can convey messages much more powerfully than words.  In a recent discussion about writing whitepapers, I suggested combining the idea-creation advice from Made To Stick with the image-creation advice from Back of The Napkin.  Check out this article to see some concrete examples.</p>
<h2><span id="more-920"></span>Made To Stick</h2>
<p>Paul Young, product manager and author of <a title="Product Beautiful blog" href="http://www.productbeautiful.com/">Product Beautiful</a>,  sent out a tweet the other day asking:</p>
<blockquote><p>Anyone have any &#8220;best practices&#8221; for whitepaper development? E.g. most whitepapers I read are stilted, I want to make something compelling.</p>
<p><cite><a title="tweet" href="http://twitter.com/ptyoung/status/1660091908">Tweet, on twitter</a></cite></p></blockquote>
<p> </p>
<p>I suggested combining the ideas from <em>Made to Stick</em> and <em>Back of the Napkin</em> to create a compelling whitepaper.  Stephanie Tilton then replied with a link to a good article she wrote showing <a title="whitepapers made to stick" href="http://www.savvyb2bmarketing.com/blog/entry/62214/how-to-craft-white-papers-that-stick-in-readers-minds-">how to apply the ideas from </a><em><a title="whitepapers made to stick" href="http://www.savvyb2bmarketing.com/blog/entry/62214/how-to-craft-white-papers-that-stick-in-readers-minds-">Made to Stick</a></em><a title="whitepapers made to stick" href="http://www.savvyb2bmarketing.com/blog/entry/62214/how-to-craft-white-papers-that-stick-in-readers-minds-"> to writing whitepapers</a>.</p>
<p>The book, <a title="Made to Stick at Amazon" href="http://www.amazon.com/dp/1400064287?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=1400064287&amp;creative=373489&amp;camp=211189"><em>Made To Stick: Why Some Ideas Survive and Others Die</em></a>, written by Chip Heath and Dan Heath, has some very powerful ideas for communicating ideas.  Stephanie sums them up nicely in her article:</p>
<blockquote>
<ul>
<li>Simple</li>
<li>Unexpected</li>
<li>Concrete</li>
<li>Credible</li>
<li>Emotional</li>
<li>Stories</li>
</ul>
<p><cite>Stephanie Tilton, <a href="http://www.savvyb2bmarketing.com/blog/entry/62214/how-to-craft-white-papers-that-stick-in-readers-minds-">How to Craft Whitepapers that Stick in People&#8217;s Minds</a></cite></p></blockquote>
<p>Check it out, she goes into more detail, with examples and insights about why they work.  What about the <em>Back of the Napkin</em> ideas?  That&#8217;s what this article covers.</p>
<h2>Back of the Napkin</h2>
<p><img class="alignnone" title="frying pan" src="http://sehlhorst.smugmug.com/photos/529708638_gYrDK-L.jpg" alt="" width="250" height="187" /></p>
<p>I remember feeling like I&#8217;d been hit in my frontal cortex with a frying pan at <a title="productcamp austin 2009" href="http://tynerblain.com/blog/2008/12/11/productcamp-austin-winter-2009/">Product Camp Austin (Winter 2009)</a>, when I first saw a <a title="sunni brown's site" href="http://sunnibrown.com/">visualization created by Sunni Brown of Brightspot</a> for one of the presentations.  I remembered hearing about <em><a title="back of the napkin at amazon" href="http://www.amazon.com/dp/1591841992?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=1591841992&amp;creative=373489&amp;camp=211189">Back of the Napkin: Solving Problems and Selling Ideas with Pictures</a></em>, by Dan Roam, and immediately ordered it from Amazon.  This is actually the current book for the <em><a title="Smarter Product Managers book club" href="http://www.booksprouts.com/club/show/426?show_all=false">Smarter Product Managers</a></em><a title="Smarter Product Managers book club" href="http://www.booksprouts.com/club/show/426?show_all=false"> book club</a>.</p>
<p><a title="better communication through visuals" href="http://tynerblain.com/blog/2008/08/06/get-an-edge-with-visuals/">Applying these visualization techniques is extremely compelling for sharing ideas</a>.</p>
<p>There is a ton of science behind why (and how) visual presentation of ideas (pictures) works so well.  Dan Roam does a fantastic job of making this approachable and actionable &#8211; an excellent book.</p>
<p>Getting back to the conversation&#8230;</p>
<h2>How to Put Pictures in your Whitepaper</h2>
<p>The rest of this article is showing some example images, in Back of the Napkin style, that support the ideas from Made to Stick, as you would include them in a whitepaper.</p>
<div><strong>User Representatives are a Bad Idea</strong></div>
<p>Imagine you&#8217;re writing a whitepaper about requirements elicitation.  There are a lot of important topics you could cover, but to stay aligned with the <em>simple</em> message from <em>Made to Stick</em>, you will want to focus on one idea (for each whitepaper, as Stephanie explains in her article).</p>
<p>User representatives are often offered to business analysts as a &#8220;convenient&#8221; source of requirements &#8211; the <em>actual</em> users are too busy, too valuable, or too easily distracted/upset/encouraged by conversations about the future.  This idea is both bad and pervasive.  You want your whitepaper to convey <em>emotionally</em> why this is bad.  You need something <em>concrete</em>, and maybe you want to tell a story.  Consider this image:</p>
<p><img class="alignnone" title="user representatives are bad for requirements elicitation" src="http://sehlhorst.smugmug.com/photos/529682980_Qbtkc-L.jpg" alt="" width="450" height="532" /> </p>
<p>This is poorly drawn (but that&#8217;s ok!), but it establishes the metaphor that inserting user representatives into the elicitation process is like playing the telephone game.  The message (user goals) gets lost between the users and the business analyst.  It also points out that <a title="top ten active listening techniques" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">the </a><em><a title="top ten active listening techniques" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/">conversation</a></em><a title="top ten active listening techniques" href="http://tynerblain.com/blog/2007/03/15/ten-active-listening-skills/"> between users and analysts is what makes good requirements elication</a>, well, good (ref. the smiley faces in the drawing if you&#8217;re not sure).</p>
<p><strong>Designing for &#8220;Everyone&#8221; is a Bad Idea</strong></p>
<p>One challenge for product managers is determining which features to include in their <a title="create a great product roadmap" href="http://tynerblain.com/blog/2008/04/28/dont-build-a-stupid-product-roadmap/">product roadmap</a>.  Industry analysts, and sometimes <a title="buyer personas and user personas" href="http://tynerblain.com/blog/2008/07/22/buyers-and-users/">buyers</a>, have been known to use checklists to pre-screen or select products.  That may be true, but using a checklist to prioritize your product development is a bad idea, because you end up creating a product that doesn&#8217;t thrill any particular users, and just makes analysts happy.</p>
<p><img class="alignnone" title="checklist of features" src="http://sehlhorst.smugmug.com/photos/529682583_Njdyq-L.jpg" alt="" width="450" height="306" /></p>
<p>The quick mock-up of a <em>Consumer Reports style</em> checklist shows a comparison of your product against the competition&#8217;s product.  With six features (A through F), it appears that your product is better.  [Here's an article <a title="elicitation technique comparison" href="http://tynerblain.com/blog/2007/09/13/elicitation-techniques-2/">comparing elicitation techniques, with a real consumer-reports-style checklist</a> and an explanation of how to read it.]  You have six &#8220;half-circles&#8221; which looks to be &#8220;better&#8221; than two &#8220;full circles.&#8221;  Therein lies the danger.</p>
<p>Any individual user cares about two or three of those features (capabilities), not all six of them.  Will that user prefer your product or the competition&#8217;s product?</p>
<p><img class="alignnone" title="personas have specific goals" src="http://sehlhorst.smugmug.com/photos/529683026_xyWDC-L.jpg" alt="" width="450" height="313" /></p>
<p>That user is thrilled to use your competition&#8217;s product, because it does what <em>that</em> user cares about, really well.  Your product is half-baked. Happy analyst, missing user (for you).</p>
<p><strong>Increasing Distribution Channels Decreases Sales</strong></p>
<p>Another key idea from <em>Made to Stick</em> is the notion of presenting the unexpected.  The authors point out that you need to demonstrate an idea that is at odds with the reader&#8217;s concept of reality &#8211; breaking it &#8211; and then rebuild the reader&#8217;s sense of reality around your new idea.  That&#8217;s where the unexpected comes in.</p>
<p>Consider that you are selling a product into a crowded market, with many places that customers could buy your product.  You do your inital launch, selling through one sales channel.  Someone proposes adding other channels &#8211; hey, more is better, right?</p>
<p>How do you prevent this Benedict Arnold from killing your company with what looks to be a great idea?  How about getting people&#8217;s attention with this &#8220;violation of common sense&#8221;:</p>
<p><img class="alignnone" title="distribution increases yield sales decreases" src="http://sehlhorst.smugmug.com/photos/529682629_Erkcn-O.jpg" alt="" width="450" height="698" /></p>
<p>That will get people&#8217;s attention.  What the Heath brothers point out is that to establish <em>credibility</em> with this <em>unexpected</em> visual, you have to rebuild people&#8217;s perspective.  You could do that with the following:</p>
<p><img class="alignnone" title="billboard chart for products" src="http://sehlhorst.smugmug.com/photos/529682605_tRANP-L.jpg" alt="" width="450" height="275" /></p>
<p>Since each store (channel) has a best-sellers list, like the Billboard charts for music, you want to make sure you&#8217;re at the top of the list.  <em>Most downloaded</em> is a common metric for software available on shareware and freeware sites.  If people can get your product anywhere they happen to be, it will dillute your rankings at every store.  By targeting your marketing and making your product available at one store, you will get more traffic (at that store) than you otherwise would.  Then new potential customers will be more likely to <em>discover</em> your product because it is at the top of the list.</p>
<p><strong>Climate Change</strong></p>
<p>I touched on <em>credibility</em> in the last example.  As Stephanie points out in her article, the <em>Made to Stick</em> authors were talking more about data than visceral understanding.  The first thought that popped into my head was the effectiveness of Al Gore&#8217;s <em>data</em> in his <em>An Inconvenient Truth</em> book (and presentation and movie).  He demonstrates that there is a correlation (and implies that there is a causal effect) between the average temperatures on earth and carbon dioxide levels.</p>
<p><img class="alignnone" title="temperature and co2 levels al gore inconvenient truth chart" src="http://sehlhorst.smugmug.com/photos/529689941_2MvyH-L.jpg" alt="" width="450" height="252" /></p>
<p>Pretty powerful message.</p>
<h2>Conclusion</h2>
<p>Pictures like the ones above, drawn as Dan Roam suggests in <em><a title="Back of the Napkin" href="http://www.amazon.com/dp/1591841992?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=1591841992&amp;creative=373489&amp;camp=211189">Back of the Napkin</a></em> can make the ideas you present in your whitepaper really memorable.  Use the Heath brothers&#8217; approach from<a title="Made to Stick" href="http://www.amazon.com/dp/1400064287?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=1400064287&amp;creative=373489&amp;camp=211189"> </a><em><a title="Made to Stick" href="http://www.amazon.com/dp/1400064287?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=1400064287&amp;creative=373489&amp;camp=211189">Made to Stick</a></em> in crafting your message, and <a title="made to stick for whitepapers" href="http://www.savvyb2bmarketing.com/blog/entry/62214/how-to-craft-white-papers-that-stick-in-readers-minds-">fold it into your whitepaper</a> as Stephanie suggests.</p>
<p>The result is a compelling and memorable white paper, just like Paul always wanted.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Pictures+and+Ideas+for+Powerful+Whitepapers+http://bit.ly/InqPH+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2009/05/06/pictures-power-whitepapers/&amp;t=Pictures+and+Ideas+for+Powerful+Whitepapers" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2009/05/06/pictures-power-whitepapers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Effective Status Reports</title>
		<link>http://tynerblain.com/blog/2008/09/03/effective-status-reports/</link>
		<comments>http://tynerblain.com/blog/2008/09/03/effective-status-reports/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 02:44:07 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[communicating]]></category>
		<category><![CDATA[status reporting]]></category>
		<category><![CDATA[status reports]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=698</guid>
		<description><![CDATA[
An effective status report is one that

Instantly conveys the state of the project.
Creates a minimum of overhead for the project team.
Gets you help when you need it, and latitude when you don&#8217;t.
Is fun / energizing to the author and the readers.

An effective status report is not a myth, it is actually easy to achieve.

Goals of [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://photos.smugmug.com/photos/365186523_ws2xg-L.jpg" alt="forecast" width="271" height="200" /></p>
<p>An effective status report is one that</p>
<ul>
<li>Instantly conveys the state of the project.</li>
<li>Creates a minimum of overhead for the project team.</li>
<li>Gets you help when you need it, and latitude when you don&#8217;t.</li>
<li>Is fun / energizing to the author and the readers.</li>
</ul>
<p>An effective status report is not a myth, it is actually easy to achieve.</p>
<p><span id="more-698"></span></p>
<h2>Goals of a Status Report</h2>
<p>You do not create a status report because someone told you to create them.  You create a status report <em>only</em> when it benefits the project.  There are three effective uses of a status report:</p>
<ol>
<li>Get help (escalating) when you need help.</li>
<li>Keep stakeholders <em>in the loop</em> so there are no surprises.</li>
<li>Get visibility for the accomplishments of the people on your team.</li>
</ol>
<h2>Problems of a Status Report</h2>
<p>There are also potential downsides of creating status reports.  This doesn&#8217;t mean you should avoid creating a status report.  It means you should avoid status report mistakes.</p>
<ol>
<li>A bad status report takes a lot of energy (and time) to write, making it expensive.</li>
<li>A bad status report is difficult to read, causing it to fail to communicate.</li>
<li>A bad status report covers up problems or cries &#8220;Wolf!&#8221; when things are under control.</li>
</ol>
<h2>Elements of an Effective Status Report</h2>
<p>The following is one example of an effective status report format.  Other formats can work.  This one does.  We&#8217;ve been using it for months on multiple projects, with great success.  On one of our projects, the first status report in this format was <em>forwarded around</em> by the project sponsor for people to &#8220;check this out!&#8221;  Ever hear of that happening to one of your status reports before?  In a good way?</p>
<p>There are five components in this status report format.</p>
<ol>
<li>The scannable forecast.</li>
<li>Last week&#8217;s accomplishments.</li>
<li>This week&#8217;s planned accomplishments.</li>
<li>Issues and resolutions.</li>
<li>The legend.</li>
</ol>
<h2>The Legend</h2>
<p>Normally, we run through a list in order.  In this case, we will show the last section first.  The legend explains how to read the first section, the <em>scannable forecast</em>.</p>
<p><img src="http://photos.smugmug.com/photos/365186571_9KzE4-O.jpg" alt="status report legend" width="645" height="249" /></p>
<p>You can define any number of different statuses for a project.  &#8220;Red, Yellow, Green&#8221; is the most common.  A couple years ago, we proposed <a title="status reporting" href="http://tynerblain.com/blog/2006/04/24/targeted-communication-status-reporting/">this metaphor for status reporting</a>:</p>
<blockquote><p>A great way to do this is with a stoplight metaphor (at least in the US, where green = go, yellow = caution, red = stop). We can provide a little color in our reports to make the status details and rollup easy to scan. When someone is the audience of a status report, its because the reader needs to know what is going on, but isn’t involved &#8211; and likely is reading status reports from other teams. We need to present a document that gives a quick visual that guides the reader to pay attention to the most critical elements.</p>
<ul>
<li>Red.  Immediate action (by the reader) is required to fix this.</li>
<li>Yellow. We’re at risk of failing to meet expectations. There’s a plan in place, but we thought you should know. Want to know more?</li>
<li>Green.  Meeting or exceeding the plan.  No need to spend cycles on this one.</li>
</ul>
<p>[Update 28 Apr 2007: We have a much improved <a title="Project Dashboard Icons" href="../2007/02/23/project-dashboard-icons/">metaphor for tracking project status - <em>weather forecasting</em></a>.]</p></blockquote>
<p>It works, but it isn&#8217;t great.  You&#8217;ve all seen it, because it is adequate.  However, using red, yellow, and green to provide a <em>scannable</em> status can be confusing &#8211; even if your readers aren&#8217;t colorblind.  Does red mean the project is delayed?  Yellow usually means a project is at risk.  But is it &#8220;at risk, help is needed&#8221; or &#8220;at risk, FYI, help is not needed.&#8221;  That&#8217;s part of why we recommended the weather forecasting metaphor.  Thanks again to <a title="johanna's article" href="http://www.stickyminds.com/s.asp?F=S10522_COL_2">Johanna Rothman</a> for originally sharing the idea.</p>
<h2>The Scannable Forecast</h2>
<p><img src="http://photos.smugmug.com/photos/365186523_ws2xg-L.jpg" alt="forecast" width="271" height="200" /></p>
<p>When you look at the above, even without knowing any details  you know:</p>
<ol>
<li>The project is in worse shape this week than it was last week.</li>
<li>The project will get worse before it gets better.</li>
<li>The team has it under control, today, but might need help next week.</li>
</ol>
<h2>Last Week&#8217;s Accomplishments</h2>
<p>The bulleted list is extremely effective for scannable details.  The secret &#8211; use three to five bullets.  More bullets means you&#8217;re sharing too much, and fewer than three is not enough.  You&#8217;re reporting to a project sponsor who has placed trust in you to manage the details.  Your sponsor, when things are <em>sunny</em> may not even read the details, just relying on you to say &#8220;everything is great.&#8221;  The only time that you need to share more details is when things are stormy.  And those details (1) will come up in the issues section, and (2) will come up in conversation.</p>
<p>When someone on your team does something noteworthy, dedicate one of your bullets to that accomplishment.  If you have a dozen of these, then refine your definition of <em>noteworthy</em>.  You should already be providing feedback to your team about their work.  <em>Noteworthy</em> accomplishments should be broadcast up the chain.  Its a reward for their hard work.  Don&#8217;t under-report, and don&#8217;t over-report.  The people who consistently do great things will begin to get a positive reputation where it counts.  As a bonus, you will get acknowledgment for being a good manager.</p>
<h2>This Week&#8217;s Planned Accomplishments</h2>
<p>This is what you intend to do in the next week.  When your project sponsor does want to get a little more insight, perhaps to make sure that she believes that you will resolve things, she will read these details.  Again &#8211; a three to five item bulleted list is appropriate.</p>
<h2>Issues And Resolutions</h2>
<p>You report issues when you are (or anticipate being) cloudy or stormy.  You don&#8217;t waste your sponsor&#8217;s time on trivial issues that you can resolve on your own.  These are issues that either definitely require escalation, or may require escalation.  Again, you&#8217;re working a three to five item list.  On your project, you will potentially manage ten times as many risks, and you could track them in a spreadsheet, etc.  Those are the issues <em>you</em> are working.  These are the issues you need help to resolve.  And only the issues you need help to resolve.</p>
<p>Note that this isn&#8217;t just an <em>issues</em> section &#8211; it is issues and resolutions.  When you inform a stakeholder that you need help with a problem, the first thing you need to do is propose a solution.  Imagine the following exchange:</p>
<blockquote><p>&#8220;I need help&#8221; &#8211; &#8220;What do you need?&#8221; &#8211; &#8220;I need you to &#8230;.&#8221;</p></blockquote>
<p>Much better than</p>
<blockquote><p>&#8220;I need help&#8221; &#8211; &#8220;What do you need?&#8221; &#8211; &#8220;I don&#8217;t know.  I need help determining what I need.&#8221; &#8211; &#8220;I know what you need, you need help updating your resume.&#8221;</p></blockquote>
<p>For every issue, propose a solution.</p>
<p>The issue section is also not meant to be a standalone document.  Here&#8217;s another bad exchange:</p>
<blockquote><p>&#8220;I need help&#8221; &#8211; a couple days go by &#8211; &#8220;I solved <em>your </em>problem <em>for you</em>.  And I&#8217;m replacing you with someone I can rely on.&#8221;</p></blockquote>
<p>Your project sponsor shouldn&#8217;t have to ask what you need her to do.  She should, however, want to know <em>why</em> you think the proposed solution is best &#8211; and you should talk to her about it, not present a rationale within your status report.</p>
<h2>Practical Experience</h2>
<p>I&#8217;ve created many status reports using this format.  They take anywhere from 15 minutes to 45 minutes, almost always under 30 minutes.  When they did take any significant time, almost all of that time was spent in thinking about the content to report in the &#8220;Planned Accomplishments&#8221; section.  And that is not time that I spent writing a status report &#8211; it is time I spent planning, on those occasions where I procrastinated in my planning, and the writing of the status report triggered a brief planning exercise.</p>
<p>Brevity in a report goes a long way.  As does regular face-to-face (or at least phone-to-phone) conversation.  A status report alone better not be the only way you communicate.  It should be a light-weight artifact that (1) starts the important conversations, (2) preempts the time-wasting conversations, and (3) provides an archive that you can review later, to see the full arc of the project, gain insights, and run your next project even more effectively.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Effective+Status+Reports+http://bit.ly/1Smgj+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/09/03/effective-status-reports/&amp;t=Effective+Status+Reports" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/09/03/effective-status-reports/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Get an Edge With Visual Communication</title>
		<link>http://tynerblain.com/blog/2008/08/06/get-an-edge-with-visuals/</link>
		<comments>http://tynerblain.com/blog/2008/08/06/get-an-edge-with-visuals/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 01:19:37 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[dan roam]]></category>
		<category><![CDATA[guy kawasaki]]></category>
		<category><![CDATA[visual communication]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/?p=694</guid>
		<description><![CDATA[
Having trouble working through complex concepts?  Struggling to get a &#8220;simple&#8221; message across?  As human beings, we are all pre-wired to absorb visual communication.  You should take advantage of that to give yourself an edge when it comes to communicating.

Thinking in Pictures
Guy Kawasaki did an interview last week with Dan Roam, author of The Back [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.smugmug.com/photos/346460825_DwNHU-L.jpg" alt="tiny diagram" width="157" height="250" /></p>
<p>Having trouble working through complex concepts?  Struggling to get a &#8220;simple&#8221; message across?  As human beings, we are all pre-wired to absorb visual communication.  You should take advantage of that to give yourself an edge when it comes to communicating.</p>
<p><span id="more-694"></span></p>
<h2>Thinking in Pictures</h2>
<p>Guy Kawasaki did <a title="guy kawasaki and dan roam interview" href="http://www.sun.com/solutions/smb/guest.jsp?blog=dan_roam">an interview</a> last week with Dan Roam, author of <a title="the back of the napkin at amazon" href="http://www.amazon.com/dp/1591841992?tag=tbrb-20&amp;link_code=as3&amp;creativeASIN=1591841992&amp;creative=373489&amp;camp=211189"><em>The Back of the Napkin: Solving Problems and Selling Ideas with Pictures</em></a>.  There are eleven good questions with detailed answers, so it is definitely worth a read.</p>
<p>Whenever we hear a pitch or evaluate an idea, we go back to first principles and try and understand <em>why</em> something might work.  If we believe the explanation of why something might work, we&#8217;re much more open to the possibility that it will work.  Here&#8217;s part of Dan&#8217;s answer to Guy&#8217;s question about how and why using visuals to communicate can be effective.</p>
<blockquote><p>Recent breakthroughs in vision science have indicated that there are multiple &#8220;vision pathways&#8221; along which the signals from our eyes travel into and through our brains. Each pathway keys off different visual cues in the environment&#8211;one pathway looking to identify the objects around us, another understanding where they are, another determining how many there are, another watching for changes over time, etc. This process takes place in parallel, breaking the entire visual world down into discrete elements that we initially process independently, and then only later &#8220;see&#8221; in our mind&#8217;s eye as a whole.</p>
<p><cite>Dan Roam, interviewed by Guy Kawasaki</cite></p></blockquote>
<p>The basic idea is that we can perceive solutions to abstract and complex problems visually.  Visualization becomes a compelling vehicle for communication too.</p>
<h2>Visceral Examples</h2>
<p>Instead of writing a long string of words to describe the power of communicating visually, we&#8217;ll give you a couple examples.</p>
<p>One of Guy&#8217;s ventures is a company called Alltop, the goal of which is to find the valuable search results and present them to you.  Alltop is acknowledging a weakness in the search results created by algorithms &#8211; whatever the ranking mechanism, it is imperfect.  Alltop&#8217;s goal is to eliminate the pain of wading through useless search results to find the &#8220;nuggets&#8221; of useful results.  Does that explain the idea sufficiently?  What if you looked at this picture, from <a title="guy kawasaki" href="http://blog.guykawasaki.com/2008/07/the-art-of-visu.html">Guy&#8217;s recent blog article</a>, showing <a title="alltop nuggets" href="http://alltop.com/about/nuggets.php">a drawing by Dan</a> of the concept described in this paragraph.</p>
<p>There&#8217;s a company called <a title="slydial" href="http://www.slydial.com/index.php">Slydial</a> that allows you to make calls directly to someone&#8217;s voicemail.  A few minutes of poking around their website will give you an idea of what they do.  If you also read the FAQ and watch the videos, you can infer how it works too.  Or you can just look at the following drawing:</p>
<p><img src="http://www.smugmug.com/photos/346460820_PRSas-O.jpg" alt="slydial process" width="450" height="716" /></p>
<p>[<a title="slydial process - larger" href="http://www.smugmug.com/photos/346460787_oJXMr-O.jpg">click for larger version</a>] * Note &#8211; depending on your age, the weird boxes are either obviously reel-to-reel recorders, or they are apparently happy robots that are excited to record your message for you.</p>
<p>Instead of calling someone in hopes of leaving them a message (because you don&#8217;t want to talk to them), you call Slydial, tell them the number you want to reach, and record a message.  Slydial then calls the voicemail of the person and replays your message directly into their voicemail.  In some cases, the person&#8217;s cell phone will even show a &#8220;missed call&#8221; from your number.</p>
<h2>Whiteboards Rock</h2>
<p>I&#8217;ve been heard to utter the phrase &#8220;<em>I can&#8217;t think without a whiteboard</em>.&#8221;  Whiteboards make for great visualization tools.  In <a title="defining problems at productcamp austin" href="http://tynerblain.com/blog/2008/06/23/defining-problems-at-pca1/">my presentation at ProductCamp Austin</a>, after a quick sojurn through my meager slide deck, we switched to the whiteboard.  With me at the whiteboard, the entire room was able to create an example <a title="ishikawa diagrams" href="http://tynerblain.com/blog/category/requirements/requirements-models/ishikawa-diagram/">Ishikawa diagram</a>, first exploring an example problem with <a title="concept maps for exploring problems" href="http://tynerblain.com/blog/2005/11/25/concept-maps-great-tool-for-eating-the-elephant-brainstorming-ideas-for-a-new-product/">a concept map</a>, and then building the associated ishikawa diagram.  The combination of collaborative teaching and visual expression and learning was very effective.</p>
<p>There&#8217;s an entire industry, now, built around <a title="electronic whiteboards" href="http://www.electronicwhiteboardswarehouse.com/index.html">electronic whiteboards</a>.  Ten years ago, I was at a client using a <em>copyboard</em> &#8211; a whiteboard that would rotate the screen (like those old cloth-reel towels in restrooms) and a scanner built into the side of the whiteboard would copy what you had drawn, printing out a black and white copy of your diagram on thermal paper (the kind that used to be in fax machines, and that curls up after printing).  Five years ago, I was able to use an electronic whiteboard that detected the location of (and color of) the markers you were using.  It would detect when you were pressing down to write, triangulate the position of the pen, and create a digital copy on your connected computer.  Now those devices can be used interactively too &#8211; you can use a projector, pointed at the whiteboard, share the drawing real-time with remote viewers, and probably any number of other uses.</p>
<p>This matters, because you want a way to capture and share the drawings you create.  If you manage your information and communication well, it&#8217;s like slingbox + tivo for whiteboards.  View them any time, anywhere.  If you&#8217;re a product manager or business analyst, this gives you an easy way to embed drawings and diagrams within the <em>traditional</em> requirements artifacts.  Electronic copies of the drawings can be incorporated where they are needed most &#8211; leveraging context and <a title="writing for the purpose of reading" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">providing clarity for your readers</a>.  They dramatically help you when writing for an audience that does not have the context you have when creating the document.</p>
<h2>Data Visualization</h2>
<p>This is yet another incredibly valuable area of study &#8211; visual presentation of data.  Networks, connections, values, trends, everything can be visualized.  Check out this article from Smashing Magazine if you want to open pandora&#8217;s box into the current cutting edge(s) of data visualization.  If you&#8217;re a data-geek or a visualization-geek, my apologies.  <a title="great visualizations" href="http://www.smashingmagazine.com/2007/08/02/data-visualization-modern-approaches/">This article will suck you into a black hole of great visualization ideas</a> from which you may never recover.</p>
<p>Requirements Visualization</p>
<p>The only reason for documenting requirements is to communicate those requirements.  You can do it with text, or you can do it with analytically-saturated text, combined with gripping and clarifying visuals.  Make sure you have the following visualization techniques in your communication toolbox.</p>
<ul>
<li><a title="structured requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">Structured Requirements</a> (or<a title="interaction design and structured requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/"> including interaction design</a>) &#8211; this simple approach (and diagram) puts everything into perspective, from business goals to detailed specifications and to test plans and implementation.</li>
<li><img src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" alt="structured requirements" width="567" height="450" /></li>
<li><a title="ishikawa fishbone diagrams" href="http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/">Ishikawa Diagrams</a> &#8211; demonstrate the cause-and-effect relationships that articulate <em>why</em> something is important to your stakeholders.</li>
<li><img src="http://sehlhorst.smugmug.com/photos/336990281_DCWqc-L.gif" alt="ishikawa diagram" width="450" height="227" /></li>
<li><a title="uml class diagrams for documenting requirements" href="http://tynerblain.com/blog/2008/03/06/requirements-class-diagrams-1/">Class Diagrams</a> &#8211; an explicit and expressive way to describe the business domain, providing context for your requirements.</li>
<li><img src="http://www.smugmug.com/photos/264426677_ecG4B-L.gif" alt="class diagram" width="316" height="132" /></li>
<li><a title="process flow vs use case" href="http://tynerblain.com/blog/2007/03/19/use-case-vs-process-flow-1/">Process Flows</a> &#8211; there are many ways to do describe processes, from simple flow charts and <a title="asynchronous process diagrams" href="http://tynerblain.com/blog/2007/11/19/asynchronous-processes/">sequence diagrams</a> to <a title="introduction to BPMN" href="http://tynerblain.com/blog/2006/07/18/foundation-series-business-process-modeling/">BPMN</a> process models (<a title="bpmn tutorial" href="http://tynerblain.com/blog/category/business-process-modeling/">24-article tutorial</a> &amp; <a title="visio bpmn template" href="http://tynerblain.com/blog/2006/09/26/bpmn-stencils/">free visio template</a>).</li>
<li><img src="http://sehlhorst.smugmug.com/photos/223395905-O.jpg" alt="process flow" width="207" height="507" /> and <img src="http://sehlhorst.smugmug.com/photos/223395953-O.jpg" alt="sequence diagram" width="349" height="362" /> and <img src="http://sehlhorst.smugmug.com/photos/95927313-O.png" alt="bpmn example" width="361" height="649" /></li>
<li><a title="use cases and use case scenarios" href="http://tynerblain.com/blog/2007/04/10/what-are-use-case-scenarios/">Use Case Diagrams</a> &#8211; no, not the UML use case diagrams, they are next to useless.  These are <a title="use cases and test cases" href="http://tynerblain.com/blog/2007/04/12/use-case-vs-test-case/">simple sketches</a> that make a complex use case crystal clear.</li>
<li><img src="http://sehlhorst.smugmug.com/photos/142803767-M.png" alt="use case diagram" width="131" height="234" /></li>
<li><a title="statecharts" href="http://tynerblain.com/blog/2007/03/22/statecharts-and-business-rules/">State Transition Charts</a> &#8211; show how objects can change their state over time (an order is placed, then paid, then filled or cancelled)</li>
<li><img src="http://sehlhorst.smugmug.com/photos/137737585-O.png" alt="state transition diagram" width="268" height="496" /></li>
</ul>
<p>What are your favorites (and why)?</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Get+an+Edge+With+Visual+Communication+http://bit.ly/A4xa1+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2008/08/06/get-an-edge-with-visuals/&amp;t=Get+an+Edge+With+Visual+Communication" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2008/08/06/get-an-edge-with-visuals/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Defining Problems With Cause And Effect Diagrams</title>
		<link>http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/</link>
		<comments>http://tynerblain.com/blog/2008/05/27/cause-and-effect-diagrams/#comments</comments>
		<pubDate>Wed, 28 May 2008 02:09:23 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Ishikawa Diagram]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements Models]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[cause and effect diagram]]></category>
		<category><![CDATA[fish bone diagram]]></category>
		<category><![CDATA[fishbone diagram]]></category>
		<category><![CDATA[ishikawa]]></category>
		<category><![CDATA[problem statement]]></category>

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

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/11/05/requirements-writing-synonyms/</guid>
		<description><![CDATA[
A rose by any other name&#8230;
When we&#8217;re learning how to write in high school and college, we&#8217;re taught that synonyms make our writing more exciting.  In fact, not using synonyms can make our prose clumsy and awkward.
When it comes to requirements, the last thing you want to do is use synonyms.  Except sometimes.

Writing [...]]]></description>
			<content:encoded><![CDATA[<p><img title="roses, by any other name" alt="roses, by any other name" src="http://sehlhorst.smugmug.com/photos/217984674-M.jpg" /></p>
<p>A rose by any other name&#8230;</p>
<p>When we&#8217;re learning how to write in high school and college, we&#8217;re taught that synonyms make our writing more exciting.  In fact, not using synonyms can make our prose clumsy and awkward.</p>
<p>When it comes to requirements, the last thing you want to do is use synonyms.  Except sometimes.</p>
<p><span id="more-592"></span></p>
<h2>Writing Stylish Requirements</h2>
<p>One of the lesser appreciated <em>rules</em> of writing good requirements is to <a title="Writing requirements with style" href="http://tynerblain.com/blog/2007/01/05/writing-stylish-requirements/">write requirements with good style</a>.</p>
<p>Your writing style needs to take into account the fact that not all of the readers of your requirements will have English (or whatever language you write in) as their primary language.  The readers may have as a primary language one that does not have the same idioms, constructs, and &#8220;common&#8221; terms as the language of the requirements.  Those readers are already at a disadvantage, having to reverse-engineer colloquialisms, decode complex sentence structures, and look up the definitions of terms that they don&#8217;t know.</p>
<p>Even readers who share a common language [Great joke from Eddie Izzard: "Britain and America are two countries separated by a common language"] probably will not share the same idioms and colloquialisms.</p>
<p>Writing clearly and unambiguously requires that you use more formal language when writing requirements.  Synonyms may make for better style when writing prose, however, they can confound your readers and increase the risk of misunderstanding when used in requirements documents</p>
<h2>Avoid Synonyms</h2>
<p>Synonyms<a title="ambiguous requirements" href="http://tynerblain.com/blog/2006/02/14/writing-requirements-unambiguously/"> introduce ambiguity</a> into your requirements.  Consider the following examples:</p>
<ul>
<li>The user will have added items to her shopping cart while browsing the website.  When she is ready to purchase the items in her cart, she will click on the &#8220;cart&#8221; icon.  All of the items in the basket must be priced with the most recent pricing rules.</li>
</ul>
<p>Are you pricing the items in the basket, the cart, or the <em>shopping</em> cart?  That may seem obvious to you, since most of us are familiar with the <em>shopping cart</em> metaphor in e-commerce transactions.  What about the following?</p>
<ul>
<li>A round bit must not rotate within the head when the vice is adequately tightened.</li>
<li>The vice will be tightened with a key measuring no more less than two inches in diameter.</li>
<li>A moment of 10 inch-lbs applied to the chuck will be considered adequate for tightening.</li>
</ul>
<p>If you don&#8217;t know that <em>chuck</em> and <em>key</em> are synonyms, you&#8217;re in trouble.  If you don&#8217;t realize that the <em>vice</em> and the <em>head</em> can also be considered synonyms in this context, you are in more trouble.  You should use the same terms throughout your requirements document, when referring to the same object or concept.</p>
<p>Except when you should use different terms for the same objects.</p>
<h2>Embrace Synonyms</h2>
<p>There are times, however, when synonyms can bring clarity to an otherwise confusing document.  This effect is less powerful than introducing confusion, so when in doubt, don&#8217;t use synonyms.</p>
<p>Synonyms provide clarity when used in a particular context.  If you sell cars, then you have a customer.  Imagine you also provide financing (products) for your customers.  In the context of negotiating a price for the car, the customer is a customer.  In the context of negotiating an interest rate, the customer is also a borrower.</p>
<p>Validating the requirements for the lending process may be much easier when using the word &#8220;borrower&#8221; instead of &#8220;customer.&#8221;  What you are striving for is clarity of language, and when interacting with stakeholders who have always used the term <em>borrower</em>, you can use that term in your documentation.</p>
<p>The key is to identify the synonym in the <a title="writing a glossary of terms" href="http://tynerblain.com/blog/2007/10/29/glossary-of-terms/">glossary of terms</a>.  You have to identify the synonym as being associated with both the equivalent term, and the context in which the synonym applies.</p>
<p>The customer at the car dealership can be the purchaser, the borrower, and the driver.  It all depends on context.  When you manage the synonyms within your glossary you can use the different terms.  But you should only use them when they reduce ambiguity &#8211; not when they introduce it.  Even with our example, the <em>customer</em> and the <em>borrower</em> might be different people &#8211; so make sure that the synonymous terms represent the same object, and not <em>potentially</em> different ones.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Requirements+Writing+Style+and+Synonyms+http://bit.ly/y7H8X+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/11/05/requirements-writing-synonyms/&amp;t=Requirements+Writing+Style+and+Synonyms" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/11/05/requirements-writing-synonyms/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why Separate Rules from Requirements</title>
		<link>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/</link>
		<comments>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 03:41:47 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Business Rules]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[business requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements documentation]]></category>
		<category><![CDATA[rules and requirements]]></category>
		<category><![CDATA[rules documentation]]></category>
		<category><![CDATA[volatile rules]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/</guid>
		<description><![CDATA[
Separation of business rules from requirements is a good thing.  Not because of semantic distinctions, but because it allows you to write better software, write it faster, and change it more easily.  This article is a response to an excellent comment on our recent article about hidden business rules.  Thanks for challenging [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="separate but equal" title="separate but equal" src="http://sehlhorst.smugmug.com/photos/194567140-M.jpg" /></p>
<p>Separation of business rules from requirements is a good thing.  Not because of semantic distinctions, but because it allows you to write better software, write it faster, and change it more easily.  This article is a response to an excellent comment on our recent article about <a title="business rules hidden in use cases" href="http://tynerblain.com/blog/2007/09/03/business-rules-and-use-cases/">hidden business rules</a>.  Thanks for challenging the idea &#8211; it either eliminates it from discourse or makes it stronger, and we all benefit.  Here&#8217;s an attempt to make it stronger.</p>
<p><span id="more-568"></span></p>
<h3>Goals of Separating Rules from Requirements</h3>
<p>Writing software ultimately involves coding up an implementation that both satisfies the goals of the customers and enforces the rules by which that customer chooses to achieve the goals.  This is the traditional way to write software &#8211; define the goals, and all of the enhancing, constraining, and clarifying details, then implement it.  There are some inefficiencies to this approach, but they are in the &#8220;getting great at writing software&#8221; bucket, not the &#8220;avoiding failure at writing software&#8221; bucket.  Consider this the <em>medium priority </em>goal of separating rules from requirements.  In a Kano analysis, this is a <em>more-is-better</em> benefit.</p>
<p>When we set out to write software, it is with <em>intent</em>.  That intent encompasses processes, rules, and requirements.  The combination of all of these could be described as a summation of <em>intent</em>.</p>
<p>Maintaining software is expensive.  When you design an implementation, you (should) think about what is likely to change when making your design decisions.  The greater the probability or frequency of change, the easier it should be to make those changes.</p>
<p>Intent changes.  Agile processes start with a premise that even if the <em>true intent</em> were fixed, our understanding of intent would change, as soon as we get what we asked for.  In practice, both our understanding of intent, and the actual intent change over time.  To make the language less cumbersome, for the rest of this article, when I refer to <em>intent</em> it is our understanding of intent &#8211; and changes to intent represent both changes in the true intent, and changes in our understanding of it.</p>
<p>When developers think about <em>software maintenance</em>, they often think about it in terms of bugs and features.  What needs to be fixed, and what needs to be added (or removed)?  To make a significant impact on the cost of maintenance, we have to take that perspective to the next level.  Set aside fixing bugs (where bugs are &#8220;does not work per the requirements&#8221;), and think about the new features.  The new features truly represent new intent.  Or in an agile process, it may be the <em>recently revalidated, previously identified, next most valuable</em> intent.</p>
<p>In both cases, intent is a moving target, and changes in intent drive changes to the existing software.  To minimize the cost of making those changes, our implementation should be structured such that the most common changes are trivial to implement &#8211; ideally, they won&#8217;t even require changes to the code.  When you can change the behavior of an application without recompiling the application, you significantly reduce the effort required to define,develop,test and deploy an update to the application.  And you can also dramatically reduce the time required to make the change.</p>
<p>This is the <em>high priority</em> goal of separating rules from requirements: increase the speed, and decrease the cost of changing software to match changes in intent.  I&#8217;ll say it again in bold.</p>
<p><strong>The primary goal of separating rules from requirements is to increase the speed and decrease the cost of updating software to match changes in intent.</strong></p>
<p>While the cost reduction part of it is nice, it is the speed element that can be the most compelling.  James Taylor and Neil Raden wrote about this in their book, <a title="Smart Enough Systems" href="http://www.smartenoughsystems.com/wp/main"><em>Smart Enough Systems</em></a>.  We accept the premise that abstracting the implementation of <em>volatile</em> rules from the rest of the software provides benefits in speed of delivery on an ongoing basis.  And that is the primary driver for the separation of rules from requirements.  If you don&#8217;t accept that premise, then the only benefit comes from improved documentation style, structure, and standardization &#8211; all somewhat subjective benefits.</p>
<h2>Visualizing The Benefits</h2>
<p>Here&#8217;s a timeline showing the benefit of <em>agility</em> &#8211; being able to deploy and update faster.</p>
<p><img alt="timeline" title="timeline" src="http://sehlhorst.smugmug.com/photos/194677983-M.gif" /></p>
<p>The maroon curve represents &#8220;traditional&#8221; deployment &#8211; where the implementation of volatile rules is no different than the implementation required to support requirements.  It will take longer to deploy initially (but not necessarily much longer), and it will take longer to make changes (when the rules have been changed).  The upward sloping line starts displaying <em>accumulated</em> value as soon as the software is released.  When the next iteration is released, the rate of value accumulation will go up.  There is one iteration displayed in the timeline.</p>
<p>The green curve represents deployment with volatile rules abstracted in the implementation.  This could be as low-tech as implementing field-level validations in a properties file (that is interpreted by the application), or as high-tech as integration with a rules-processing engine or service.  This implementation begins accumulating value a little bit earlier, but at the same rate (keeping prioritization and other factors equivalent).  The first iteration happens more quickly, so the slope of the curve increases earlier.  The length of iteration has been shortened enough that a second iteration can also happen.  This further increases the relative rate of accumulation of value.  The longer this pattern goes on, the greater the disparity.</p>
<h2>Encouraging This Behavior</h2>
<p>Abstracting the rules from the requirements will make it easier for developers to absorb and design for those rules.  Further, once the rules have been separated from the requirements, it is easier to identify which rules are the volatile rules.  And that enables developers to make smart decisions about when to abstract the implementation, and when to embed it.</p>
<p>You could abstract <em>only</em> the volatile rules from the requirements, and leave other rules embedded within the requirements.  There are three good reasons for separating <em>all</em> of the rules from the requirements.</p>
<p>The first reason is one of <a title="consistency in requirements" href="http://tynerblain.com/blog/2006/06/09/big-ten-rules-writing-consistent-requirements/">consistency</a> of documentation, and arguably <a title="well styled requirements" href="http://tynerblain.com/blog/2007/01/05/writing-stylish-requirements/">style</a>.  Your communication will be more effective when consumers of the documents know that <em>all</em> rules are treated in the same way.  If developers have to look in the requirements for some rules, and a table of rules for others, they are more likely to miss something.  Subject matter experts who are validating the rules will also be able to do that job more effectively when they are documented similarly.</p>
<p>The second reason is that by separating all of the rules, you will better be able to identify the ones that are volatile.  You can more easily evaluate the rules as a whole, and formally or informally characterize their frequency and likelihood of change.  The rules for management of available products and the calculation of risk in a portfolio are likely to change frequently.  The rules that represent FAA regulations are likely to change infrequently.  You can better assess this data when dealing with a cohesive set of rules.</p>
<p>The third reason is that separation of the rules will imply to developers that they should at least consider separation of the implementation.  Especially if, in your documentation approach, you identify which rules are volatile.</p>
<h2>Conclusion</h2>
<p>There are differences in rules and requirements.  While the content of how they are used when developing software may be only semantic, there are practical benefits to separating them.  Separation of rules and requirements in a documentation approach will make it easier for your development team to implement solutions that separate volatile rules from the rest of the code.</p>
<p>And this separation will make the software more valuable, more quickly.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Why+Separate+Rules+from+Requirements+http://bit.ly/TqND+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/&amp;t=Why+Separate+Rules+from+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/09/11/why-separate-rules-from-requirements/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Effective Communication of Requirements</title>
		<link>http://tynerblain.com/blog/2007/03/07/effective-communication-of-requirements/</link>
		<comments>http://tynerblain.com/blog/2007/03/07/effective-communication-of-requirements/#comments</comments>
		<pubDate>Thu, 08 Mar 2007 03:00:19 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[active listening]]></category>
		<category><![CDATA[alistair cockburn]]></category>
		<category><![CDATA[communication of requirements]]></category>
		<category><![CDATA[effective communication]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[people trump process]]></category>
		<category><![CDATA[product requirements management]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/03/07/effective-communication-of-requirements/</guid>
		<description><![CDATA[Effective communication of requirements requires more than documentation and broadcasting.  Effective communication requires interaction and collaboration.  Alistair Cockburn addresses this in his analysis of project successes and modes of communication.]]></description>
			<content:encoded><![CDATA[<p><img title="whiteboard" src="http://sehlhorst.smugmug.com/photos/50445674-M.jpg" alt="whiteboard" /></p>
<p>Effective communication of requirements requires more than documentation and broadcasting.  Effective communication requires interaction and collaboration.  Alistair Cockburn addresses this in his analysis of project successes and modes of communication.</p>
<p><span id="more-426"></span></p>
<p><strong>Alistair&#8217;s Article</strong></p>
<p>Alistair <a title="People and Projects" href="http://alistair.cockburn.us/index.php/Characterizing_people_as_non-linear,_first-order_components_in_software_development">analysed three dozen projects</a> over the course of two decades.  He was trying to find common approaches and processes that would correlate with or predicate software project success.  What he found instead was that people and communication had more of an influence over the success of a project than process.  This may be the source of the &#8220;people trump process&#8221; quote.</p>
<p>Hat tip to <a title="The Shade Tree Developer" href="http://codebetter.com/blogs/jeremy.miller/default.aspx">Jeremy Miller</a>, The Shade Tree Developer, for the reference, as part of his excellent article describing <a title="The ideal software team" href="http://codebetter.com/blogs/jeremy.miller/archive/2007/01/29/Once-Upon-a-Team.aspx">the ideal software team</a>.<br />
In his article, he presents a diagram of different forms of communication and their effectiveness.  We&#8217;ve redrawn Alistair&#8217;s diagram here.</p>
<p><img title="effectiveness of communication" src="http://sehlhorst.smugmug.com/photos/134348293-M.png" alt="effectiveness of communication" /></p>
<blockquote><p>The most effective communication is person-to-person, face-to-face, as with two people at the whiteboard. As we remove the characteristics of two people at the whiteboard, we see a drop in communication effectiveness. The characteristics that get lost are:</p>
<ul>
<li>Physical proximity. I am at a loss to explain why, but being physically close to the other person affects the communication. Whether it is three-dimensionality, timing, smell, or small visual cues, physical proximity matters.</li>
<li>Multiple modalities. People communicate through gestures as well as words, often making a point by gesturing, raising an eyebrow or pointing while speaking.</li>
<li>Vocal inflection and timing. By speeding up, slowing down, pausing, or changing tones, the speaker emphasizes the importance of a sentence, or perhaps its surprise value.</li>
<li>Real-time question-and-answer. Questions reveal the ambiguity in the speaker&#8217;s explanation, or the way in which the explanation misses the listener&#8217;s background. The timing of the questions sets up a pattern of communication between the parties.</li>
</ul>
<p><cite><a title="Communication Analysis" href="http://alistair.cockburn.us/index.php/Characterizing_people_as_non-linear,_first-order_components_in_software_development">Characterizing people as non-linear, first-order components in software development</a>, Alistair Cockburn</cite></p></blockquote>
<p><strong>Visualizing The Analysis</strong></p>
<p>When you look at the characteristics Alistair identifies, and overlay them on the diagram, you see the following:</p>
<p><img title="characteristics of effective communication" src="http://sehlhorst.smugmug.com/photos/134351204-M.png" alt="characteristics of effective communication" /><br />
The forms of communication can be clustered into two groups, one clearly more effective than the other.  Within each group, there are more distinctions.</p>
<ul>
<li><strong>Physical Presence vs. Artifacts</strong>.  Collaborating in front of a whiteboard or on the phone is more effective than an email exchange.  While eMail and instant messaging allow for near real-time interaction, they lack the cues that come from physical interaction.  Our brains are wired for listening and looking as the means to communicate.  You can absorb information and express ideas through artifacts, but it is less efficient.  Artifacts that you create lack the instinctive elements of nuance in communication.  <a title="Using active listening when gathering requirements" href="http://tynerblain.com/blog/2006/11/13/doubling-interviewing-effectiveness/">Active listening skills</a> are refinements of what we&#8217;re already wired to do &#8211; and they make physical communication more effecient than when you write something down.</li>
<li><strong>Interaction vs. Broadcasting</strong>.  Strikingly distinctive is the difference between interaction and broadcasting.  It is the difference between a community and an audience.  Intuitively, you know that &#8220;throw it over the wall&#8221; is bad.  Alistair&#8217;s research validates this.  Determining the <a title="Writing Correct Requirements" href="http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/">correctness of requirements</a> requires interaction.  You can use <a title="Verifying Requirement Correctness with Use Cases" href="http://tynerblain.com/blog/2006/07/10/verify-correct-requirements/">use cases to verify requirement correctness</a> &#8211; but doing it without interaction is less effective.</li>
</ul>
<p><strong>Conclusion</strong></p>
<p>Product requirements management requires communication.  Different teams use different processes, and all processes involve communication.  Effective communication must be interactive, not broadcast.  Physical communication is more effective than communication with artifacts.</p>
<p>Artifacts serve a purpose &#8211; providing context, continuity, and a record of what has gone before.  They are important for those goals, but relying on them as a communication vehicle in the absence of interaction will reduce the effectiveness of your team.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Effective+Communication+of+Requirements+http://bit.ly/102BOE+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/03/07/effective-communication-of-requirements/&amp;t=Effective+Communication+of+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/03/07/effective-communication-of-requirements/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Writing Stylish Requirements</title>
		<link>http://tynerblain.com/blog/2007/01/05/writing-stylish-requirements/</link>
		<comments>http://tynerblain.com/blog/2007/01/05/writing-stylish-requirements/#comments</comments>
		<pubDate>Sat, 06 Jan 2007 04:00:39 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Writing]]></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[stylish requirements]]></category>
		<category><![CDATA[writing business requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/01/05/writing-stylish-requirements/</guid>
		<description><![CDATA[You knew it would happen eventually, the big ten rules of writing requirements has become the big twelve rules. Maybe scope creep isn't such a bad thing after all. Writing style plays an important role in writing requirements too.]]></description>
			<content:encoded><![CDATA[<p><img alt="big ten rules" title="big ten rules" src="http://sehlhorst.smugmug.com/photos/128628702-M.png" /></p>
<p>You knew it would happen eventually, the big ten rules of writing requirements has become the big twelve rules.  Maybe scope creep isn&#8217;t such a bad thing after all.  Writing style plays an important role in writing requirements too.</p>
<p><strong>Background</strong></p>
<p>The original series started with a summary of the <a title="Writing Good Requirements - Ten Rules" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">ten rules to writing good requirements</a>, and then we followed up with ten articles with details of each rule. Then we added another one &#8211; writing correct requirements.  Today&#8217;s article brings us to twelve by adding an element of style.<br />
<strong>The Big <strike>Ten Eleven</strike> Twelve Rules of Writing Requirements</strong></p>
<ol>
<li><a title="Valuable" href="http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/">Valuable</a></li>
<li><a title="Concise" href="http://tynerblain.com/blog/2006/05/31/writing-concise-requirements/">Concise</a></li>
<li><a title="Design Free" href="http://tynerblain.com/blog/2006/06/02/writing-design-free-requirements/">Design Free</a></li>
<li><a title="Attainable" href="http://tynerblain.com/blog/2006/06/07/writing-attainable-requirements/">Attainable</a></li>
<li><a title="Complete" href="http://tynerblain.com/blog/2006/06/08/writing-complete-requirements/">Complete</a></li>
<li><a title="Consistent" href="http://tynerblain.com/blog/2006/06/09/big-ten-rules-writing-consistent-requirements/">Consistent</a></li>
<li><a title="Unambiguous" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">Unambiguous</a></li>
<li><a title="Verifiable" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">Verifiable</a></li>
<li><a title="Atomic" href="http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/">Atomic</a></li>
<li><a title="Passionate" href="http://tynerblain.com/blog/2006/06/15/writing-passionate-requirements/">Passionate</a></li>
<li><a title="Writing Correct Requirements" href="http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/">Correct</a></li>
<li>Stylish</li>
</ol>
<p><strong>Stylish Requirements</strong></p>
<p><img alt="buzzhead" title="buzzhead" src="http://sehlhorst.smugmug.com/photos/121067011-M.jpg" /></p>
<p>For <a title="Buy Buzz at Amazon" href="http://www.amazon.com/exec/obidos/ASIN/B000933FQO/tynerblain-20">Buzz Lightyear</a>, in the movie <em>A Toy Story</em>, the difference between falling and flying was simply a matter of style.</p>
<p>Style can also be the difference between a well-crafted requirement and one that is hard to read.  And style, applied consistently across requirements makes it easier to view them as a whole, and identify gaps and inconsistencies.  This ease of comprehension matters when trying to achieve correct, consistent, complete requirements.</p>
<p><strong>Elements of Style</strong></p>
<p>Usually, when we talk about writing style, we are talking about <a title="Great podcasts and articles about grammar rules" href="http://grammar.qdnow.com/">grammar rules</a>.  Documenting requirements requires a specialized, almost esoteric form of writing.  And this form of writing benefits from applying some consistent elements of style.  We should use the same style when writing all of the requirements for a given product or project &#8211; and ideally for all projects within a company.</p>
<p>Styles are like elbows &#8211; everybody&#8217;s got them &#8211; so it isn&#8217;t reasonable to expect everyone to use the same style.  Develop a style, and use it.</p>
<p>Here are some of the ingredients that go into our style recipe:</p>
<ul>
<li>Thou Shalt</li>
<li>Prioritize Explicitly</li>
<li>Pick The Best Perspective</li>
<li>Non-Negative Waves</li>
<li>Reference, Don&#8217;t Repeat</li>
<li>Gender Indifference</li>
<li>Syntactic Parallelism</li>
</ul>
<p><strong>Thou Shalt</strong></p>
<p><em>The analyst shall use the word shall to express a requirement</em>.  Other acceptable words are <em>must</em> and <em>will</em>.  When writing requirements, use phrases like &#8220;The system shall process&#8230;&#8221; or &#8220;The user shall be able to&#8230;&#8221;</p>
<p><strong>Prioritize Explicitly</strong></p>
<p>In <a title="Karl's book at Amazon" href="http://www.amazon.com/exec/obidos/ASIN/0735622671/tynerblain-20"><em>More About Software Requirements</em></a> by Karl Weigers, he pointed out his dissatisfaction with the way some teams capture prioritization <em>implicitly</em> in their requirements through the use of <em>shall / should / may</em> language.  &#8220;Shall&#8221; requirements are high priority, &#8220;should&#8221; requirements are medium priority, and &#8220;may&#8221; requirements are low priority.</p>
<p>Ugh.  What a horrible idea.  I had not seen anyone doing this.  Karl&#8217;s right, this is an awful idea.  Especially when teams involve people who don&#8217;t <a title="When No Means Yes - Cultural Barriers to Communication" href="http://tynerblain.com/blog/2005/12/11/when-%E2%80%98no%E2%80%99-means-%E2%80%98yes%E2%80%99/">share the same native language or culture</a>.  Priority should be called out explicitly.</p>
<p>By the way, Karl&#8217;s book is great.  If you gather, write, or manage requirements, you should own it.</p>
<p><strong>Pick The Best Perspective</strong></p>
<p>Some requirements are written &#8220;The system shall&#8230;&#8221; and others are written &#8220;The user shall&#8230;&#8221;  These two approaches represent two different perspectives.  In an ideal world, one perspective or the other would be <em>most </em>appropriate for all of the requirements within a document.  We would also have free energy, world peace, and total enlightenment.</p>
<p>We could force ourselves to consistently apply the same perspective for all of our requirements.  Jumping through linguistic hoops to write this way would violate our rule of writing clear and concise requirements.  For each requirement, we choose either &#8220;system&#8221; or &#8220;user&#8221; as most appropriate.</p>
<ul>
<li>The system shall process invoices nightly.</li>
<li>The user shall input their shipping address.</li>
</ul>
<p>Imagine trying to write either requirement the other way (replacing <em>system </em>or <em>user </em>with <em>user </em>or <em>system </em>respectively).</p>
<p><strong>Non-Negative Waves</strong></p>
<p>Another great suggestion from Karl.  Don&#8217;t write requirements in the negative, write them in the positive.  A couple examples:</p>
<ul>
<li>&#8220;The system shall not permit orders with more than 1000 items.&#8221;  Write this as &#8220;The system shall only permit orders with 1000 or fewer items.&#8221;</li>
<li>&#8220;The user shall not be able to access data to which he does not have sufficient authorization.&#8221;  Write this as &#8220;The user shall only be able to access authorized data.&#8221; [Note - additional information about <em>authorization</em> would be required to make this complete.  See the next tip.]</li>
</ul>
<p><strong>Reference, Don&#8217;t Repeat</strong></p>
<p>The same concept, construct, or requirement may be repeated in multiple places within the requirements for a product.  It should not be duplicated, it should be referenced.  In the previous example, we used the requirement &#8220;The user shall only be able to access authorized data.&#8221;  The will be other requirements around how authorization is defined and managed.</p>
<p>We could duplicate an explanation of what <em>authorization</em> implies in each place where we reference it.  What would be more manageable would be to reference a single explantion of <em>authorization</em>.</p>
<p><strong>Gender Indifference</strong></p>
<p>A hot topic for grammarians is the proper use of gender in documents.  Should we use &#8220;he&#8221; or &#8220;she&#8221; or &#8220;s/he&#8221; or &#8220;they?&#8221;  What about &#8220;one&#8221; or &#8220;the user?&#8221;  This is a matter of preference.  We prefer indifference.</p>
<p>We arbitrarily define the gender of any particular user as male or female within a requirement or example.  We try and maintain a balance by having roughly half of our entities be female, and half male.  In my personal opinion, this makes for stronger writing than using the contrived <em>s/he</em> or a plural form like <em>they</em>.</p>
<p>When defining actors and use cases, the actor&#8217;s gender is generally not specified.  The actor is described as a role.  The text of the use case, especially when using an <a title="Informal Use Cases" href="http://tynerblain.com/blog/2005/12/21/use-case-series-informal-use-case/">informal use case</a>, is where this style is applied.  We maintain <em>gender-consistency</em> for any particular actor in a single use case, we don&#8217;t try and assign genders to actors and maintain consistency across all of the use cases.</p>
<p>When <a title="How to Create Personas" href="http://tynerblain.com/blog/2006/03/22/how-to-create-personas-for-goal-driven-development/">defining personas</a> and writing user stories, we will match the gender usage in the story to the gender of our persona.</p>
<p><strong>Syntactic Parallelism</strong></p>
<p>This is an obnoxiously complex way of saying &#8220;write with consistent structure&#8221; &#8211; but it at least got you to scroll down and read this far.</p>
<p>&#8220;He came, he saw, he conquered&#8221; is much more powerful than &#8220;He came, he saw, his foes were conquered.&#8221;  Likewise, &#8220;The system shall process the request, retrieve the results, and present them to the user&#8221; is better than &#8220;The system shall process the request and retrieve the results and the user shall view them.&#8221;  [Note: The example above violates the <em>atomicity</em> rule, but is illustrative.]</p>
<p><strong>Conclusion</strong></p>
<p>Style is not something that can be quantified any better than art can be quantified.  The best we can do is follow guidelines and apply our skills.  And as good writers will attest, these are guidelines.  It is better to violate them when appropriate than to rigidly adhere to them in spite of the awkwardness of the results.</p>
<p>Having a consistent style will help with <a title="Writing for the Purpose of Reading" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">readability of the requirements</a>.  Define your style and stick to it.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Writing+Stylish+Requirements+http://bit.ly/OkpGf+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/01/05/writing-stylish-requirements/&amp;t=Writing+Stylish+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/01/05/writing-stylish-requirements/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Logical Requirements</title>
		<link>http://tynerblain.com/blog/2006/12/04/logical-requirements/</link>
		<comments>http://tynerblain.com/blog/2006/12/04/logical-requirements/#comments</comments>
		<pubDate>Tue, 05 Dec 2006 04:50:41 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[ambiguous requirements]]></category>
		<category><![CDATA[complete requirements]]></category>
		<category><![CDATA[correct requirements]]></category>
		<category><![CDATA[documenting requirements]]></category>
		<category><![CDATA[incomplete requirements]]></category>
		<category><![CDATA[incorrect requirements]]></category>
		<category><![CDATA[logical requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements writing]]></category>
		<category><![CDATA[unambiguous requirements]]></category>
		<category><![CDATA[writing good requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/12/04/logical-requirements/</guid>
		<description><![CDATA[We talk about characteristics of good requirements, including completeness, correctness, and ambiguity.  But how do we assure that our requirements are complete, correct, and unambiguous?  Simple, Captain, with logic.]]></description>
			<content:encoded><![CDATA[<p><img title="spock" alt="spock" src="http://sehlhorst.smugmug.com/photos/114911255-M.jpg" /></p>
<p>We talk about characteristics of good requirements, including <a title="Writing Complete Requirements" href="http://tynerblain.com/blog/2006/06/08/writing-complete-requirements/">completeness</a>, <a title="Writing Correct Requirements" href="http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/">correctness</a>, and <a title="Writing Unambiguous Requirements" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">clarity</a>.  But how do we assure that our requirements are complete, correct, and unambiguous?  Simple, Captain, with logic.  And how do we improve our logical skills?</p>
<p><strong>Short Pitch For Logic</strong></p>
<p>Logical thinking helps us in many areas of life, but for this article, we&#8217;ll talk briefly about how logic helps us avoid incomplete, incorrect, and ambiguous requirements.</p>
<ul>
<li><strong>Incomplete Requirements</strong> &#8211; logic allows us to look at the whole, and develop an <em>intuition</em> about the completeness.  There are many models that can be used for capturing requirements, like the state-transition diagram that Seilevel uses (<a title="The state table" href="http://requirements.seilevel.com/blog/2005/12/requirements-model-1-state-table.html">state table</a>).  The state table works because it is rooted in logic.  Essentially, it is a visual representation that makes a specific type of oversight <em>scream at our frontal lobe</em> to be discovered.  Logic dictates that all transitions must be addressed (or explicitly prevented).</li>
<li><strong>Incorrect Requirements</strong> &#8211; logical inconsistency helps us identify when our requirements contradict themselves.  This is more effective when documenting highly interdependent processes.  Logic also allows us to apply domain knowledge, or <em>extra-domain</em> knowledge to the requirements we elicit.  If something is inconsistent with what appears to be (otherwise) similar from a different domain, logic helps us identify the incongruity, and <a title="Double your interviewing effectiveness" href="http://tynerblain.com/blog/2006/11/13/doubling-interviewing-effectiveness/">ask clarifying questions</a>.</li>
<li><strong>Ambiguous Requirements</strong> &#8211; Mavens help us identify when terms are ambiguous <em>in the context of</em> a domain.  Amateurs can apply logic to <a title="Ambiguous language" href="http://tynerblain.com/blog/2006/02/14/writing-requirements-unambiguously/">identify ambiguity in language</a>.  This parsing of speech is applicable in any domain.  And even more important when working on a team that doesn&#8217;t share the same primary <a title="When No Means Yes" href="http://tynerblain.com/blog/2005/12/11/when-%e2%80%98no%e2%80%99-means-%e2%80%98yes%e2%80%99/">language and idioms</a>.</li>
</ul>
<p><strong>Improving Our Logical Thinking</strong></p>
<p>One of the business analysts on my team shared a fantastic site with me last week.  The <a title="LSAT logic podcasts" href="http://www.princetonreview.com/podcasts/lsat.asp"><em>LSAT Logic in Everyday Life</em></a> podcast is a weekly(ish) podcast from the Princeton Review.  The author approaches current events and other everyday situations from the perspective of a logician.</p>
<p>The podcasts are intended to help people improve &#8220;the kinds of logical thinking tested on the LSAT.&#8221;</p>
<p>Well, it is the same kind of logical thinking that helps us write better requirements.  Each recording is about five minutes long &#8211; I&#8217;ve burned them onto a couple CDs that are in my car for the drive home from the airport.  The general theme, at least in the earlier episodes, is in exploring the logical fallacies of many different arguments, positions and conclusions.  Discussions about how to apply logic to strengthen and weaken arguments are also included.</p>
<p>As writers of requirements, we can benefit from this as well.  You should all listen to at least one of them, it only takes about five minutes.  I believe you&#8217;ll be very excited.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Logical+Requirements+http://bit.ly/j26P6+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/12/04/logical-requirements/&amp;t=Logical+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/12/04/logical-requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pairing Business Analysts</title>
		<link>http://tynerblain.com/blog/2006/11/20/pairing-business-analysts/</link>
		<comments>http://tynerblain.com/blog/2006/11/20/pairing-business-analysts/#comments</comments>
		<pubDate>Tue, 21 Nov 2006 05:03:18 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[business analysts]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[pair programming]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/11/20/pairing-business-analysts/</guid>
		<description><![CDATA[Pair programming is a bit of a foreign concept for many people in business.  A few years ago, it was foreign to most programmers too.  Pair programming is a powerful technique for software development because it allows two people to look at the same problem/solution from two different perspectives at the same time.  Would that same approach work for business analysis?]]></description>
			<content:encoded><![CDATA[<p><img alt="petronas towers" title="petronas towers" src="http://sehlhorst.smugmug.com/photos/111792647-M.jpg" /></p>
<p>Pair programming is a bit of a foreign concept for many people in business.  A few years ago, it was foreign to most programmers too.  Pair programming is a powerful technique for software development because it allows two people to look at the same problem/solution from two different perspectives at the same time.  Would that same approach work for business analysis?</p>
<p><strong>Pair Programming</strong></p>
<p>We haven&#8217;t written an <a title="Foundation Series Index" href="http://tynerblain.com/blog/foundation-series-index/">introductory article</a> on pair programming, and after reading what James Shore has <a title="pair programming" href="http://www.jamesshore.com/Agile-Book/pair_programming.html">written on pair-programming</a> as part of his book, <a title="The Art of Agile Development" href="http://www.jamesshore.com/Agile-Book/"><em>The Art of Agile Development</em></a>, there&#8217;s really no room for improvement.</p>
<blockquote><p>Pairing involves two programmers (or, less often, a programmer and a customer, tester, or other team member) working together to accomplish a single task. The person with the keyboard—the <em>driver</em>—focuses on the details of the task. He thinks tactically.  The other person—the <em>navigator</em>—keeps the big picture in mind, ensuring that the task fits into the project as a whole, looking for ways to improve design, and keeping track of team guidelines. She thinks strategically.</p>
<p><cite>James Shore</cite></p></blockquote>
<p>The interesting dynamic that makes this work is that the two programmers switch roles on a regular basis.  As frequently as every half hour.  Read this intro to get a better feel for it.<br />
[Segue: Please read, review, and <a title="Discussion Group" href="http://groups.yahoo.com/group/art-of-agile/">provide feedback</a> for James on his book.  It is awesome that he is doing the book this way, and you also get to read the early stages of a great book before most people.]</p>
<p><strong>Strategic and Tactical Programming</strong></p>
<p>Great programming is about both design and execution.  The navigation and the driving, as James puts it.  Having been a pair-programmer in a past life, I can attest to the power of this dynamic.  When I think about really powerful solutions and innovations, they have come from (or at the least been improved by) collaboration.</p>
<p>Even without pair-programming, we can get the same benefits through feedback and reviews of our designs and our code.</p>
<p>How does this apply to business analysis?</p>
<p><strong>Strategic and Tactical Documentation</strong></p>
<p>When we create <a title="Requirements Documents" href="http://tynerblain.com/blog/2006/08/24/alphabet-soup/">requirements documents</a>, <a title="Use Case Series" href="http://tynerblain.com/blog/2005/12/18/use-case-series-introduction/">use cases</a>, <a title="OOA" href="http://tynerblain.com/blog/2005/12/09/a-picture-is-worth-a-thousand-requirements/">object oriented diagrams</a>, and other artifacts, it is no different than programming.  Instead of source code being written for a compiler to read, our <a title="Writing for the purpose of reading" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">documents are written for a person to read</a>.  We just don&#8217;t have the benefit of a compiler to point out our grammar mistakes, a code-styler to suggest more <a title="Concise writing" href="http://tynerblain.com/blog/2006/05/31/writing-concise-requirements/">concise</a> ways to write or more <a title="Avoiding jargon" href="http://tynerblain.com/blog/2006/02/15/jargon-gone-amuck/">universal terms</a> to use, or a set of automated tests to identify <a title="Writing unambiguously" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">ambiguity</a> and <a title="Writing correct requirements" href="http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/">incorrectness</a>.  We have to get feedback the old-fashioned way, by reviewing our documents.  The ease with which stakeholders read our documents is analogous to the performance benchmarks for code.</p>
<p>The organization of our documents is analogous to the design of a programmers code.  The details we write are the embodiment of that design, just as code is the manifestation of the design.  There are significant parallels.</p>
<p>We should be able to benefit from pairing when writing requirements documents.</p>
<p><strong>The Biggest Improvements</strong></p>
<p>When I think about the biggest improvements that I&#8217;ve seen in the documents we are creating on our team for my current project, almost all of them have come from collaboration.  Formal and informal reviews of documents, brainstorming about how to represent a process, and discussions about the tradeoffs of documenting things in one way versus another.</p>
<p>This feels a lot like the code-reads we do as programmers.  People who have pair programmed consistently admit that it is better than the do-review-redo cycle of traditional development processes.  Would the same hold true for documenting requirements and processes?  What about any writing at all?</p>
<p>Here&#8217;s another quote from James:</p>
<blockquote><p>Pair programming produces code through conversation. As you drive or navigate, think out loud. Explain your assumptions, your short term goals, and any relevant history of the feature or project. If you&#8217;re confused about something, ask questions—the discussion may enlighten your partner as much as they do you.</p></blockquote>
<p>Sounds a lot like the best parts of the documentation process to me.</p>
<p><strong>What Do You Think?</strong></p>
<p>Do you think it would work?  Do you think you could sell it (justify the staffing of it)?  Is there a downside?</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Pairing+Business+Analysts+http://bit.ly/OtYGJ+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/11/20/pairing-business-analysts/&amp;t=Pairing+Business+Analysts" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/11/20/pairing-business-analysts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Writing Correct Requirements</title>
		<link>http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/</link>
		<comments>http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 05:15:39 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[business requirements documentation]]></category>
		<category><![CDATA[correct requirements]]></category>
		<category><![CDATA[good requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[product requirements]]></category>
		<category><![CDATA[requirement correctness]]></category>
		<category><![CDATA[requirements documentation]]></category>
		<category><![CDATA[software requirements]]></category>
		<category><![CDATA[writing business requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/</guid>
		<description><![CDATA[We ran a series called <em>Writing Good Requirements - The Big Ten Rules</em> in May 2006.  Bloggers are notorious for not being able to count.  We had ten rules at the time, and now we're adding an eleventh.  Writing Correct Requirements may have been the unwritten rule, but now we take a look at it.]]></description>
			<content:encoded><![CDATA[<p><img alt="Big Ten Logo" title="Big Ten Logo" src="http://sehlhorst.smugmug.com/photos/128628693-M.png" /></p>
<p>We ran a series called <em>Writing Good Requirements &#8211; The Big Ten Rules</em> in May 2006.  Bloggers are notorious for not being able to count.  We had ten rules at the time, and now we&#8217;re adding an eleventh.  Writing Correct Requirements may have been the unwritten rule, but now we take a look at it.</p>
<p><strong>Background</strong></p>
<p>The original series started with a summary of the <a title="Writing Good Requirements - Ten Rules" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">ten rules to writing good requirements</a>, and then we followed up with ten articles with details of each rule.  And now we add another one &#8211; writing correct requirements.</p>
<p><strong>The Big <strike>Ten</strike> Eleven Rules of Writing Requirements</strong></p>
<ol>
<li><a title="Valuable" href="http://tynerblain.com/blog/2006/05/30/writing-valuable-requirements/">Valuable</a></li>
<li><a title="Concise" href="http://tynerblain.com/blog/2006/05/31/writing-concise-requirements/">Concise</a></li>
<li><a title="Design Free" href="http://tynerblain.com/blog/2006/06/02/writing-design-free-requirements/">Design Free</a></li>
<li><a title="Attainable" href="http://tynerblain.com/blog/2006/06/07/writing-attainable-requirements/">Attainable</a></li>
<li><a title="Complete" href="http://tynerblain.com/blog/2006/06/08/writing-complete-requirements/">Complete</a></li>
<li><a title="Consistent" href="http://tynerblain.com/blog/2006/06/09/big-ten-rules-writing-consistent-requirements/">Consistent</a></li>
<li><a title="Unambiguous" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">Unambiguous</a></li>
<li><a title="Verifiable" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">Verifiable</a></li>
<li><a title="Atomic" href="http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/">Atomic</a></li>
<li><a title="Passionate" href="http://tynerblain.com/blog/2006/06/15/writing-passionate-requirements/">Passionate</a></li>
<li>Correct</li>
</ol>
<p><strong>Correct Requirements</strong></p>
<p>Correctness in requirements is simply about getting it right.  We wrote previously about how to apply <a title="Correct Requirements" href="http://tynerblain.com/blog/2006/07/10/verify-correct-requirements/">use cases to creating correct requirements</a>.  Writing requirements correctly is as much about getting accurate information as it is about accurately documenting the information we gather.</p>
<p>Correctness applies in a context.  &#8220;Are these the right requirements to achieve goal X?&#8221;  Verification is the process of verifying that we identified the right requirements to achieve a particular goal.  Validation, on the other hand is the process of <a title="Completeness Validation" href="http://tynerblain.com/blog/2006/07/06/requirement-completeness-validation-with-use-cases/">assessing requirement completeness</a>.  People often swap these terms as being nearly synonymous.</p>
<p><strong>Verification Techniques</strong></p>
<p>To verify that requirements are correct, we start by asking two simple questions.  Here&#8217;s an example for writing a software requirements specification.  Set aside for the moment that some people consider this to be <a title="Requirements vs Design" href="http://tynerblain.com/blog/2006/02/11/requirements-vs-design-which-is-which-and-why/">design</a>, although from a developer&#8217;s perspective, <a title="Requirements documents" href="http://tynerblain.com/blog/2006/05/11/requirements-documents-one-mans-trash/">it is a specification</a> (or requirement).  This serves as a good example for business analysts.</p>
<ul>
<li>Does each of these requirements contribute to achieving our goal?  If a requirement does not help us achieve the goal that it supports (in a <a title="Foundation Series on Structured Requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">structured requirements framework</a>), it is not a correct requirement.  Either the requirement is placed under the wrong goal, or it truly doesn&#8217;t belong.</li>
<li>Can our goal be achieved without these requirements?  If our goal can be achieved without the requirement, then it isn&#8217;t required.  &#8220;The system shall generate a report of all outstanding customer bills&#8221; is a requirement.  If the goal is &#8220;Identify a customer&#8217;s unpaid bills&#8221;, then &#8220;The system shall display any unpaid bills for a customer&#8221; is a more correct requirement, because the goal can be achieved without a report.</li>
</ul>
<p>A market requirement (useful to product managers) would be &#8220;Reduce the cost of accounts payable by 5%.&#8221;  There is an ideation step in going <a title="From MRD to PRD" href="http://tynerblain.com/blog/2006/02/09/mrd-to-prd-requirements-conversion/">from documenting market requirements to documenting product requirements</a>.  In that step, a product manager will decide how to approach, with her product, the reduction of accounts payable.  Consider the following approaches and requirements and their hypothetical <em>correctness</em> verification.</p>
<ul>
<li>Approach: Remind customers of outstanding bills.  Requirement: &#8220;The system shall generate past-due notices for all bills on the monthly anniversary of each bill.&#8221;  This requirement would not be correct if bills are issued with 90-day terms, because the bills are only due, not <em>past-due</em>.  We identify that this requirement is incorrect because of the semantics of past-due billing, and the hidden complexity of varying billing terms.</li>
<li>Approach: Relax outstanding debt by 5%.  Requirement:&#8221; The system shall reduce the outstanding balance of all past-due accounts by 5%.&#8221;  This requirement would reduce accounts payable amounts, but it would not address the <a title="Definition of Opportunity Cost" href="http://tynerblain.com/blog/2006/02/24/definition-of-opportunity-cost/">opportunity cost</a> of the missing funds.  Companies earn interest on credit balances, and pay them on debts.  By decreasing the amount owed, a company would not have any impact on the amount that it could have earned (or avoided paying) in interest.  This does reduce the size of the accounts payable amount, it does not achieve the goal.</li>
<li>Approach: Increase prices for high-risk customers.  Requirement: &#8220;The system shall adjust product prices per [referenced actuarial table], to reflect the risk of late payment.&#8221;  This would not reduce the cost of accounts payable, although it might increase the profitability of the product (and might not).  Since this doesn&#8217;t directly contribute to achieving the goal, the requirement is incorrect.</li>
</ul>
<p><strong>Context</strong></p>
<p>As the examples highlight, we have to understand how the market requirement works.  A knowledge of the billing rules for our customers, as well as an understanding of the cost of capital are both required.</p>
<p><strong>Conclusion</strong></p>
<p>Writing good requirements demands that the requirements be correct.  Correctness can only be identified with context and domain understanding.  Correctness can be determined by asking if a requirement achieves the goal, and is required to achieve the goal.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Writing+Correct+Requirements+http://bit.ly/ePBDb+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/&amp;t=Writing+Correct+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/10/30/writing-correct-requirements/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Monty Python and Software Requirements</title>
		<link>http://tynerblain.com/blog/2006/10/25/python-and-requirements/</link>
		<comments>http://tynerblain.com/blog/2006/10/25/python-and-requirements/#comments</comments>
		<pubDate>Thu, 26 Oct 2006 03:47:59 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[ambiguous requirements]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[gathering requirements]]></category>
		<category><![CDATA[holy grail]]></category>
		<category><![CDATA[holy grail requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[monty pythod]]></category>
		<category><![CDATA[monty python]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[requirements elicitation]]></category>
		<category><![CDATA[software requirements]]></category>
		<category><![CDATA[unambiguous requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/10/25/python-and-requirements/</guid>
		<description><![CDATA[The Monty Python troupe helps us remember five (no, three sir!) things about software requirements.  And now for something completely different...]]></description>
			<content:encoded><![CDATA[<p><img alt="Arthur and knights" title="Arthur and knights" src="http://sehlhorst.smugmug.com/photos/104352324-M.jpg" /></p>
<p><em>Monty Python and the Holy Grail</em> is one of the funnier movies ever made.  It was rereleased a couple years ago with digital remastering, deleted scenese, and lots of extras in <a title="two disk monty python" href="http://www.amazon.com/exec/obidos/ASIN/B000CRQX34/tynerblain-20">a two-disk version</a>.  The rest of this post will make you chuckle if you&#8217;ve seen the movie.</p>
<p><strong>Bugs Can Come From Anywhere</strong></p>
<p>Software <a title="Where Bugs come from" href="http://tynerblain.com/blog/2006/01/22/where-bugs-come-from/">bugs can come from any of several places</a> in the SDLC (software development lifecycle).</p>
<p><strong>SMEs That Aren&#8217;t Experts Give Bad Data</strong></p>
<p>&#8220;But how do you <em>know</em> she&#8217;s a witch?&#8221;<br />
<img alt="Interviewing session" title="Interviewing session" src="http://sehlhorst.smugmug.com/photos/104352348-M.jpg" /></p>
<p>When we<a title="Interviewing to gather requirements" href="http://tynerblain.com/blog/2006/01/15/how-to-interview-when-gathering-requirements/"> interview subject matter experts</a> and business owners, they may give us misleading or incorrect information.  They may lack a key insight or understanding, or they may oversimplify or overcomplicate the problem.</p>
<p><strong>Stakeholders Change Their Minds</strong></p>
<p>&#8220;Blue.  No, Yellow!  Aaaarrrrgh&#8221;<br />
<img alt="wants and needs" title="wants and needs" src="http://sehlhorst.smugmug.com/photos/104352366-M.jpg" /></p>
<p><a title="Beck and Cooper debate" href="http://tynerblain.com/blog/2006/03/07/interaction-design-explained-by-alan-cooper/">Kent Beck argues</a> that customers will not know what they want.  A SME needs to be able to clearly identify what they need.</p>
<p><strong>Poor Listening Skills Cause Miscommunication</strong></p>
<p>&#8220;Right.  We&#8217;re not to leave, unless Prince Herbert comes with us.&#8221;</p>
<p><img alt="misunderstood requirements" title="misunderstood requirements" src="http://sehlhorst.smugmug.com/photos/104352359-M.jpg" /></p>
<p>Even when our customer knows and expresses his requirements, we may not <a title="Listening tips" href="http://tynerblain.com/blog/2006/01/27/top-five-ways-to-be-a-better-listener/">listen correctly</a>.  Active listening is a key technique to avoiding this miscommunication.</p>
<p><strong>Ambiguous Documentation Prevents Communication</strong></p>
<p>&#8220;If he were dying, he wouldn&#8217;t have bothered to write &#8216;Aaaaaarrrrgh&#8217;.&#8221;<br />
<img alt="reading ambiguous requirements" title="reading ambiguous requirements" src="http://sehlhorst.smugmug.com/photos/104352363-M.jpg" /></p>
<p>We have to <a title="Writing unambiguous requirements" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">document our requirements unambiguously</a> if we hope for people to interpret them properly.  We also have to keep in mind that we are <a title="Writing to be read" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">writing for someone else to read</a> the docs eventually &#8211; not just taking dictation.  <a title="Communicating Intent with Implementation Teams" href="http://tynerblain.com/blog/2006/07/17/communicating-intent-with-implementers/">Writing for the implementation team</a> can be even harder when <a title="Four Models for Outsourcing" href="http://tynerblain.com/blog/2006/03/31/four-outsourcing-models-for-software-development/">outsourcing</a> &#8211; we limit our ability to clarify and reach a common understanding.</p>
<p>Back to our regularly scheduled programming&#8230;</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Monty+Python+and+Software+Requirements+http://bit.ly/1IOZGC+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/10/25/python-and-requirements/&amp;t=Monty+Python+and+Software+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/10/25/python-and-requirements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another Use For &#8216;Why?&#8217;</title>
		<link>http://tynerblain.com/blog/2006/10/24/another-use-for-why/</link>
		<comments>http://tynerblain.com/blog/2006/10/24/another-use-for-why/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 03:35:20 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Business Analysis]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software requirements specification]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[asking why]]></category>
		<category><![CDATA[documenting intent]]></category>
		<category><![CDATA[documenting justifications]]></category>
		<category><![CDATA[documenting requirements]]></category>
		<category><![CDATA[justifying requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements documentation]]></category>
		<category><![CDATA[requirements intent]]></category>
		<category><![CDATA[requirements justification]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/10/24/another-use-for-why/</guid>
		<description><![CDATA["Why?"  The question is our inspiration and our muse.  "Why?" is the justification for our requirements.  The key to identifying "What?" and "When?", which lead to "How?" and "How Much?"  But there is another use for "Why?" - communication of intent (with stakeholders and implementers).  Requirements documents are artifacts, but they are also dynamic documents.  By documenting "Why?" a requirement is a requirement, we make it easier for future readers to understand.]]></description>
			<content:encoded><![CDATA[<p><img title="Man Asking Why" alt="Man Asking Why" src="http://sehlhorst.smugmug.com/photos/105191131-M.jpg" /></p>
<p>&#8220;<a title="Why ask why?" href="http://tynerblain.com/blog/2005/12/13/everything-i-needed-to-know-i-forgot-in-kindergarden/">Why</a>?&#8221;  The question is our inspiration and our muse.  <a title="Using " href="http://tynerblain.com/blog/2006/02/21/the-reason-why/">&#8220;Why?&#8221; is the justification for our requirements</a>.  The key to <a title="Perpectives on Requirements " href="http://tynerblain.com/blog/2006/05/11/requirements-documents-one-mans-trash/">identifying &#8220;What?&#8221; and &#8220;When?&#8221;</a>, which lead to &#8220;How?&#8221; and &#8220;How Much?&#8221;  But there is another use for &#8220;Why?&#8221; &#8211; communication of intent (with <a title="Communicating with Stakeholders" href="http://tynerblain.com/blog/2006/07/14/communicating-intent-with-stakeholders/">stakeholders</a> and <a title="Communicating with Implementers" href="http://tynerblain.com/blog/2006/07/17/communicating-intent-with-implementers/">implementers</a>).  Requirements documents are artifacts, but they are also dynamic documents.  By documenting &#8220;Why?&#8221; a requirement is a requirement, we make it <a title="Writing for the purpose of reading" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">easier for future readers</a> to understand.</p>
<p><strong>Meeting Debriefing</strong></p>
<p>I was observing a meeting earlier this week where a member of my team was reviewing a &#8220;finalized&#8221; requirements document.  The requirements in that document were <a title="Requirements gathering tips" href="http://tynerblain.com/blog/2006/01/14/top-five-requirements-gathering-tips/">gathered</a> previously, and validated for both <a title="Writing Correct Requirements" href="http://tynerblain.com/blog/2006/07/10/verify-correct-requirements/">correctness</a> and <a title="Writing Complete Requirements" href="http://tynerblain.com/blog/2006/06/08/writing-complete-requirements/">completeness</a>.  This review, another step in the elicitation process, involved stakeholders who were not involved in previous sessions.  The meeting was not an efficient one.</p>
<p><strong>Inefficiency</strong></p>
<p>Over the course of two hours, the team reviewed and discussed no more than ten requirements.  The project is a <a title="Requirements for Migration Projects" href="http://tynerblain.com/blog/2006/03/09/software-requirements-for-migration-projects/">migration project</a> from a legacy system to a new solution.  There are <a title="Organizing a migration project" href="http://tynerblain.com/blog/2006/03/15/organizing-a-software-migration-project/">minimal process changes</a> in this phase of the project (and therefore the review is looking minimally at process re-engineering).</p>
<p>The following are some of the questions asked by participants in the review:</p>
<ul>
<li>What is the difference between those two [variations of] start dates?</li>
<li>Why do we need that information in the system?</li>
<li>Why can&#8217;t we simplify X to Y?</li>
</ul>
<p>The answers to these questions (each was asked multiple times about most of the requirements that were reviewed) generally involved relatively detailed explanations, hypothetical examples, and occasional diagramming of business object relationships to effectively communicate <em>why</em> the existing requirements had been written, and why they had been written <em>in the way they had been written</em>.</p>
<p><strong>Perception</strong></p>
<p>At the end of the meeting, one of the project sponsors expressed concern that a &#8220;final review&#8221; meeting was so ad-hoc and disorganized.  Our sponsor now has a fear that requirements are being missed, or documented incorrectly.</p>
<p>Anecdotally, there were no significant changes to those requirements as of the end of the meeting.  Why did we have to spend 20 man-hours to make no perceptable changes?</p>
<p>Because we didn&#8217;t document the answers to these questions the first time!</p>
<p><strong>Document Creation</strong></p>
<p>The creation of, and initial validation of the requirements document involved interviews, contextual inquiries, and side-by-side comparisons and gap-analysis with existing process documentation.  The resulting requirements were documented.</p>
<p>All of the questions that were raised in this meeting had been raised in previous sessions.  None of the answers had been included in the documentation.  And the overall project is large enough, and complex enough that people inconsistently remembered or completely forgot the justifications for the requirements.</p>
<p><strong>Documenting Why</strong></p>
<p>Including the justifications, scenarios or examples, snippets of business object models, and other supporting information would have prevented much of the debate.  If we had included the underlying &#8220;Why&#8221; data that drove the &#8220;What&#8221; data (the requirements) in our documentation, we would have avoided rehashing these same issues.</p>
<p>It isn&#8217;t enough to <a title="The reason why" href="http://tynerblain.com/blog/2006/02/21/the-reason-why/">ask why during elicitation</a> &#8211; we have to <a title="Documenting " href="http://tynerblain.com/blog/2006/07/14/communicating-intent-with-stakeholders/">document the justifications</a> along with the requirements.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Another+Use+For+%E2%80%98Why%3F%E2%80%99+http://bit.ly/Q9Rkl+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/10/24/another-use-for-why/&amp;t=Another+Use+For+%E2%80%98Why%3F%E2%80%99" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/10/24/another-use-for-why/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Goal Driven Upgrades</title>
		<link>http://tynerblain.com/blog/2006/10/11/goal-driven-upgrades/</link>
		<comments>http://tynerblain.com/blog/2006/10/11/goal-driven-upgrades/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 03:00:30 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Communication]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Prioritization]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[documenting upgrades]]></category>
		<category><![CDATA[goal-driven documentation]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[passion threshold]]></category>
		<category><![CDATA[prioritizing upgrades]]></category>
		<category><![CDATA[software documentation]]></category>
		<category><![CDATA[software upgrade]]></category>
		<category><![CDATA[suck threshold]]></category>
		<category><![CDATA[upgrade prioritization]]></category>
		<category><![CDATA[upgrade priority]]></category>
		<category><![CDATA[upgrades]]></category>
		<category><![CDATA[user centric documentation]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/10/11/goal-driven-upgrades/</guid>
		<description><![CDATA[Kathy Sierra writes (another) great article at Creating Passionate Users.  This time, she talks about why users don't upgrade and presents ways to get users to install the latest version.  We focus in this article on one way in particular - using goal-driven documentation to encourage upgrading.]]></description>
			<content:encoded><![CDATA[<p><img title="upgraded seat" alt="upgraded seat" src="http://sehlhorst.smugmug.com/photos/101780463-M.jpg" /></p>
<p>Kathy Sierra writes (another) great article at <em>Creating Passionate Users</em>.  This time, she talks about why users don&#8217;t upgrade and presents ways to get users to install the latest version.  We focus in this article on one way in particular &#8211; using goal-driven documentation to encourage upgrading.</p>
<p><strong>Background On Documentation</strong></p>
<p>Over the last couple of days, we&#8217;ve written about how to structure documentation to define what users can do with the software, instead of capturing what the software can do for users.  This reverse <a title="Goal driven documentation" href="http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/">approach uses user goals</a> to guide our documentation.  We also presented, more concretely, <a title="Use Cases drive documentation" href="http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/">how to trace and manage our goal-driven documentation</a> with use cases.</p>
<p>We can leverage this documentation approach to achieve two additional benefits:</p>
<ul>
<li>Encourage users to install new upgrades</li>
<li>Encourage users to migrate from other applications to ours</li>
</ul>
<p>The same factor is at play in both situations &#8211; users already know how to use their existing software, either a previous version of our software or a competitors software.  The fundamental question for users is &#8220;How will I do what I need to do?&#8221;  This is a major barrier to both upgrades and migration from other applications.</p>
<p><strong>Kathy On Upgrades</strong></p>
<p>Kathy&#8217;s <a title="Why users won't upgrade" href="http://headrush.typepad.com/creating_passionate_users/2006/09/why_they_dont_u.html">article on why users don&#8217;t upgrade</a> is awesome.  She creates a great visual graph (shared via her CC license) of the user&#8217;s perspective on upgrades:</p>
<blockquote><p><img title="Sierra's Graph" alt="Sierra's Graph" src="http://sehlhorst.smugmug.com/photos/101774347-M.jpg" /></p>
<p><cite><a title="Sierra's article" href="http://headrush.typepad.com/creating_passionate_users/2006/09/why_they_dont_u.html">Why they don&#8217;t upgrade (and what to do about it)</a></cite></p></blockquote>
<p>Kathy goes on to list several approaches to address the problem, all of them fall into either &#8220;make them want it&#8221; or &#8220;make it easier.&#8221;  We will focus specifically on how writing goal-driven documentation can help.</p>
<p><strong>Make Them Want It</strong></p>
<p>We must apply the same <a title="Three approaches to prioritization" href="http://tynerblain.com/blog/2006/01/18/prioritizing-requirements-three-techniques/">prioritization</a> approach to defining upgrades as we do to defining the initial release.  This assures that the most valuable not-yet-implemented goals are addressed in the new version of the software.  If we are using <a title="Prioritizing with Kano" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">Kano as a framework for prioritization</a>, we have the added benefit of <a title="Making software easier to use" href="http://tynerblain.com/blog/2006/04/14/goldilocks-and-the-three-products/">effectively lowering the suck-threshold</a>.</p>
<p><strong>Make It Easier</strong></p>
<p>We can make design decisions that make software easier to use.  We can also follow Kathy&#8217;s other good suggestions.  And we can write our documentation to make it easier for users to make the change.</p>
<p>Goal-driven documentation has two effects on the curve Kathy drew above.  Here&#8217;s the same curve, representing a typical software upgrade:</p>
<p><img alt="typical upgrade" title="typical upgrade" src="http://sehlhorst.smugmug.com/photos/101774341-O.png" /></p>
<p>With goal-driven documentation, the curve is shifted up and to the left:</p>
<p><img alt="shifting the curve" title="shifting the curve" src="http://sehlhorst.smugmug.com/photos/101774346-M.png" /></p>
<p>This shift can be analyzed as two different factors:</p>
<p><img alt="two factors" title="two factors" src="http://sehlhorst.smugmug.com/photos/101774331-M.png" /></p>
<p>The goal-driven documentation allows users to climb become more competent more quickly &#8211; effectively lowering the suck-threshold.  When applied to upgrades, it reduces the size of the drop &#8211; preventing users from re-entering the suck-zone.</p>
<p><strong>Faster Climb</strong></p>
<p><a title="Competent users" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">Competence</a> is not a measure of how quickly users can do everything the software can do &#8211; it is a measure of how quickly users can do everything <em>they need to do</em> with the software.  When we define our software to prioritize solving the most valuable problems for our customers, we are defining the set of activities that the users <em>need to do</em>.  And we identify this as a set of use cases.</p>
<p>We then document how users will follow those use cases, with the implementation we&#8217;ve given them.</p>
<p><img alt="structured doc" title="structured doc" src="http://sehlhorst.smugmug.com/photos/101635387-M.jpg" /></p>
<p>This <em>goal-driven</em> approach to documentation helps users climb the competence curve much faster, immediately reaching the &#8220;Finally I can actually DO something&#8221; point (above the suck threshold).  As long as we document <a title="Prioritizing essential requirements" href="http://tynerblain.com/blog/2006/02/17/prioritizing-software-requirements-am-i-hot-or-not/">the right <em>somethings</em></a>, we&#8217;re all set.</p>
<p><strong>Shorter Drop</strong></p>
<p>We apply this same approach to our upgrades.  Those use cases that we&#8217;ve added in a new release yield new documentation.  Those implementation areas we&#8217;ve modified as part of the upgrade yield updates to previously released docs.</p>
<p>Users will have an easy answer for &#8220;how do I do it <em>now?&#8221;</em> as well as &#8220;What can I do <em>now?</em>&#8221;</p>
<p><strong>Collateral Benefit</strong></p>
<p>We also get the benefit of making it <em>much</em> easier for users to migrate from other software packages (not just our earlier releases).  There are books out there where authors address exactly this problem &#8211; <em>Microsoft Word for Wordperfect Users</em> and <em>Java For Cobol Programmers</em> come to mind.  By showing users how to do <em>what they need to do</em>, we make it easy for them to switch.</p>
<p><strong>Conclusion</strong></p>
<ul>
<li>Goal driven documentation makes it easier for users to learn how to use our software.</li>
<li>Goal driven documentation makes it easier for users to switch from other software programs to ours.</li>
<li>Goal driven documentation makes it easier for users to upgrade to new versions of our software.</li>
</ul>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Goal+Driven+Upgrades+http://bit.ly/gGxFD+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/10/11/goal-driven-upgrades/&amp;t=Goal+Driven+Upgrades" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/10/11/goal-driven-upgrades/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[<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>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Use+Case+Driven+Documentation+http://bit.ly/4hdzF+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/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/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goal-Driven Documentation</title>
		<link>http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/</link>
		<comments>http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/#comments</comments>
		<pubDate>Tue, 10 Oct 2006 03:00:22 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[competent users]]></category>
		<category><![CDATA[goal-driven doc]]></category>
		<category><![CDATA[goal-driven documentation]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[raising the suck threshold]]></category>
		<category><![CDATA[software doc]]></category>
		<category><![CDATA[software documentation]]></category>
		<category><![CDATA[suck threshold]]></category>
		<category><![CDATA[writing doc]]></category>
		<category><![CDATA[writing software doc]]></category>
		<category><![CDATA[writing software documentation]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/</guid>
		<description><![CDATA[Why do we write documentation?  Because someone told us to write it?  Because our competitors have it?  Or because we want our software to be easier to use?  It should be the third one, but often, writing documentation is an afterthought, and it is deprioritized, and we just get it done, instead of thinking about the goals for doing it in the first place and doing it right.]]></description>
			<content:encoded><![CDATA[<p><img alt="power drill" title="power drill" src="http://sehlhorst.smugmug.com/photos/101330538-M.jpg" /></p>
<p>Why do we write documentation?  Because someone told us to write it?  Because our competitors have it?  Or because we want our software to be easier to use?  It should be the third one, but often, writing documentation is an afterthought, and it is deprioritized, and we just get it done, instead of thinking about the goals for doing it in the first place and doing it right.</p>
<p><strong>Instructions for a Drill</strong></p>
<p>Imagine that the instructions for your brand new electric drill had the following sections:</p>
<ol>
<li>How to adjust the speed of your drill.</li>
<li>How to change the direction of the drill.</li>
<li>How to change the drill bit.</li>
<li>etc&#8230;</li>
</ol>
<p>You wouldn&#8217;t know very much about <em>how to accomplish something</em> with the drill &#8211; you would only know how to <em>operate</em> the drill.  What if the instructions  had the following sections:</p>
<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&#8230;</li>
</ol>
<p>Suddenly, the documentation is helping us to achieve our goals.</p>
<p><strong>Do The Job (Versus Use The Tool)</strong></p>
<p>We write documentation so that people can more easily do the job, not so that they can use the tool.  In our example above, the &#8220;use the tool&#8221; instructions in the first list would be fine for someone who already knows how to use <em>a</em> drill &#8211; it would only teach them the unique elements of how to use <em>this</em> drill.</p>
<p>Software doesn&#8217;t present the same set of physical <em>affordances</em> that hardware does.  Rarely are there a handful of obvious physical controls begging for interaction &#8211; &#8220;That looks like a trigger, and the drill looks like a gun &#8211; I bet that&#8217;s how I make it spin!&#8221;.  Instead, we have a myriad of choices &#8211; buttons, menus, hidden context menus, command line prompts, gestures, etc.</p>
<p>With rare exceptions, we aren&#8217;t writing documentation to teach someone how to use our software (instead of some other software they already know, which does <em>exactly</em> the same things).  We are trying to teach them how to achieve their goals and solve their problems, using our software.</p>
<p>We defined requirements to solve problems and achieve goals and generate value.  Shouldn&#8217;t our documentation be written with these same goals in mind?</p>
<p><strong>Creating Competent Users</strong></p>
<p><img alt="cannister vaccuum" title="cannister vaccuum" src="http://sehlhorst.smugmug.com/photos/48273784-M.jpg" /></p>
<p>We&#8217;ve written before about Kathy Sierra&#8217;s now famous <a title="Suck Threshold" href="http://tynerblain.com/blog/2005/12/14/getting-past-the-suck-threshold/"><em>suck threshold</em></a>.  The suck threshold is the minimum level of competence required for a user to feel like they don&#8217;t <em>suck</em> when using the software.  We talked about it in the context of defining the right number of features to include in the software.  More features means more complexity which means users take longer to master the software.</p>
<p><img alt="suck threshold" title="suck threshold" src="http://sehlhorst.smugmug.com/photos/64469136-M.png" /></p>
<p>We&#8217;ve also talked about how to prioritize features for software to maximize the likelihood that our users will operate above the suck threshold.  We have to <a title="Competent Users" href="http://tynerblain.com/blog/2006/04/02/competent-users-and-software-design/">prioritize for competent users</a> (people above the suck threshold) because beginners aren&#8217;t beginners for long, and few people invest the time and effort to become experts.</p>
<p>A key articulation users propose for <a title="Why software sucks" href="http://tynerblain.com/blog/2006/03/02/this-software-sucks-say-users/"><em>why software sucks</em></a> is that they can&#8217;t understand how to achieve their goals.</p>
<p><strong>Our Documentation Should Help Users Achieve Their Goals</strong></p>
<p>Pretty simple, really.  Many software &#8220;manuals&#8221; have documentation that is organized to mirror the user interface &#8211; a section for each menu, with a sub-section explaining how to use each item in the menu (&#8220;How to adjust the speed of the drill&#8221;).  It is left as an exercise for the user to know when, why, and how much to adjust the speed of the drill.  These gaping voids provide a great market for authors &#8211; how many trees have died to publish &#8220;How to use Access&#8221; and &#8220;Secrets of Word&#8221; and &#8220;Excel for Dummies?&#8221;</p>
<p>Thankfully, there are good examples of documentation out there.  Subversion, open source source-control software, has goal-driven documentation.  It serves as a great example, in that the documentation (an open-source book, really) shows how to use subversion to achieve particular goals (how to migrate from another solution, how to restore my old file, etc), or how to set up subversion to operate in particular situations.</p>
<p>Goal-driven documentation effectively <em>lowers</em> the suck-threshold.  It allows us to include more features (because we can more easily ignore them, and because we can see how and why we might use them, instead of just understanding how they operate).  Goal-driven documentation also accelerates the user up the learning curve, allowing them to be productive far more rapidly.</p>
<p><strong>Summary</strong></p>
<p>Write goal-driven documentation.  It helps users <em>achieve their goals</em> using the software.  This creates more competent users more quickly.  And it helps generate evangilists and salespeople within the user community.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Goal-Driven+Documentation+http://bit.ly/me0Da+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/&amp;t=Goal-Driven+Documentation" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/10/09/goal-driven-documentation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Outside Reading: Top 10 Signs You Should Not Write Requirements</title>
		<link>http://tynerblain.com/blog/2006/07/11/outside-reading-top-10-signs/</link>
		<comments>http://tynerblain.com/blog/2006/07/11/outside-reading-top-10-signs/#comments</comments>
		<pubDate>Wed, 12 Jul 2006 03:24:54 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Lists]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirement discovery]]></category>
		<category><![CDATA[Requirements gathering]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/07/11/outside-reading-top-10-signs/</guid>
		<description><![CDATA[Seilevel has a post that presents the top 10 signs that you should not pursue a career writing requirements, check it out.  Thanks Joy for the great article!]]></description>
			<content:encoded><![CDATA[<p><img alt="reading outside" title="reading outside" src="http://sehlhorst.smugmug.com/photos/55550291-M.jpg" /></p>
<p>Seilevel has a post that presents the <a title="Seilevel list" href="http://requirements.seilevel.com/blog/2006/07/top-ten-signs-you-should-not-pursue.html">top 10 signs that you should not pursue a career writing requirements</a>, check it out.  Thanks Joy for the great article!<br />
Our favorites:</p>
<p>#10 You cannot quickly understand new concepts</p>
<p>#9 You don&#8217;t have the patience to deal with customers</p>
<p>#4 You cannot form a mental model of all the pieces</p>
<p><strong>Our take</strong></p>
<p>Writing requirements is much more than taking dictation.  To develop great software, you have to develop an understanding of the needs of the customer.  From those needs, you have to synthesize a solution approach.  And you have to communicate that approach, both with customers (to validate it) and with the engineering team.  All of Joy&#8217;s entries (except the bonus #0 item) support this general framework.</p>
<p>We agree with Roger&#8217;s comments on the post that agile processes are not mutually exclusive to writing requirements.  Charles posted recently about the <a title="new product manager" href="http://yetanothersoftwareblog.blogspot.com/2006/07/new-product-manager.html"><em>new</em> product manager</a> &#8211; implying that an agile product manager is different than a non-agile product manager.</p>
<p>There are many different <em>agile</em> processes, which use differing amounts of up-front planning, and differing formats for documentation.  <a title="Foundation Series on FDD" href="http://tynerblain.com/blog/2006/03/27/foundation-series-feature-driven-development-fdd-explained/">Feature-driven development (FDD)</a> does high level planning to understand the general approach of the product.  Details are then defined incrementally.  Incremental development works best when the most important stuff is worked on first.  This doesn&#8217;t preclude the need to communicate with customers and developers.  The fact that this communication happens incrementally doesn&#8217;t make documentation irrelevant.<br />
The conversation about item #0 continues on <a title="forum" href="http://requirements.seilevel.com/messageboard/showthread.php?p=1109#post1109">Seilevel&#8217;s discussion forum</a>, join in there, or add your thoughts here.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Outside+Reading%3A+Top+10+Signs+You+Should+Not+Write+Requirements+http://bit.ly/ZBuqN+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/07/11/outside-reading-top-10-signs/&amp;t=Outside+Reading%3A+Top+10+Signs+You+Should+Not+Write+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/07/11/outside-reading-top-10-signs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing Passionate Requirements</title>
		<link>http://tynerblain.com/blog/2006/06/15/writing-passionate-requirements/</link>
		<comments>http://tynerblain.com/blog/2006/06/15/writing-passionate-requirements/#comments</comments>
		<pubDate>Fri, 16 Jun 2006 04:07:13 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software requirements specification]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[business requirements documentation]]></category>
		<category><![CDATA[good requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[passionate requirements]]></category>
		<category><![CDATA[product requirements]]></category>
		<category><![CDATA[requirements documentation]]></category>
		<category><![CDATA[software requirements]]></category>
		<category><![CDATA[writing business requirements]]></category>
		<category><![CDATA[writing passionate requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/06/15/writing-passionate-requirements/</guid>
		<description><![CDATA[One of the ten big rules of writing a good MRD is writing passionate requirements.  What in the world is a passionate requirement [they were all wondering]?  When you believe in the product, are committed to the work, and aren't bored, you can write passionately.  The goal of a requirement is to create sustained understanding.  A dry document can create understanding, but an engaging document will sustain it.]]></description>
			<content:encoded><![CDATA[<p><img alt="big ten logo" title="big ten logo" src="http://sehlhorst.smugmug.com/photos/128628679-M.png" /></p>
<p>One of the ten big rules of writing a good MRD is writing passionate requirements.  What in the world is a passionate requirement [they were all wondering]?  When you believe in the product, are committed to the work, and aren&#8217;t bored, you can write passionately.  The goal of a requirement is to create sustained understanding.  A dry document can create understanding, but an engaging document will sustain it.</p>
<p><strong>The Big Rule of Writing Passionate Requirements<br />
</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>Nothing great has been born from complacency, lethargy or mediocrity. When we  are defining requirements, we must be passionate about what we’re doing. If  we’re just going through the motions, it shows up in the writing. If we aren’t  excited about a requirement, the problem is either with us or with the  requirement. Either way, it won’t inspire the rest of the team to do something  great.</p></blockquote>
<p><strong>Passion For The Product</strong></p>
<p>When we are excited about our product, and believe in the value for our customers, we will write better.  When we know that we are doing work that is <em>worth doing</em>, we approach it with that &#8216;extra something&#8217;.</p>
<p><strong>Commitment to Writing</strong></p>
<p>If we are just going through the motions, creating a document because someone told us that we have to, it will show.  We need to appreciate that an MRD is the focal point for an understanding of our customer&#8217;s needs.  We realize that our engineering team will be using that MRD as the source of their inspiration and actions.  When the goal of our writing is to deliver understanding, we write differently than when our goal is to hurry up and move on to the next thing.</p>
<p><strong>Personal Engagement</strong></p>
<p>Few things affect the quality of writing more than boredom with the subject.  If we are writing requirements for YACC (Yet another C compiler) and we&#8217;ve done it ten times before, we will lose something.  Years ago I got some great advice &#8211; get out of your <em>comfort zone</em>.</p>
<p>Everyone has a comfort zone, where the work they are doing isn&#8217;t challenging.  Immediately surrounding that comfort zone is the <em>stretch zone</em> where there is a little fear, growth and challenge.  This is where we should operate.  We don&#8217;t grow by doing the same thing over and over, in the same way.  Outside of the stretch zone is the <em>fear zone</em> where we are operating as a fish out of water.  If we&#8217;re unable to react, learn, cope and succeed, we&#8217;ve gone too far into the fear zone.</p>
<p>Complacency comes from boredom, which comes from spending too much time in our comfort zones.  And complacency shows in the quality of our writing.  We may write accurate, boring, easy to read and easy to forget requirements.</p>
<p><strong>Out of Control</strong></p>
<p>All of the factors above seem to be out of our control.  We have employers, they give us assignments.  We have to do what we&#8217;re told, even if we don&#8217;t believe in it. There are three things we can do.</p>
<p>The first is to find a way to believe in the product.  Review the financial benefits, think about the improvements it makes for the users. We can find at least an element of what we&#8217;re doing that is relevant or significant.  And we can focus on that.</p>
<p>The second is to find a way to focus on self-improvement.  While we&#8217;re performing the job that we&#8217;ve decided isn&#8217;t worth doing, we can take on the <em>meta-challenge</em> of exploring it as a testbed for discovering better ways to do the job.  How can we reduce the level of effort required to do the job well?  Can we invent new approaches or master existing ones?  We can focus on that.</p>
<p>The third is to think about why we have a job we don&#8217;t enjoy, doing work we don&#8217;t believe in.  If we <em>need</em> the job, then we keep it.  If we don&#8217;t need <em>this</em> job, we can look for another one that we will believe in.  Or we can simply accept that our writing won&#8217;t be passionate.  But hey, that&#8217;s no different than most of the stuff that we read.</p>
<p><strong>Conclusion</strong></p>
<p>Every job is done better when someone is passionate about it &#8211; writing requirements is no exception.  Find a way to be passionate.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Writing+Passionate+Requirements+http://bit.ly/2sUph+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/06/15/writing-passionate-requirements/&amp;t=Writing+Passionate+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/06/15/writing-passionate-requirements/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Writing Atomic Requirements</title>
		<link>http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/</link>
		<comments>http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/#comments</comments>
		<pubDate>Thu, 15 Jun 2006 02:29:45 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software requirements specification]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[atomic requirements]]></category>
		<category><![CDATA[business requirements documentation]]></category>
		<category><![CDATA[good requirements]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[product requirements]]></category>
		<category><![CDATA[requirement atomicity]]></category>
		<category><![CDATA[requirements documentation]]></category>
		<category><![CDATA[software requirements]]></category>
		<category><![CDATA[writing business requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/</guid>
		<description><![CDATA[One of the ten big rules of writing a good MRD is writing atomic requirements. Just as verifiable requirements must be concretely measurable as having been met or not, so must atomic requirements. If a requirement has multiple elements that can be implemented separately, it is not atomic.]]></description>
			<content:encoded><![CDATA[<p><img alt="big ten logo" title="big ten logo" src="http://sehlhorst.smugmug.com/photos/128628670-M.png" /></p>
<p>One of the ten big rules of writing a good MRD is writing atomic requirements. Just as <a title="Writing Verifiable Requirements" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">verifiable requirements</a> must be concretely measurable as having been met or not, so must atomic requirements.  If a requirement has multiple elements that can be implemented separately, it is not atomic.</p>
<p><strong>The Big Rule of Writing Atomic Requirements<br />
</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>Every requirement should be a single requirement. If we can say “Half of this  requirement is implemented” then this needs to be two or more requirements. If a  requirement read “Sales reps can manage their client list and generate custom  reports” it expresses two atomic ideas (list management and report generation).  Those ideas need to be separated</p></blockquote>
<p><strong>Determining Atomicity</strong></p>
<p>There is a very simple test &#8211; can a subset of the requirement be implemented?  Phrases like &#8216;the user will be able to <em>X</em> and <em>Y</em>&#8216; are tell-tale signs that a requirement is probably not atomic.</p>
<p><strong>Why Atomicity Matters</strong></p>
<p>Atomicity matters when developing a product roadmap.  We can&#8217;t prioritize half a requirement for one release and the other half for another.  Each requirement should be <a title="Prioritizing Requirements Across Releases" href="http://tynerblain.com/blog/2006/03/08/prioritizing-software-requirements-across-releases/">scheduled for a single release</a>.</p>
<p><a title="How to Deal With Untestable Requirements" href="http://tynerblain.com/blog/2005/11/30/how-to-deal-with-untestable-requirements-rewrite-them/">Testing of requirements</a> should result in either a &#8220;pass&#8221; or a &#8220;fail.&#8221;  A requirement should not <em>partially</em> pass its verification test.</p>
<p>Tracability of requirements is also simplified when each requirement is unique.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Writing+Atomic+Requirements+http://bit.ly/TPxZO+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/&amp;t=Writing+Atomic+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/06/14/writing-atomic-requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing Verifiable Requirements</title>
		<link>http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/</link>
		<comments>http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/#comments</comments>
		<pubDate>Wed, 14 Jun 2006 03:32:58 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software requirements specification]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Writing]]></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[requirements verification]]></category>
		<category><![CDATA[software requirements]]></category>
		<category><![CDATA[verifiable requirements]]></category>
		<category><![CDATA[writing business requirements]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/</guid>
		<description><![CDATA[One of the ten big rules of writing a good MRD is writing verifiable requirements.  Verification is both a function of having a precise goal, and having the ability to affordably measure the requirement.  A precise goal is a verifiable requirement if we can clearly answer "yes" or "no" when asked if the requirement has been implemented.  We also face the practical realities of being able to measure the results profitably.]]></description>
			<content:encoded><![CDATA[<p><img alt="big ten logo" title="big ten logo" src="http://sehlhorst.smugmug.com/photos/128628654-M.png" /></p>
<p>One of the ten big rules of writing a good MRD is writing verifiable requirements.  Verification is both a function of having a precise goal, and having the ability to affordably measure the requirement.  A precise goal is a verifiable requirement if we can clearly answer &#8220;yes&#8221; or &#8220;no&#8221; when asked if the requirement has been implemented.  We also face the practical realities of being able to measure the results profitably.</p>
<h2>The Big Rule of Writing Verifiable Requirements</h2>
<p><strong><br />
</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>We use a process that starts with market requirements, and <a title="From MRD to PRD" href="http://tynerblain.com/blog/2006/01/24/from-mrd-to-prd-the-key-to-defining-a-spec/">then  decomposes them</a> into software requirement specifications. the market  requirements must be written in a way that we can verify that the associated  requirements specification will meet the market need.</p></blockquote>
<h2>Verifiable</h2>
<p>We wrote previously that <a title="How to Deal With Untestable Requirements" href="http://tynerblain.com/blog/2005/11/30/how-to-deal-with-untestable-requirements-rewrite-them/">if a requirement can&#8217;t be tested, it should be rewritten</a>.  Roger Cauvin has recently reposted on <a title="Why Testable Requirements" href="http://cauvin.blogspot.com/2006/06/why-testable-requirements.html">testable requirements</a>.  Perhaps in anticipation of this article? :).</p>
<p>In the world of test driven design (TDD), the philosophy is to write the test first, and then write the code.  We use a <a title="Foundation Series on Continuous Integration" href="http://tynerblain.com/blog/2006/05/08/foundation-series-continuous-integration/">continuous integration approach</a> to check in code regularly and run all of the tests as we go.  When the test for a particular requirement passes, the code is done for that requirement.</p>
<p>We also get a big benefit in validating that we have delivered the right functionality to the customer.  When we agree on the language of the requirement, we are also agreeing on the language of its verifiability.</p>
<h2>Affordably Verifiable</h2>
<p><strong> </strong></p>
<p>With this <em>big rule</em>, we are assuming that we have already eliminated impractical or <a title="Writing Attainable Requirements" href="http://tynerblain.com/blog/2006/06/07/writing-attainable-requirements/">unattainable requirements</a>.</p>
<p>Some tests are very expensive, or nigh on impossible.  Roger alludes to this as <em>testable in principle</em>.  Requirements should be testable in practice whenever possible.  If a requirement can not be tested (&#8220;Must last 10 years&#8221;) in the delivery timeframe, we need to at least define a specific acceptance criteria &#8211; (&#8220;95% confidence in a cycle life of 10,000 cycles per procedure XYZ.doc&#8221;).  This is the approach that Underwriter Labs uses for awarding UL certification to electrical appliances for safety.</p>
<p>Semantically, we can argue that this proxy criteria is in fact the requirement.  It is the criteria by which acceptance is determined.</p>
<p>If the test is possible, but impossibly expensive, we shouldn&#8217;t run the test.  If we can not agree on a practical proxy criteria, we are left with two choices.  We can choose to not implement the requirement.  Or we can choose to agree that the requirement is delivered <em>when we say it is</em>.  Neither is a particularly good option, but the former is better than the latter, when it comes to maintaining a positive relationship with our customer.</p>
<p>Writing requirements without acceptance criteria introduces risk into our project.  The last thing we want is to enter into a nitpicking discussion about what we have and have not delivered.  We would much rather spend that time discussing what we can deliver next.</p>
<h2>Conclusion</h2>
<p>Write requirements that can be verified given the constraints of the project.  Common constraints are time, money, equipment and expertise.  Use language that makes the verification process explicit.  The process of determining verifiability also dramatically helps <a title="Writing Unambiguous Requirements" href="http://tynerblain.com/blog/2006/06/12/writing-unambiguous-requirements/">eliminate ambiguity in our requirements</a>.</p>
<p align="left"><a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/home/?status=By+@sehlhorst:+Writing+Verifiable+Requirements+http://bit.ly/2HPaX+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/&amp;t=Writing+Verifiable+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/tt-facebook-big4.png" alt="Post to Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
