<?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>Richard Lawrence &#187; Product Owner</title>
	<atom:link href="http://www.richardlawrence.info/tag/product-owner/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.richardlawrence.info</link>
	<description>On making software teams happier and more productive</description>
	<lastBuildDate>Fri, 27 Jan 2012 18:41:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>New Story Splitting Resource</title>
		<link>http://www.richardlawrence.info/2012/01/27/new-story-splitting-resource/</link>
		<comments>http://www.richardlawrence.info/2012/01/27/new-story-splitting-resource/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 18:41:27 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[user stories]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=421</guid>
		<description><![CDATA[More than two years after I originally published it, &#8220;Patterns for Splitting User Stories&#8221; remains one of the most visited posts on my blog. Splitting user stories continues to be one of the areas where the teams I work with most often need coaching. To support the teams I coach, I&#8217;ve created a flow chart [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2011/05/04/another-story-splitting-pattern-maybe/' rel='bookmark' title='Permanent Link: Another Story Splitting Pattern (Maybe)'>Another Story Splitting Pattern (Maybe)</a></li>
<li><a href='http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories/' rel='bookmark' title='Permanent Link: Patterns for Splitting User Stories'>Patterns for Splitting User Stories</a></li>
<li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>More than two years after I originally published it, <a href="/2009/10/28/patterns-for-splitting-user-stories/">&#8220;Patterns for Splitting User Stories&#8221;</a> remains one of the most visited posts on my blog. Splitting user stories continues to be one of the areas where the teams I work with most often need coaching. </p>
<p>To support the teams I coach, I&#8217;ve created a flow chart that goes through the questions I&#8217;ll ask when I&#8217;m helping a team split their stories.<span id="more-421"></span> I was going to keep this resource for my coaching clients, but I&#8217;ve decided to share it here for free. Click the thumbnail below to download the full-size PDF version.</p>
<p><a href='http://www.richardlawrence.info/wp-content/uploads/2012/01/Story-Splitting-Flowchart.pdf'><img src="http://www.richardlawrence.info/wp-content/uploads/2012/01/Story-Splitting-Flowchart-Thumbnail.png" alt="" title="&quot;How to Split a User Story&quot; Flowchart" width="669" height="438" class="aligncenter size-full wp-image-422" /></a></p>
<p>Let me know in the comments if you find this useful. If you can share them, I&#8217;d love to see examples of how you&#8217;ve used it, what the stories looked like before and after splitting.</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2011/05/04/another-story-splitting-pattern-maybe/' rel='bookmark' title='Permanent Link: Another Story Splitting Pattern (Maybe)'>Another Story Splitting Pattern (Maybe)</a></li>
<li><a href='http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories/' rel='bookmark' title='Permanent Link: Patterns for Splitting User Stories'>Patterns for Splitting User Stories</a></li>
<li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2012/01/27/new-story-splitting-resource/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Patterns for Splitting User Stories</title>
		<link>http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories/</link>
		<comments>http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 14:04:29 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[user stories]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=190</guid>
		<description><![CDATA[Good user stories follow Bill Wake&#8217;s INVEST model. They&#8217;re Independent, Negotiable, Valuable, Estimable, Small, and Testable. The small requirement drives us to split large stories. But the stories after splitting still have to follow the model. Many new agile teams attempt to split stories by architectural layer: one story for the UI, another for the [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/12/10/when-stories-are-larger-than-planned/' rel='bookmark' title='Permanent Link: Short Answers #1: When Stories Are Larger Than Planned'>Short Answers #1: When Stories Are Larger Than Planned</a></li>
<li><a href='http://www.richardlawrence.info/2009/02/11/watin-patterns-2-one-assertion-and-a-name-to-match/' rel='bookmark' title='Permanent Link: WatiN Patterns #2: One Assertion and a Name to Match'>WatiN Patterns #2: One Assertion and a Name to Match</a></li>
<li><a href='http://www.richardlawrence.info/2009/01/21/agile-product-management-boot-camp/' rel='bookmark' title='Permanent Link: Agile Product Management Boot Camp'>Agile Product Management Boot Camp</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><img src="http://www.richardlawrence.info/wp-content/uploads/2009/10/matryoshka.jpg" alt="Matryoshka" title="Matryoshka" width="200" height="166" class="alignright size-full wp-image-210" />Good user stories follow Bill Wake&#8217;s <a href="http://xp123.com/xplor/xp0308/index.shtml">INVEST model</a>. They&#8217;re <strong>I</strong>ndependent, <strong>N</strong>egotiable, <strong>V</strong>aluable, <strong>E</strong>stimable, <strong>S</strong>mall, and <strong>T</strong>estable. The <em>small</em> requirement drives us to split large stories. But the stories after splitting still have to follow the model.</p>
<p>Many new agile teams attempt to split stories by architectural layer: one story for the UI, another for the database, etc. This may satisfy <em>small</em>, but it fails at <em>independent</em> and <em>valuable</em>.</p>
<p>Over my years with agile, I&#8217;ve discovered nine patterns for splitting user stories into good, smaller stories. <span id="more-190"></span></p>
<p><em>(Note: As with any pattern language, I didn&#8217;t invent these patterns, I&#8217;ve just observed and compiled them. For example, <a href="http://radio.javaranch.com/lasse/2008/06/13/1213375107328.html">this great post</a> by Lasse Koskela put names on some patterns I&#8217;d observed but not named, especially &#8220;Major Effort.&#8221;)</em></p>
<h3>How Small?</h3>
<p>How small should stories be? I recommend 6-10 stories per iteration, so how small is small enough depends on your team&#8217;s velocity. Before your next planning meeting calculate what estimate should trigger splitting a story. For most teams, it seems to be 8 or 13 points. But on a recent project I&#8217;m doing by myself, I&#8217;ve needed to split 5-point stories.</p>
<p>When you&#8217;re in a planning meeting and you hit your trigger estimate, pull out the cheat sheet at the end of this article and try a few of the patterns until you find a good split.</p>
<h3>Which Pattern to Use</h3>
<p>You&#8217;ll often find that you can split a story using several of the patterns. Which split should you choose? I use two rules of thumb:</p>
<ol>
<li><strong>Choose the split that lets you deprioritize or throw away a story.</strong> The 80/20 principle says that most of the value of a user story comes from a small share of the functionality. When one split reveals low-value functionality and another doesn&#8217;t, it suggests that the latter split hides waste inside each of the small stories. Go with the split that lets you throw away the low-value stuff.</li>
<li><strong>Choose the split that gets you more equally sized small stories.</strong> The split that turns an 8 point story into four 2 point stories is more useful than the one that produces a 5 and a 3. It gives the Product Owner more freedom to prioritize parts of the functionality separately.</li>
</ol>
<h3>Pattern #1: Workflow Steps</h3>
<p>Here&#8217;s a story from a content management system one of my clients was creating:</p>
<blockquote><p>
As a content manager, I can publish a news story to the corporate website.
</p></blockquote>
<p>Didn’t sound too big&mdash;until we dug into the workflow to get a story published. It turned out that just to get a few sentence news story on the corporate website required both editorial and legal approval and final review on a staging site. There&#8217;s no way 6-10 stories like this would fit in an iteration.</p>
<p>In a workflow like this, the biggest value often comes from the beginning and end. The middle steps add incremental value, but don&#8217;t stand alone. So it can work well to build the simple end-to-end case first and then add the middle steps and special cases.</p>
<p>The new stories included:</p>
<blockquote><p>
&#8230;I can publish a news story directly to the corporate website.<br />
&#8230;I can publish a news story with editor review.<br />
&#8230;I can publish a news story with legal review.<br />
&#8230;I can view a news story on a staging site.<br />
&#8230;I can publish a news story from the staging site to production.
</p></blockquote>
<h3>Pattern #2: Business Rule Variations</h3>
<p>This story has a few equally complex stories hidden within it that accomplish the same thing using different business rules:</p>
<blockquote><p>
As a user, I can search for flights with flexible dates.
</p></blockquote>
<p>Digging into &#8220;flexible dates&#8221; reveals several different business rules, each of which can be a good story on its own:</p>
<blockquote><p>
&#8230;as &#8220;n days between x and y.&#8221;<br />
&#8230;as &#8220;a weekend in December.&#8221;<br />
&#8230;as &#8220;&plusmn; n days of x and y.&#8221;
</p></blockquote>
<h3>Pattern #3: Major Effort</h3>
<p>Sometimes a story can be split into several parts where most of the effort will go towards implementing the first one. For example, this credit card processing story,</p>
<blockquote><p>
As a user, I can pay for my flight with VISA, MasterCard, Diners Club, or American Express.
</p></blockquote>
<p>could be split into four stories, one for each card type. But the credit card processing infrastructure will be built to the support the first story; adding more card types will be relatively trivial. We could estimate the first story larger than the other three, but then we have to remember to change our estimates if the Product Owner later changes priorities. Instead, we should defer the decision about which card type gets implemented first like this:</p>
<blockquote><p>
&#8230;I can pay with one credit card type (of VISA, MC, DC, AMEX).<br />
&#8230;I can pay with all four credit card types (VISA, MC, DC, AMEX) (given one card type already implemented).
</p></blockquote>
<p>The two new stories still aren&#8217;t independent, but the dependency is much clearer than it would be with a story for each card type.</p>
<h3>Pattern #4: Simple/Complex</h3>
<p>When you&#8217;re in a planning meeting discussing a story, and the story seems to be getting larger and larger (&#8220;what about x?&#8221;; &#8220;have you considered y?&#8221;), stop and ask, &#8220;What&#8217;s the simplest version of this?&#8221; Capture that simple version as its own story. You&#8217;ll probably have to define some acceptance criteria on the spot to keep it simple. Then, break out all the variations and complexities into their own stories. So, for example, this story,</p>
<blockquote><p>
As a user, I can search for flights between two destinations.
</p></blockquote>
<p>stays simple by splitting off variations like,</p>
<blockquote><p>
&#8230;specifying a max number of stops.<br />
&#8230;including nearby airports.<br />
&#8230;using flexible dates.<br />
&#8230;etc.
</p></blockquote>
<h3>Pattern #5: Variations in Data</h3>
<p>Complexity in a story can come from handling variations in data. For example, a system I&#8217;m currently working on needs to model geographic areas served by transportation providers. We could have burned our whole project budget just handing geography; it&#8217;s potentially that complex. When I talked through the story,</p>
<blockquote><p>
As a user, I can search for transportation providers by trip origin and destination.
</p></blockquote>
<p>with our Product Owner, I discovered that, while we didn&#8217;t need full-fledged GIS, modeling geography would still be quite complex. We stopped and asked, &#8220;What&#8217;s the &#8216;good enough&#8217; way to model geography so we can build other high-value features now?&#8221; We settled on,</p>
<blockquote><p>
As a user, I can search for transportation providers by trip origin and destination as counties.
</p></blockquote>
<p>This worked for a while, until we collected more data and found that some providers only served certain cities or even neighborhoods. So a new story came up:</p>
<blockquote><p>
As a user, I can search for transportation providers by trip origin and destination as counties, cities, towns, or neighborhoods.
</p></blockquote>
<p>Looking over the new provider data, we also discovered that some providers will support trips originating in a single city but ending in any number of surrounding cities. This led to the story:</p>
<blockquote><p>
Providers can serve different geographic areas for trip origin and destination.
</p></blockquote>
<p>All three of these stories are split from the original geography story. The difference here is that we added stories just-in-time after building the simplest version. But sometimes you know the data variations up-front. The classic example is localization:</p>
<blockquote><p>
As a content manager, I can create news stories.<br />
&#8230;in English.<br />
&#8230;in Japanese.<br />
&#8230;in Arabic.<br />
&#8230;etc.
</p></blockquote>
<h3>Pattern #6: Data Entry Methods</h3>
<p>Complexity sometimes is in the user interface rather than in the functionality itself. In that case, split the story to build it with the simplest possible UI and then build the more usable or fancier UI. These, of course, aren&#8217;t independent&mdash;the second story effectively is the original story if you do it first&mdash;but it still can be a useful split.</p>
<blockquote><p>
As a user, I can search for flights between two destinations.<br />
&#8230;using simple date input.<br />
&#8230;with a fancy calendar UI.
</p></blockquote>
<h3>Pattern #7: Defer Performance</h3>
<p>Sometimes, a large part of the effort is in making a feature fast&mdash;the initial implementation isn’t all that hard. But you can learn a lot from the slow implementation and it has some value to a user who wouldn&#8217;t otherwise be able to do the action in the story. In this case, break the story into &#8220;make it work&#8221; and &#8220;make it fast&#8221;:</p>
<blockquote><p>
As a user, I can search for flights between two destinations.<br />
&#8230;(slow&mdash;just get it done, show a &#8220;searching&#8221; animation).<br />
&#8230;(in under 5 seconds).
</p></blockquote>
<h3>Pattern #8: Operations (e.g. CRUD)</h3>
<p>The word &#8220;manage&#8221; in a user story is a giveaway that the story covers multiple operations. This offers a natural way to split the story. For example:</p>
<blockquote><p>
As a user, I can manage my account.<br />
&#8230;I can sign up for an account.<br />
&#8230;I can edit my account settings.<br />
&#8230;I can cancel my account.
</p></blockquote>
<h3>Pattern #9: Break Out a Spike</h3>
<p>A story may be large not because it&#8217;s necessarily complex, but because the implementation is poorly understood. In this case, no amount of talking about the business part of the story will allow you to break it up. Do a time-boxed spike first to resolve uncertainty around the implementation. Then, you can do the implementation or have a better idea of how to break it up. Don&#8217;t know how to implement the following story?</p>
<blockquote><p>
As a user, I can pay by credit card.
</p></blockquote>
<p>Then, break it into:</p>
<blockquote><p>
Investigate credit card processing.<br />
Implement credit card processing.
</p></blockquote>
<p>In the &#8220;investigate&#8221; story, the acceptance criteria should be questions you need answered. Do just enough investigation to answer the questions and stop; it&#8217;s easy to get carried away doing research.</p>
<p>The spike split is last because it should be your last resort. You probably know enough to build something. Do that, and you&#8217;ll know more. So, make every effort to use one of the previous eight patterns before resorting to the spike pattern.</p>
<h3>Conclusion</h3>
<p>Resist the temptation to split an overly large user story by architectural layers. Instead, try these patterns to split your story into smaller stories that still satisfy the INVEST model. Let me know how it works for you or if you&#8217;ve run into unsplittable stories (I love a challenge!).</p>
<p><a href='http://www.richardlawrence.info/wp-content/uploads/2009/10/Story-Splitting-Cheat-Sheet.pdf'>Download the Story Splitting Cheat Sheet</a></p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/12/10/when-stories-are-larger-than-planned/' rel='bookmark' title='Permanent Link: Short Answers #1: When Stories Are Larger Than Planned'>Short Answers #1: When Stories Are Larger Than Planned</a></li>
<li><a href='http://www.richardlawrence.info/2009/02/11/watin-patterns-2-one-assertion-and-a-name-to-match/' rel='bookmark' title='Permanent Link: WatiN Patterns #2: One Assertion and a Name to Match'>WatiN Patterns #2: One Assertion and a Name to Match</a></li>
<li><a href='http://www.richardlawrence.info/2009/01/21/agile-product-management-boot-camp/' rel='bookmark' title='Permanent Link: Agile Product Management Boot Camp'>Agile Product Management Boot Camp</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Cuke4Nuke: Cucumber for .NET Teams</title>
		<link>http://www.richardlawrence.info/2009/09/19/cuke4nuke-cucumber-for-net-teams/</link>
		<comments>http://www.richardlawrence.info/2009/09/19/cuke4nuke-cucumber-for-net-teams/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 00:16:38 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[ATDD]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Cuke4Nuke]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=174</guid>
		<description><![CDATA[Update: If you&#8217;ve just landed here, you could get the impression from this post that Cuke4Nuke doesn&#8217;t exist yet. It does. Check out this screencast showing what you can do with it as of early December 2009. If you’ve read this blog for a while or talked with me about functional test tools, you’ve heard [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2009/01/19/web-testing-for-net-teams-watin-or-watir/' rel='bookmark' title='Permanent Link: Web Testing for .NET Teams: WatiN or Watir?'>Web Testing for .NET Teams: WatiN or Watir?</a></li>
<li><a href='http://www.richardlawrence.info/2009/02/11/watin-patterns-2-one-assertion-and-a-name-to-match/' rel='bookmark' title='Permanent Link: WatiN Patterns #2: One Assertion and a Name to Match'>WatiN Patterns #2: One Assertion and a Name to Match</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/' rel='bookmark' title='Permanent Link: A Common, but Bad, Idea'>A Common, but Bad, Idea</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><strong>Update: If you&#8217;ve just landed here, you could get the impression from this post that Cuke4Nuke doesn&#8217;t exist yet. It does. Check out <a href="/2009/12/03/screencast-testing-web-applications-in-net-with-cuke4nuke-and-watin/">this screencast</a> showing what you can do with it as of early December 2009.</strong></p>
<p>If you’ve read this blog for a while or talked with me about functional test tools, you’ve heard me talk about <a href="http://cukes.info/">Cucumber</a>. It’s my favorite ATDD tool because it’s so good at mapping stories and acceptance criteria to automated functional tests. Product Owners and BAs write acceptance criteria in natural language. Developers and testers unobtrusively automate tests for them. Anyone on the team can run the tests and see the current state of the system.</p>
<p>Here’s a simple example:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Feature: Google search<br />
&nbsp; &nbsp; In order to find things on the web<br />
&nbsp; &nbsp; As a user<br />
&nbsp; &nbsp; I want to search for web pages containing specific text<br />
<br />
&nbsp; &nbsp; Scenario: Load search page<br />
&nbsp; &nbsp; &nbsp; &nbsp; When I go to the search page<br />
&nbsp; &nbsp; &nbsp; &nbsp; Then I should be on the search page<br />
<br />
&nbsp; &nbsp; Scenario: Search<br />
&nbsp; &nbsp; &nbsp; &nbsp; Given I'm on the search page<br />
&nbsp; &nbsp; &nbsp; &nbsp; When I search for &quot;richard lawrence&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Then I should see &quot;www.richardlawrence.info&quot; in the results</div></td></tr></tbody></table></div>
<p>This reads almost exactly as I teach Product Owners to specify acceptance criteria. But it’s not just text. It’s a potentially automated test.</p>
<p>A developer or tester can come along and automate this test like so in Ruby:</p>
<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#008000; font-style:italic;"># assuming @google is an instance of a test DSL that wraps Watir, Selenium, etc.</span><br />
<br />
<span style="color:#9966CC; font-weight:bold;">When</span> <span style="color:#006600; font-weight:bold;">/</span>^I search <span style="color:#9966CC; font-weight:bold;">for</span> <span style="color:#996600;">&quot;(.*)&quot;</span>$<span style="color:#006600; font-weight:bold;">/</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>query<span style="color:#006600; font-weight:bold;">|</span><br />
&nbsp; <span style="color:#0066ff; font-weight:bold;">@google</span>.<span style="color:#9900CC;">search_for</span> query<br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<br />
<span style="color:#9966CC; font-weight:bold;">Then</span> <span style="color:#006600; font-weight:bold;">/</span>^I should see <span style="color:#996600;">&quot;(.*)&quot;</span> <span style="color:#9966CC; font-weight:bold;">in</span> the results$<span style="color:#006600; font-weight:bold;">/</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>expected_text<span style="color:#006600; font-weight:bold;">|</span><br />
&nbsp; assert <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#0066ff; font-weight:bold;">@google</span>.<span style="color:#9900CC;">results_contain</span>? expected_text <span style="color:#006600; font-weight:bold;">&#125;</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<br />
<span style="color:#008000; font-style:italic;"># etc...</span></div></td></tr></tbody></table></div>
<p>Each of the Given/When/Then calls is a step definition. When there’s a matching line in a Cucumber test, the step definition gets executed.</p>
<p>Recently, support was added for step definitions in Java via a project called Cuke4Duke:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">@When<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;I search for <span style="color: #000099; font-weight: bold;">\&quot;</span>(*)<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> search<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> query<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Exception</span></a><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; google.<span style="color: #006633;">searchFor</span><span style="color: #009900;">&#40;</span>query<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
@Then<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;I should see <span style="color: #000099; font-weight: bold;">\&quot;</span>(*)<span style="color: #000099; font-weight: bold;">\&quot;</span> in the results&quot;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> checkResults<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> expectedUrl<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; assertThat<span style="color: #009900;">&#40;</span>google.<span style="color: #006633;">containsResult</span><span style="color: #009900;">&#40;</span>expectedUrl<span style="color: #009900;">&#41;</span>, is<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Now, a Java team can use Cucumber without ever writing a line of Ruby.</p>
<p>Unfortunately, there’s nothing like this for .NET teams. Until now (or soon, anyway)…</p>
<h2>AA-FTT and the Birth of Cuke4Nuke</h2>
<p>Last month, I attended the Agile Alliance Functional Test Tool conference (AA-FTT for short). AA-FTT is an open space conference. I came with one goal: to get together with other people who want Cucumber for .NET and start making it happen. I wasn’t sure anyone else would be interested, so I was thrilled with the reaction.</p>
<p><a href="http://twitpic.com/he15c" title="Photo 2 of 4 from #aaftt in Chicago at the pre-conference wor... on Twitpic"><img src="http://twitpic.com/show/large/he15c.jpg" alt="Photo 2 of 4 from #aaftt in Chicago at the pre-conference wor... on Twitpic"></a></p>
<p>Aslak Hellesøy introduced Cucumber for those in the group who hadn’t used it and then talked through the multiple language support he’d recently added to the tool. Then, we discussed ways to build .NET support. The obvious solution was to use IronRuby and Cucumber’s language support to handle C# step definitions. <a href="http://blog.mattwynne.net/2009/09/10/the-agile-alliance-functional-testing-tools-workshop/">Matt Wynne</a> downloaded the latest IronRuby and installed Cucumber on it. He kicked off a simple Cucumber example, and we waited. And waited. Some two minutes later, we had results from tests that take less than two seconds to run under the standard Ruby interpreter. In a process that values frequent, fast test runs, IronRuby was a non-starter. (If you want to try Cucumber under IronRuby, <a href="http://blog.thomaslundstrom.com/2009/08/on-running-cucumber-under-ironruby-09.html">here are some instructions</a>.)</p>
<p>So we discussed other options and settled on using a simple wire protocol for Cucumber to communicate to .NET out-of-process, similar to Slim in FitNesse. And here’s the best part: we started building it. Matt and I paired right there to start fleshing out the wire protocol (with Cucumber tests, naturally). Later in the week at Agile 2009, Matt and Aslak paired to build the Ruby side of the wire protocol, and Matt and I tackled the first bits of the .NET side. Last week, I got the skeleton of the .NET side working and up on GitHub. You can define simple steps in C#. Cucumber can ask the .NET wire server to tell it about the steps it has and to invoke them and return the pass/fail results.</p>
<p>About a week ago, Aslak <a href="http://groups.google.com/group/cukes/browse_thread/thread/27674320d7725feb">announced the project on the Cucumber mailing list and recruited more contributors</a>. Declan Whelan, Scott Ford, Åsmund Eldhuset, Anders Hammervold, Chris Kooken, and Steve Eley have already stepped up with ideas and code.</p>
<h2 id="gettinginvoled">Getting Involed</h2>
<p>How can you get involved? I’m glad you asked.</p>
<ol>
<li>Join <a href="http://groups.google.com/group/cukes">the mailing list</a>.</li>
<li>Fork <a href="http://github.com/richardlawrence/Cuke4Nuke">the GitHub repository</a> and work on one of the features in <a href="http://github.com/richardlawrence/Cuke4Nuke/issues">the backlog</a>.</li>
<li>Post a message to the mailing list to let us know what you’re working on. I’ll tag the ticket in the backlog with your GitHub username so we don’t duplicate effort. Prefix your message subject with [Cuke4Nuke].</li>
<li>Comment on tickets in the backlog.</li>
<li>Try using Cuke4Nuke as we develop it and give us feedback via the mailing list.</li>
<li>Shout encouragements in the comments here and on Twitter to let us know you care, even if you can’t contribute.</li>
</ol>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2009/01/19/web-testing-for-net-teams-watin-or-watir/' rel='bookmark' title='Permanent Link: Web Testing for .NET Teams: WatiN or Watir?'>Web Testing for .NET Teams: WatiN or Watir?</a></li>
<li><a href='http://www.richardlawrence.info/2009/02/11/watin-patterns-2-one-assertion-and-a-name-to-match/' rel='bookmark' title='Permanent Link: WatiN Patterns #2: One Assertion and a Name to Match'>WatiN Patterns #2: One Assertion and a Name to Match</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/' rel='bookmark' title='Permanent Link: A Common, but Bad, Idea'>A Common, but Bad, Idea</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2009/09/19/cuke4nuke-cucumber-for-net-teams/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Agile Product Management Boot Camp</title>
		<link>http://www.richardlawrence.info/2009/01/21/agile-product-management-boot-camp/</link>
		<comments>http://www.richardlawrence.info/2009/01/21/agile-product-management-boot-camp/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 03:52:29 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=108</guid>
		<description><![CDATA[Bob Hartman and I are offering an Agile Product Management Boot Camp course March 9-10 in Denver. If you&#8217;re a product manager, product owner, business analyst or in any other product facing role in an agile (or soon-to-be agile) environment, this intense, hands-on course is a great opportunity for you to ensure that you&#8217;re helping [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/03/agile-architecture-neither-bduf-nor-chaos/' rel='bookmark' title='Permanent Link: Agile Architecture &#8211; Neither BDUF nor Chaos'>Agile Architecture &#8211; Neither BDUF nor Chaos</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/14/motivated-individuals/' rel='bookmark' title='Permanent Link: Motivated Individuals'>Motivated Individuals</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Bob Hartman and I are offering an Agile Product Management Boot Camp course March 9-10 in Denver. If you&#8217;re a product manager, product owner, business analyst or in any other product facing role in an agile (or soon-to-be agile) environment, this intense, hands-on course is a great opportunity for you to ensure that you&#8217;re helping your team maximize the value it delivers.</p>
<p><span id="more-108"></span>Topics include&#8230;</p>
<ul>
<li> Understanding Agile: Process and Driving Principles</li>
<li>Ensuring the Right Things Gets Built: Testing and Acceptance</li>
<li>Specifying What to Build: User Stories</li>
<li>Deciding What to Build First: Prioritization</li>
<li>Defining Customer Value: Minimum Marketable/Releasable Features</li>
<li>Project Acceptance: Building a Product Vision and Business Case</li>
<li>Product Management 101: Useful Tips, Tricks and Techniques</li>
<li>Pulling it All Together: Project Simulation</li>
</ul>
<p>You will leave the course knowing how to:</p>
<ul>
<li>Deal with the team outside of just planning meetings, demonstrations and retrospectives.</li>
<li>Break down requirements into usable stories &#8211; even when the team is unable to help.</li>
<li>Deliver value in stages rather than all at once.</li>
<li>Write acceptance criteria to ensure the right features are being developed.</li>
<li>Create a project business case and vision.</li>
<li>Perform basic product management functions in an agile way.</li>
<li>Effectively interact with customers, community, stakeholders, managers, and the team.</li>
<li>Make a convincing business case for using agile for more projects.</li>
<li>Continuously improve.</li>
</ul>
<p>The course registration fee is $1,200, but readers of this blog can take advantage of a special 2-for-1 offer. Simply register with discount code RLB2FOR1, and we&#8217;ll send you another code you can give to a colleague to register for free. Seats are limited, so <a href="http://agileproductmanagementbootcamp-rl.eventbrite.com">get your registration in today</a>.</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/03/agile-architecture-neither-bduf-nor-chaos/' rel='bookmark' title='Permanent Link: Agile Architecture &#8211; Neither BDUF nor Chaos'>Agile Architecture &#8211; Neither BDUF nor Chaos</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/14/motivated-individuals/' rel='bookmark' title='Permanent Link: Motivated Individuals'>Motivated Individuals</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2009/01/21/agile-product-management-boot-camp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Short Answers #1: When Stories Are Larger Than Planned</title>
		<link>http://www.richardlawrence.info/2008/12/10/when-stories-are-larger-than-planned/</link>
		<comments>http://www.richardlawrence.info/2008/12/10/when-stories-are-larger-than-planned/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 23:20:57 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Short Answers]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=55</guid>
		<description><![CDATA[I&#8217;m experimenting with video for what is likely become a new series here. In these &#8220;Short Answers&#8221; posts, I&#8217;ll answer an agile question in about a minute. Use the comments to suggest questions you&#8217;d like to see in future Short Answers. In this post, I answer the question, &#8220;What should I do when I discover [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/07/11/one-word-can-change-your-daily-scrum/' rel='bookmark' title='Permanent Link: One Word Can Change Your Daily Scrum'>One Word Can Change Your Daily Scrum</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/' rel='bookmark' title='Permanent Link: A Common, but Bad, Idea'>A Common, but Bad, Idea</a></li>
<li><a href='http://www.richardlawrence.info/2008/09/05/making-velocity-granular-enough/' rel='bookmark' title='Permanent Link: Making Velocity Granular Enough'>Making Velocity Granular Enough</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;m experimenting with video for what is likely become a new series here. In these &#8220;<a href="http://www.richardlawrence.info/tag/short-answers/">Short Answers</a>&#8221; posts, I&#8217;ll answer an agile question in about a minute. Use the comments to suggest questions you&#8217;d like to see in future Short Answers.</p>
<p>In this post, I answer the question, &#8220;What should I do when I discover in the middle of a sprint that a story is larger than we planned?&#8221; Several people have asked me this, and the answer is <em>not</em>, &#8220;Suck it up and work 80 hours to get everything done.&#8221;</p>
<p><span id="more-55"></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="437" height="348" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="id" value="viddler_b05b54d" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.viddler.com/simple/b05b54d/" /><embed id="viddler_b05b54d" type="application/x-shockwave-flash" width="437" height="348" src="http://www.viddler.com/simple/b05b54d/" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/07/11/one-word-can-change-your-daily-scrum/' rel='bookmark' title='Permanent Link: One Word Can Change Your Daily Scrum'>One Word Can Change Your Daily Scrum</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/' rel='bookmark' title='Permanent Link: A Common, but Bad, Idea'>A Common, but Bad, Idea</a></li>
<li><a href='http://www.richardlawrence.info/2008/09/05/making-velocity-granular-enough/' rel='bookmark' title='Permanent Link: Making Velocity Granular Enough'>Making Velocity Granular Enough</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2008/12/10/when-stories-are-larger-than-planned/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Are the Product Owner and ScrumMaster&#8217;s Interests Opposed?</title>
		<link>http://www.richardlawrence.info/2008/11/26/are-the-product-owner-and-scrummasters-interests-opposed/</link>
		<comments>http://www.richardlawrence.info/2008/11/26/are-the-product-owner-and-scrummasters-interests-opposed/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 17:53:31 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[ScrumMaster]]></category>
		<category><![CDATA[Toyota]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=54</guid>
		<description><![CDATA[The Chief Engineer role in the Toyota Product Development System combines parts of the Product Owner, ScrumMaster, and senior technical team member roles from Scrum. In addition to leading the technical design of a new product and facilitating the work of the other engineers, the CE must deeply understand and care about what the customer [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/14/motivated-individuals/' rel='bookmark' title='Permanent Link: Motivated Individuals'>Motivated Individuals</a></li>
<li><a href='http://www.richardlawrence.info/2008/07/11/one-word-can-change-your-daily-scrum/' rel='bookmark' title='Permanent Link: One Word Can Change Your Daily Scrum'>One Word Can Change Your Daily Scrum</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>The Chief Engineer role in the Toyota Product Development System combines parts of the Product Owner, ScrumMaster, and senior technical team member roles from Scrum. In addition to leading the technical design of a new product and facilitating the work of the other engineers, the CE must deeply understand and care about what the customer values—he has ultimate responsibility for delivering value to the customer and for the resulting commercial success or failure of the product.</p>
<p>CEs have gone to amazing lengths to gain that deep understanding of the customer&#8217;s needs.</p>
<p><span id="more-54"></span></p>
<p>For example:</p>
<blockquote><p>While developing Toyota&#8217;s successful 2003 <em>Sienna</em>, the Sienna CE drove his team in Toyota&#8217;s previous minivan model more than 50,000 miles across North America through every part of Canada, the United States, and Mexico. The CE experienced a visceral lesson in what is important to the North American minivan driver and discovered in every locale new opportunities for improving the current product. As a result, the <em>Sienna</em> was made big enough to hold full sheets of plywood while the turning radius was tightened, more cupholders were added, and cross-wind stability was enhanced, among many other improvements that resulted from this experience.</p>
<p style="text-align: right;">(From <a href="http://www.amazon.com/gp/product/1563272822?ie=UTF8&amp;tag=richalawre-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1563272822"><em>The Toyota Product Development System</em></a> by James M. Morgan and Jeffrey K. Liker, p. 30)</p>
</blockquote>
<p>If you&#8217;ve followed recent discussions on the <a href="http://groups.yahoo.com/group/scrumdevelopment/">scrumdevelopment group</a>, you&#8217;ve seen multiple threads over the last couple months that discussed how the interests of the team, SM, and PO are intrinsically in conflict and that acting as both PO and SM requires a kind of useful schizophrenia.</p>
<p>I have to wonder: Toyota is one of the best product development organizations in the world. Are Toyota&#8217;s CEs a special breed, immune to the conflicts of software teams? Do the rest of us need distinct roles to balance our selfish interests?</p>
<p>At the very least, if we find that the interests of our POs, SMs, and teams seem to be fundamentally in conflict, we should ask <a href="http://en.wikipedia.org/wiki/5_Whys">why</a>. <strong>Shouldn&#8217;t we all have the same goal: Producing valuable software now and in the future?</strong> Perhaps we should consider how to align around that goal rather than how to balance the interests of roles centered on lesser goals in the hope that we achieve the true goal as a kind of dialectical byproduct.</p>
<p>It&#8217;s one thing to say that the PO and SM roles ought not be combined because each is so demanding that it requires a person&#8217;s full time attention. But it&#8217;s quite another to say that the roles are fundamentally locked in a conflict too intense to be handled by a single person, and that better software results from that conflict.</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/14/motivated-individuals/' rel='bookmark' title='Permanent Link: Motivated Individuals'>Motivated Individuals</a></li>
<li><a href='http://www.richardlawrence.info/2008/07/11/one-word-can-change-your-daily-scrum/' rel='bookmark' title='Permanent Link: One Word Can Change Your Daily Scrum'>One Word Can Change Your Daily Scrum</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2008/11/26/are-the-product-owner-and-scrummasters-interests-opposed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Motivated Individuals</title>
		<link>http://www.richardlawrence.info/2008/11/14/motivated-individuals/</link>
		<comments>http://www.richardlawrence.info/2008/11/14/motivated-individuals/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 20:31:35 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=53</guid>
		<description><![CDATA[As agile approaches the mainstream, it&#8217;s easy to lose sight of some of the core principles, especially this one: Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. If agile is to apply broadly, we can&#8217;t reserve it just for those projects that [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/03/agile-architecture-neither-bduf-nor-chaos/' rel='bookmark' title='Permanent Link: Agile Architecture &#8211; Neither BDUF nor Chaos'>Agile Architecture &#8211; Neither BDUF nor Chaos</a></li>
<li><a href='http://www.richardlawrence.info/2008/07/11/one-word-can-change-your-daily-scrum/' rel='bookmark' title='Permanent Link: One Word Can Change Your Daily Scrum'>One Word Can Change Your Daily Scrum</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>As agile approaches the mainstream, it&#8217;s easy to lose sight of some of the <a href="http://agilemanifesto.org/principles.html">core principles</a>, especially this one:</p>
<blockquote><p>Build projects around motivated individuals.<br />
Give them the environment and support they need,<br />
and trust them to get the job done.</p></blockquote>
<p>If agile is to apply broadly, we can&#8217;t reserve it just for those projects that start with motivated individuals. We need to learn how to cultivate them.</p>
<p><span id="more-53"></span></p>
<p><strong>What makes for motivated individuals on a software team? </strong></p>
<ol>
<li><strong>The belief that the product is worth building.</strong> (I consider really interesting technology a special case of this.)</li>
<li><strong>The belief that the expectations placed on the team are achievable. </strong></li>
</ol>
<p>(The book <a href="http://www.amazon.com/gp/product/007148499X?ie=UTF8&amp;tag=richalawre-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=007148499X">Influencer</a> divides these into Motivation and Ability, but I find that ability so often drives motivation that the two can&#8217;t easily be separated. Nonetheless, the book and <a href="http://www.influencerbook.com/blog/influencer">the authors&#8217; blog</a> are well worth reading.)</p>
<p>Scrum&#8217;s sharp distinction between &#8220;what to build,&#8221; which belongs to the Product Owner, and &#8220;how to build it,&#8221; which belongs to the team, can create a situation where the team passively builds whatever the Product Owner asks for whether they believe in the value or not. If better software is built by motivated individuals, this is not the way to get it.</p>
<p>This week, I facilitated a project retrospective for a team that struggled with the value of the product they&#8217;ve been working on since May. On several occasions, the team was visibly demotivated by the low value they saw in the product. They worked hard and did a good job, but I could tell that they weren&#8217;t motivated by the product itself. In the retrospective, one of the answers that emerged to &#8220;What should we do differently next time?&#8221; was, &#8220;Engage the Product Owner in conversations about the value of the product.&#8221; Had they done this, the team might have been able to help the Product Owner identify more valuable stories. Or the Product Owner might have been forced to articulate the value of the current stories more compellingly. Either way, the team would have been more motivated to deliver.</p>
<p>The principle I quoted above can be read as, &#8220;Find individuals who are already (or inherently) motivated and use them on your projects. Avoid the unmotivated individuals.&#8221; That&#8217;s fine as far as it goes, but I don&#8217;t think it usually works that way. It&#8217;s better interpreted something like this: &#8220;<strong>Find individuals who are open to caring about their work (i.e. potentially motivated). Engage them to become motivated about building something valuable. Let them make delivery commitments they believe they can achieve. Support them and get out of their way.</strong>&#8221; <em>That&#8217;s</em> how you build projects around motivated individuals.</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
<li><a href='http://www.richardlawrence.info/2008/11/03/agile-architecture-neither-bduf-nor-chaos/' rel='bookmark' title='Permanent Link: Agile Architecture &#8211; Neither BDUF nor Chaos'>Agile Architecture &#8211; Neither BDUF nor Chaos</a></li>
<li><a href='http://www.richardlawrence.info/2008/07/11/one-word-can-change-your-daily-scrum/' rel='bookmark' title='Permanent Link: One Word Can Change Your Daily Scrum'>One Word Can Change Your Daily Scrum</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2008/11/14/motivated-individuals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Agile Product Management Seminar &#8211; Nov 11, Denver</title>
		<link>http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/</link>
		<comments>http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 18:18:44 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[seminar]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=48</guid>
		<description><![CDATA[I&#8217;m hosting a free seminar on Tuesday, November 11 from 1:00-2:30 PM in the Denver Tech Center area. Please join me there and spread the word to others who might be interested. Here&#8217;s a brief description: Too many teams adopt agile processes like Scrum and XP, become effective at iterative and incremental delivery, get their [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/10/14/how-to-invest-less-and-make-more-from-your-software-projects/' rel='bookmark' title='Permanent Link: How to Invest Less and Make More From Your Software Projects'>How to Invest Less and Make More From Your Software Projects</a></li>
<li><a href='http://www.richardlawrence.info/2008/10/09/the-most-useful-release-burn-up-ive-seen-yet/' rel='bookmark' title='Permanent Link: The Most Useful Release Burn-up I&#8217;ve Seen Yet'>The Most Useful Release Burn-up I&#8217;ve Seen Yet</a></li>
<li><a href='http://www.richardlawrence.info/2007/11/25/jean-tabaka-on-11-ways-agile-adoptions-fail/' rel='bookmark' title='Permanent Link: Jean Tabaka on &#8220;11 Ways Agile Adoptions Fail&#8221;'>Jean Tabaka on &#8220;11 Ways Agile Adoptions Fail&#8221;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;m hosting a free seminar on Tuesday, November 11 from 1:00-2:30 PM in the Denver Tech Center area. Please join me there and spread the word to others who might be interested.</p>
<p>Here&#8217;s a brief description:</p>
<p><span id="more-48"></span></p>
<p><em>Too many teams adopt agile processes like Scrum and XP, become effective at iterative and incremental delivery, get their software quality higher than it has ever been before, and finally achieve a sustainable pace&#8230;yet fail to harness that new productivity to deliver anything of real business value.</em></p>
<p><em>As an agile coach, I see Product Owners who don&#8217;t understand the features on their Product Backlogs well enough to explain them to the team in a planning session. I see Product Owners who can&#8217;t explain the larger context of a user story. I hear teams and Product Owners tell me that it&#8217;s not possible to come up with a valuable release that will take less than 6 months to build. I see teams demotivated because they don&#8217;t see the value in what they&#8217;re building.</em></p>
<p><em>In this free seminar, I&#8217;ll show how effective agile product management can accelerate and increase ROI, I&#8217;ll introduce an approach to identify high value feature sets, and I&#8217;ll share some tips on how to avoid getting bogged down in the details and losing the big picture.</em></p>
<p>You can find more info and register here: <a href="http://agileproductmanagement1108-rl.eventbrite.com/" target="_blank">http://agileproductmanagement1108-rl.eventbrite.com</a>.</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/10/14/how-to-invest-less-and-make-more-from-your-software-projects/' rel='bookmark' title='Permanent Link: How to Invest Less and Make More From Your Software Projects'>How to Invest Less and Make More From Your Software Projects</a></li>
<li><a href='http://www.richardlawrence.info/2008/10/09/the-most-useful-release-burn-up-ive-seen-yet/' rel='bookmark' title='Permanent Link: The Most Useful Release Burn-up I&#8217;ve Seen Yet'>The Most Useful Release Burn-up I&#8217;ve Seen Yet</a></li>
<li><a href='http://www.richardlawrence.info/2007/11/25/jean-tabaka-on-11-ways-agile-adoptions-fail/' rel='bookmark' title='Permanent Link: Jean Tabaka on &#8220;11 Ways Agile Adoptions Fail&#8221;'>Jean Tabaka on &#8220;11 Ways Agile Adoptions Fail&#8221;</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

