<?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>Agile Bob on Making Agile a Reality &#187; Product Owner</title>
	<atom:link href="http://www.agileforall.com/category/scrum-agile/product-owner/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agileforall.com</link>
	<description>Agile For All</description>
	<lastBuildDate>Sun, 05 Feb 2012 04:36:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Agile antipattern: Sizing or estimating bug fixes</title>
		<link>http://www.agileforall.com/2010/05/05/agile-antipattern-sizing-or-estimating-bug-fixes/</link>
		<comments>http://www.agileforall.com/2010/05/05/agile-antipattern-sizing-or-estimating-bug-fixes/#comments</comments>
		<pubDate>Wed, 05 May 2010 16:45:06 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Antipattern]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=1573</guid>
		<description><![CDATA[Is the bug to the left a large bug or a small bug?  It looks HUGE to me!  Well, in reality it is probably between .5 and .75 inches long.  Not really a very big bug at all.  Why do we care? Because trying to size the fixing of software &#8220;bugs&#8221; is at least as hard [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/' rel='bookmark' title='Testing to find defects is waste'>Testing to find defects is waste</a> <small>Have you ever heard someone say that testing to find defects is...</small></li>
<li><a href='http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/' rel='bookmark' title='Agile antipattern: Code freezes during each iteration'>Agile antipattern: Code freezes during each iteration</a> <small>Over the past 18 months I&#8217;ve encountered a number of teams where...</small></li>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="alignleft size-full wp-image-1574" title="Microsoft Word - Squash Bug Network Article.docx" src="http://www.agileforall.com/wp-content/uploads/2010/05/sqbug.jpg" alt="" width="288" height="359" />Is the bug to the left a large bug or a small bug?  It looks HUGE to me!  Well, in reality it is probably between .5 and .75 inches long.  Not really a very big bug at all.  Why do we care? Because trying to size the fixing of software &#8220;bugs&#8221; is at least as hard as figuring out how big this bug is!</p>
<p>When I teach an Agile or Scrum course someone will almost always ask a question like &#8220;How do you handle bug fixes in iterations or sprints?&#8221;  When I ask &#8220;How do you want to handle them?&#8221; we get into a pretty interesting discussion.  Most people say something similar to &#8220;We should prioritize them with the user stories, size them like we do user stories and then see what fits into each iteration.&#8221;  I usually smile and ask any developers if they know ahead of time how long it will take to fix a defect.  They ALWAYS say &#8220;Sometimes.&#8221;  And THAT is the problem!<span id="more-1573"></span></p>
<p>How can you actually determine the size of fixing something which is broken in an unknown way?  I tell people in my classes I only know two sizes for defect fixes: 1) Trivial because I already know what&#8217;s broken and how to fix it, or 2) Infinite because I have no idea what&#8217;s broken or how to fix it!  If those are the only two sizes available to us how can we possibly put them into iterations effectively?</p>
<p>I have found one effective solution to be the use of Kanban techniques for defect fixing.  I don&#8217;t want to get into what Kanban is or isn&#8217;t and when it should or shouldn&#8217;t be used, so I&#8217;ll just lay out what I have seen be effective for a number of teams:</p>
<ol>
<li>Prioritize the defect list.  This is NOT done in the context of user stories, but separately.  The list is prioritized however the Product Owner says it should be prioritized.</li>
<li>The team and Product Owner decide on how much effort (time) should be used each iteration to work on defects.  Hopefully this is not a large amount, but it might be for teams which have large numbers of defects in a legacy system.</li>
<li>The team determines when the defect fixing time occurs and how they do it. Most effective is to put a gate or two in place on the defects.  For example, gate 1 may say the developer needs to know within 2 hours if the defect is going to take more than a day to fix.  If so, then put it off until a discussion can take place with the Product Owner.  Gate 2 may be after a day if the defect is not fixed perhaps another discussion needs to take place.  However the gates are set up (if they are)  the defects are worked in priority order.</li>
<li>Limit the number of bug fixes being worked at one time to a very small number.  If you don&#8217;t do this you will have each developer working on at least one defect and run the serious risk of none of them getting fixed before the iteration or sprint ends!</li>
</ol>
<p>This 3 step approach allows the team to work on defects in priority order while allowing a set amount of time to be spent on the defects.  The amount of time spent can be changed as needed to address the business needs of the organization at any point in time.</p>
<p>The downside of this is no one can tell a stakeholder something like &#8220;that bug will be fixed by date X&#8221; or &#8220;we&#8217;ll knock out X bugs this iteration.&#8221;  Saying anything like that is a lie anyway, so this shouldn&#8217;t be a big issue.  I say these statements are lies under the assumption the defects are non-trivial.</p>
<p>How else have you managed a defect backlog that has been effective?  I&#8217;d love to have more proven techniques for people to experiment with!</p>
<p>Until next time my clients will be Making Agile a Reality<sup>®</sup> by using sizing only when appropriate!
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2010%2F05%2F05%2Fagile-antipattern-sizing-or-estimating-bug-fixes%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2010%2F05%2F05%2Fagile-antipattern-sizing-or-estimating-bug-fixes%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2010%2F05%2F05%2Fagile-antipattern-sizing-or-estimating-bug-fixes%2F&amp;title=Agile%20antipattern%3A%20Sizing%20or%20estimating%20bug%20fixes" id="wpa2a_2"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/' rel='bookmark' title='Testing to find defects is waste'>Testing to find defects is waste</a> <small>Have you ever heard someone say that testing to find defects is...</small></li>
<li><a href='http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/' rel='bookmark' title='Agile antipattern: Code freezes during each iteration'>Agile antipattern: Code freezes during each iteration</a> <small>Over the past 18 months I&#8217;ve encountered a number of teams where...</small></li>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2010/05/05/agile-antipattern-sizing-or-estimating-bug-fixes/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>New to agile? Remember a user story is more than a card!</title>
		<link>http://www.agileforall.com/2010/05/03/new-to-agile-remember-a-user-story-is-more-than-a-card/</link>
		<comments>http://www.agileforall.com/2010/05/03/new-to-agile-remember-a-user-story-is-more-than-a-card/#comments</comments>
		<pubDate>Mon, 03 May 2010 17:20:09 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=1018</guid>
		<description><![CDATA[What&#8217;s wrong with the user story on the card?  It seems to have everything we need: a) short title, b) a size (in this case 2), and c) a well-written story using the standard &#8220;As a &#8230; I want &#8230; so that &#8230;&#8221; format.  So what&#8217;s wrong? Nothing!  Well, almost nothing.  The user story card [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/' rel='bookmark' title='New to agile?  INVEST in good user stories'>New to agile?  INVEST in good user stories</a> <small>As a &lt;user&gt; I want &lt;function&gt; so that&lt;value&gt;. Above is a very...</small></li>
<li><a href='http://www.agileforall.com/2009/02/23/new-to-agile-remember-one-thing-just-enough-just-in-time/' rel='bookmark' title='New to agile?  Remember one thing: Just enough, just in time'>New to agile?  Remember one thing: Just enough, just in time</a> <small>If you lived through the past few decades you have undoubtedly heard...</small></li>
<li><a href='http://www.agileforall.com/2009/02/20/when-in-doubt-ask-how-will-i-know-ive-done-that/' rel='bookmark' title='When in Doubt Ask &#8220;How Will I Know I&#8217;ve Done That?&#8221;'>When in Doubt Ask &#8220;How Will I Know I&#8217;ve Done That?&#8221;</a> <small>Tired of not knowing exactly what to create or test? Get in...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="alignleft size-full wp-image-1565" title="us" src="http://www.agileforall.com/wp-content/uploads/2010/05/us.png" alt="" width="336" height="232" />What&#8217;s wrong with the user story on the card?  It seems to have everything we need: a) short title, b) a size (in this case 2), and c) a well-written story using the standard &#8220;As a &#8230; I want &#8230; so that &#8230;&#8221; format.  So what&#8217;s wrong? Nothing!  Well, almost nothing.  The user story card is a great <em>STARTING POINT</em>, but it is not sufficient by itself.</p>
<p>In coaching Agile and Scrum teams I see many of them starting out with the assumption that the user story card contains all the information they need in order to create a high quality piece of software.  Forgive me for being harsh, but how stupid is that?  Assuming a single sentence can fully describe something which might take a few days to analyze, design, code and test seems pretty ambitious.  No, let me take that back.  It&#8217;s more than pretty ambitious, it is just not possible. So I ask again, what&#8217;s wrong with this story card?<span id="more-1018"></span></p>
<p>And again I&#8217;ll answer that there is nothing wrong with it, but it is a <em>STARTING POINT</em>.  Many people are familiar with the phrase &#8220;INVEST in good user stories&#8221; which is an easy way to remember to use the INVEST acronym for guidance when creating user stories.  I wrote a blog entry about that titled &#8220;<a href="http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/">New to agile? INVEST in good user stories</a>&#8220;  Web searches lead people to that blog entry many times every day.  But it isn&#8217;t sufficient!  If you read agile literature for any period of time you will eventually see the phrase &#8220;A user story is an invitation to a conversation.&#8221;  This is vitally important to success!  A conversation allows more description than a single sentence.  It can clarify many aspects of the user story.  Taking this a step further we also need to be able to confirm the user story is completed.</p>
<p>Taking all of this together we end up with the 3 C&#8217;s of good user stories: <strong>Card, Conversation, Confirmation</strong>.  Ron Jeffries <a href="http://xprogramming.com/articles/expcardconversationconfirmation/">wrote about this</a> all the way back in 2001 and his advice is still good today.  Agile and Scrum teams need to remember the card is the starting point.  It leads to a conversation where more specifics are given and negotiation (the N in INVEST) can occur.  All of that leads to confirmation in the form of tests (the T in INVEST).  A good story card will likely end up with a back side covered with results of the conversation(s) and confirmation tests.</p>
<p><img class="alignright size-medium wp-image-1569" title="smeeting" src="http://www.agileforall.com/wp-content/uploads/2010/05/smeeting-300x225.jpg" alt="" width="300" height="225" />Next time you see a user story card don&#8217;t ask yourself if you need to have a conversation about it.  Instead just assume you need to have a conversation and have it!  Go to the Product Owner or customer or customer proxy and ask to discuss the story.  Make notes for yourself.  In fact it is even better (vital in my mind) to have the conversation involve a developer, tester and product person.  I call them 3-headed conversations.  This allows everyone to be on the same page so later there is no disagreement about what was really meant by the story.  This avoids one of my least favorite conversations which happens when the tester and developer disagree about what the requirement means AFTER the code is written.</p>
<p>If you are using an agile lifecycle management tool rather than physical cards, record the decisions made during the conversation and any resulting confirmation tests in various fields in the tool.  You must make sure the information is captured in case someone else who was not part of the original 3-headed conversation ends up doing some work on the story.</p>
<p>Try using the 3 C&#8217;s and see if your results improve.  I&#8217;m sure they will.</p>
<p>Until next time I&#8217;ll be Making Agile a Reality<sup>®</sup> for my clients by continuing to train and coach them to use the 3 C&#8217;s effectively.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2010%2F05%2F03%2Fnew-to-agile-remember-a-user-story-is-more-than-a-card%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2010%2F05%2F03%2Fnew-to-agile-remember-a-user-story-is-more-than-a-card%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2010%2F05%2F03%2Fnew-to-agile-remember-a-user-story-is-more-than-a-card%2F&amp;title=New%20to%20agile%3F%20Remember%20a%20user%20story%20is%20more%20than%20a%20card%21" id="wpa2a_4"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/' rel='bookmark' title='New to agile?  INVEST in good user stories'>New to agile?  INVEST in good user stories</a> <small>As a &lt;user&gt; I want &lt;function&gt; so that&lt;value&gt;. Above is a very...</small></li>
<li><a href='http://www.agileforall.com/2009/02/23/new-to-agile-remember-one-thing-just-enough-just-in-time/' rel='bookmark' title='New to agile?  Remember one thing: Just enough, just in time'>New to agile?  Remember one thing: Just enough, just in time</a> <small>If you lived through the past few decades you have undoubtedly heard...</small></li>
<li><a href='http://www.agileforall.com/2009/02/20/when-in-doubt-ask-how-will-i-know-ive-done-that/' rel='bookmark' title='When in Doubt Ask &#8220;How Will I Know I&#8217;ve Done That?&#8221;'>When in Doubt Ask &#8220;How Will I Know I&#8217;ve Done That?&#8221;</a> <small>Tired of not knowing exactly what to create or test? Get in...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2010/05/03/new-to-agile-remember-a-user-story-is-more-than-a-card/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Agile pondering: Is it agile to have a &#8220;single wringable neck?&#8221;</title>
		<link>http://www.agileforall.com/2009/07/23/agile-pondering-is-it-agile-to-have-a-single-wringable-neck/</link>
		<comments>http://www.agileforall.com/2009/07/23/agile-pondering-is-it-agile-to-have-a-single-wringable-neck/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 17:38:20 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Product Champion]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=117</guid>
		<description><![CDATA[In Scrum one of the named roles is that of Product Owner.  Some people have taken to referring to this position as the &#8220;single wringable neck&#8221; on a Scrum team.  This is because the Product Owner is ultimately responsible for the prioritized product backlog which the team uses as their to-do list to build the [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/' rel='bookmark' title='New to agile? 3 ways to cut scope (and live)'>New to agile? 3 ways to cut scope (and live)</a> <small>The primary way I see teams release products faster is by reducing...</small></li>
<li><a href='http://www.agileforall.com/2009/11/24/new-to-agile-give-thanks/' rel='bookmark' title='New to agile? Give thanks!'>New to agile? Give thanks!</a> <small>Here in the United States we will be celebrating the Thanksgiving holiday...</small></li>
<li><a href='http://www.agileforall.com/2009/12/16/agile-pondering-how-does-agile-work-with-a-team-of-1/' rel='bookmark' title='Agile pondering: How does agile work with a team of 1?'>Agile pondering: How does agile work with a team of 1?</a> <small>See that picture off to the left?  That is me and my...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.agileforall.com/wp-content/uploads/2009/07/noose.jpg"><img class="alignleft size-medium wp-image-964" title="noose" src="http://www.agileforall.com/wp-content/uploads/2009/07/noose-199x300.jpg" alt="noose" width="199" height="300" /></a>In Scrum one of the named roles is that of Product Owner.  Some people have taken to referring to this position as the &#8220;single wringable neck&#8221; on a Scrum team.  This is because the Product Owner is ultimately responsible for the prioritized product backlog which the team uses as their to-do list to build the product.  If the Product Owner does a poor job then the resulting product will not meet customer needs.  That scenario leads people to believe the Product Owner should be held accoutable for the failure.</p>
<p>To me this is very short-sighted.  The Product Owner has a LOT to do without having this additional burden placed upon them.  Because I want to keep this blog entry short I will give 5 reasons why the &#8220;single wringable neck&#8221; concept has to be left behind:<span id="more-117"></span></p>
<ol>
<li>Product Owner&#8217;s normally do not have sufficient training to do the job well.  We often here of Certified Scrum Masters (CSM), but we don&#8217;t hear about Certified Scrum Product Owners (CSPO) nearly as much.  This is a shame.  If they are the single wringable neck, why not give them a fighting chance by giving them some training specific to their position.  I don&#8217;t care if the training is a certified training or not, so long as it is good, solid training.  A few months ago we had our Agile Product Management Boot Camp which is a great way to get this training.</li>
<li>Some organizations isolate Product Owners in a way which does not allow them to interact with customers properly.  I&#8217;ve actually heard sales people say &#8220;We can&#8217;t have the product person talking to our customers &#8211; it would just confuse the customer.&#8221;  When I heard this I think my reply was &#8220;In other words they might tell the customer the hard truths?&#8221;  You can guess how the conversation went from there.</li>
<li>Many organizations expect too much from their Product Owners.  Product Owners need to interact with the team and customers on a regular basis.  They also need to be doing other forms of market research.  They may need to attend trade shows.  They may be involved in Change Control Board meetings.  They may prioritize defect lists.  They may be helping the marketing department develop materials.  They may be creating nice charts and fancy reports for executives about how products are expected to perform.  They may&#8230;   The list can go on forever.  Please make sure your Product Owners have time for what is truly important.  Find other ways to accomplish the tangential items.</li>
<li>Product Owners don&#8217;t get to understand lost sales.  If you are trying to create a product to grow your market share then finding out why you lose sales is CRUCIAL!  Lost sales is a huge potential source of product ideas.  Talking to current customers may help you maintain your market share, but it isn&#8217;t guaranteed to grow it.</li>
<li>Product Owners ultimately report to someone else and that someone else sometimes makes inappropriate decisions.  Sorry to be so blunt, but this occurs more often than anyone wants to admit.  How can a Product Owner be held accountable if someone else ultimately pulls the strings?  Worse yet, the person in charge often doesn&#8217;t admit the errors were their fault.  This all falls in the category of sad but true.</li>
</ol>
<p>As you can see, I don&#8217;t agree with the single wringable neck concept.  I believe a team creates products and all members of the team contribute.  A Product Owner may ultimately be one of the major contributing factors to failure, but it is rarely the only one.</p>
<p>Until next time I&#8217;m going to be Making Agile a Reality<sup>®</sup> by helping teams get effective training and coaching for all team members including Product Owners rather than concentrating on just one or two team members bringing information back to the team.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F07%2F23%2Fagile-pondering-is-it-agile-to-have-a-single-wringable-neck%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F07%2F23%2Fagile-pondering-is-it-agile-to-have-a-single-wringable-neck%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F07%2F23%2Fagile-pondering-is-it-agile-to-have-a-single-wringable-neck%2F&amp;title=Agile%20pondering%3A%20Is%20it%20agile%20to%20have%20a%20%26%238220%3Bsingle%20wringable%20neck%3F%26%238221%3B" id="wpa2a_6"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/' rel='bookmark' title='New to agile? 3 ways to cut scope (and live)'>New to agile? 3 ways to cut scope (and live)</a> <small>The primary way I see teams release products faster is by reducing...</small></li>
<li><a href='http://www.agileforall.com/2009/11/24/new-to-agile-give-thanks/' rel='bookmark' title='New to agile? Give thanks!'>New to agile? Give thanks!</a> <small>Here in the United States we will be celebrating the Thanksgiving holiday...</small></li>
<li><a href='http://www.agileforall.com/2009/12/16/agile-pondering-how-does-agile-work-with-a-team-of-1/' rel='bookmark' title='Agile pondering: How does agile work with a team of 1?'>Agile pondering: How does agile work with a team of 1?</a> <small>See that picture off to the left?  That is me and my...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/07/23/agile-pondering-is-it-agile-to-have-a-single-wringable-neck/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile antipattern: Waiting for all the requirements before starting</title>
		<link>http://www.agileforall.com/2009/07/16/agile-antipattern-waiting-for-all-the-requirements-before-starting/</link>
		<comments>http://www.agileforall.com/2009/07/16/agile-antipattern-waiting-for-all-the-requirements-before-starting/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 17:01:45 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Antipattern]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Product Champion]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=924</guid>
		<description><![CDATA[Time for a short blog entry (I tend to be way too verbose!). I often see teams trying to make sure they have all of the requirements for their projects before they start doing any substantive work on the project. Unfortunately, this often leads to long delays at the front of the process which in [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/04/09/agile-antipattern-extending-an-iteration/' rel='bookmark' title='Agile antipattern: Extending an iteration'>Agile antipattern: Extending an iteration</a> <small>I had a previous blog post about stopping an iteration and how...</small></li>
<li><a href='http://www.agileforall.com/2009/02/27/agile-antipattern-everything-is-priority-1/' rel='bookmark' title='Agile Antipattern: Everything is priority 1'>Agile Antipattern: Everything is priority 1</a> <small>I was just working on some Powerpoint slides for our Agile Product Management...</small></li>
<li><a href='http://www.agileforall.com/2008/09/20/are-you-agile-the-nokia-test/' rel='bookmark' title='Are you agile &#8211; the Nokia test'>Are you agile &#8211; the Nokia test</a> <small>I&#8217;ve been helping lots of clients start new agile initiatives recently.  This...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Time for a short blog entry (I tend to be way too verbose!). I often see teams trying to make sure they have all of the requirements for their projects before they start doing any substantive work on the project. Unfortunately, this often leads to long delays at the front of the process which in turn causes the rest of the process to be squeezed. The Nokia Test for Agility underscores this point by having one of the questions be about specification. See <a href="http://www.agileforall.com/2008/09/20/are-you-agile-the-nokia-test/" target="_blank">this blog entry</a> to learn more about the Nokia test and look particularly at bullet #3.</p>
<p>Remember a few things when you are tempted to get all of the requirements up front:</p>
<ol>
<li>Requirements WILL change.  In courses I teach the average percentage of requirements which change is 50%.</li>
<li>Requirements WILL be dropped.  We almost always think we can get more done than is possible (or even desirable in many cases).  It seems the average percentage of dropped requirements is 25%.</li>
<li>New requirements WILL come up during development.  This too seems to average about 25%.</li>
</ol>
<p>When you take all 3 of these things together you quickly realize you are fighting a losing battle by trying to &#8220;get the requirements right&#8221; up front.  Get the requirements good enough to start moving forward.  Once work starts requirements can change, be dropped or new ones can come up easily if you truly embrace the agile principle to inspect and adapt.  Keep looking for what will make the product better, not necessarily what a requirements list says from a few months ago.  This isn&#8217;t up to the developers themselves, but the product owners and others who maintain the backlog.  Build GREAT products by adapting to changing conditions.  EMBRACE change as a good thing, not as an impediment.</p>
<p>Until next time I&#8217;m Making Agile A Reality<sup>®</sup> by focusing on emerging requirements over time, not trying (in vain) to get them perfect up front.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F07%2F16%2Fagile-antipattern-waiting-for-all-the-requirements-before-starting%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F07%2F16%2Fagile-antipattern-waiting-for-all-the-requirements-before-starting%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F07%2F16%2Fagile-antipattern-waiting-for-all-the-requirements-before-starting%2F&amp;title=Agile%20antipattern%3A%20Waiting%20for%20all%20the%20requirements%20before%20starting" id="wpa2a_8"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/04/09/agile-antipattern-extending-an-iteration/' rel='bookmark' title='Agile antipattern: Extending an iteration'>Agile antipattern: Extending an iteration</a> <small>I had a previous blog post about stopping an iteration and how...</small></li>
<li><a href='http://www.agileforall.com/2009/02/27/agile-antipattern-everything-is-priority-1/' rel='bookmark' title='Agile Antipattern: Everything is priority 1'>Agile Antipattern: Everything is priority 1</a> <small>I was just working on some Powerpoint slides for our Agile Product Management...</small></li>
<li><a href='http://www.agileforall.com/2008/09/20/are-you-agile-the-nokia-test/' rel='bookmark' title='Are you agile &#8211; the Nokia test'>Are you agile &#8211; the Nokia test</a> <small>I&#8217;ve been helping lots of clients start new agile initiatives recently.  This...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/07/16/agile-antipattern-waiting-for-all-the-requirements-before-starting/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How to make a LOT more money using agile</title>
		<link>http://www.agileforall.com/2009/05/27/how-to-make-a-lot-more-money-using-agile/</link>
		<comments>http://www.agileforall.com/2009/05/27/how-to-make-a-lot-more-money-using-agile/#comments</comments>
		<pubDate>Wed, 27 May 2009 19:24:31 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=817</guid>
		<description><![CDATA[Yesterday&#8217;s blog post dealt with how to manage scope for an agile project.  Today I have to admit it was a bit of a setup.  It was designed to set up today&#8217;s blog post which is really the important one! See that pile of money over there to the left?  That represents a small fraction [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/09/14/new-to-agile-dont-make-it-too-hard/' rel='bookmark' title='New to agile?  Don&#8217;t make it too hard!'>New to agile?  Don&#8217;t make it too hard!</a> <small>OK, so this isn&#8217;t my normal type of blog entry.  I don&#8217;t...</small></li>
<li><a href='http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/' rel='bookmark' title='New to agile? 3 ways to cut scope (and live)'>New to agile? 3 ways to cut scope (and live)</a> <small>The primary way I see teams release products faster is by reducing...</small></li>
<li><a href='http://www.agileforall.com/2009/07/16/agile-antipattern-waiting-for-all-the-requirements-before-starting/' rel='bookmark' title='Agile antipattern: Waiting for all the requirements before starting'>Agile antipattern: Waiting for all the requirements before starting</a> <small>Time for a short blog entry (I tend to be way too...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><img class="alignleft" src="http://www.agileforall.com/images/bills.jpg" alt="" width="318" height="274" />Yesterday&#8217;s blog post dealt with <a href="http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/" target="_blank">how to manage scope</a> for an agile project.  Today I have to admit it was a bit of a setup.  It was designed to set up today&#8217;s blog post which is really the important one!</p>
<p>See that pile of money over there to the left?  That represents a small fraction of the amount of money your organization is potentially wasting by not being able to properly manage the scope of projects.  I want to be clear this is not about project delays and overruns caused by scope creep.  I am actually writing about something completely different.  Something much more fundamental and actually fairly easy to obtain when an organization has truly embraced all that agile has to offer.  To me this is one of the most important benefits of agility, but the number of organizations doing it well is extremely small.  Warning, this is a LONG blog entry, but I think it is well worth the effort to read it!</p>
<p><span id="more-817"></span></p>
<p>The topic I&#8217;m writing about is the ability to manage scope and expectations properly.  The gains available by doing this are truly staggering.  If your organization was given the opportunity to increase ROI by 100% per project would someone in the organization be tasked with looking into the opportunity?  What if the ROI per project could be increased by 200%?  If the opportunity was for 500% increase in ROI per project would your organization perhaps have more than one person look into the opportunity, or would it sound too good to be true and therefore be discounted?  I know this sounds unbelievable, but the ability to achieve much, much higher ROI is very real, and it only depends on your organization&#8217;s ability to manage scope and expectations effectively.</p>
<p>Do I have your attention yet?  I hope so because this is really valuable information that most people just gloss over in various agile courses.  I have to admit that I didn&#8217;t cover it very well until recently.  I glossed over it mostly because I didn&#8217;t understand it very well.  Now I understand it and I&#8217;ll try to help you understand it.  The basic concept is VERY simple and can be covered with just 3 words:</p>
<p style="text-align: center;"><strong>More frequent releases</strong></p>
<p style="text-align: left;">Yup, that&#8217;s the key.  It is much easier said than done though.  It means expectations must be set for releases to be smaller but still have significant marketable value.  It also means managing scope for smaller releases so the value can actually be delivered to meet the expectations.  If we make the assumption these two pre-requisites can be handled, then we can also assume faster releases are possible.  Yes, I know, releasing software is expensive, requires other groups, etc.  For now, let&#8217;s assume all of those costs are negligible compared to the potential results and see where we end up.</p>
<p style="text-align: left;">Let&#8217;s use a standard scenario as a starting point.  In this scenario a team of 8 people work on a project for a year with an anticipated ROI of 100% after 2 years.  In numbers this means the organization spends $1,000,000 (approximately) in 12 months to build the product and they expect to get $2,000,000 in revenue within the 12 months following release.  ROI is calculated as $profit/$invested which in this case is ($2,000,000-$1,000,000)/$1,000,000 or 100%.  Another interesting number is cash expended, which in this case exactly matches the investment since we did all of the investment prior to receiving any return.</p>
<p style="text-align: left;">Let&#8217;s assume that scope can be managed so the product can be delivered in two phases, each taking 6 months.  Let&#8217;s further assume each piece of the product is worth about half of the revenue value of the complete product.  In this case the team works 6 months at an investment of $500,000 to build the first piece of the product.  They then work 6 more months at an additional cost of $500,000 to complete the second half of the product.  However, after 6 months revenue starts to be brought in for the first release.  This revenue equals half of what was originally expected for a full product, so after going through some calculations we realize the amount of revenue during the first 6 months of release of the first half of the product would be $500,000 ($2,000,000 for full product for 12 months = $500,000 for half product for 6 months).  Interestingly, this exactly matches the cost for building the second half of the product, so the cash expended is actually only $500,000 for building the product vs. $1,000,000 for building the product in one step.</p>
<p style="text-align: left;">Now let&#8217;s look at the other numbers.  After phase 2 of the product is completed it too starts to bring in revenue.  We now have the complete product, so we can get full value of it during each time period.  In other words, during the next 12 months it will generate $2,000,000 in revenue.  This brings total revenue to $2,500,000 which means our ROI is now 300% (higher profit divided by smaller investment &#8211; $1,500,000 profit / $500,000 invested).  Remember, all we did was have two releases of approximately equal value.  Nothing else changed, but half the cash was saved and more revenue was generated.  Here is a table showing this scenario:</p>
<table border="1" align="center">
<tbody>
<tr>
<td>Month</td>
<td>Expense</td>
<td>Revenue</td>
<td>Cash (Profit)</td>
<td>Total Revenue</td>
</tr>
<tr>
<td>6</td>
<td>$500,000</td>
<td>$0</td>
<td>-$500,000</td>
<td>$0</td>
</tr>
<tr>
<td>12</td>
<td>$500,000</td>
<td>$500,000</td>
<td>-$500,000</td>
<td>$500,000</td>
</tr>
<tr>
<td>24</td>
<td>$0</td>
<td>$2,000,000</td>
<td>$1,500,000</td>
<td>$2,500,000</td>
</tr>
</tbody>
</table>
<p> </p>
<p style="text-align: left;">Time to take another step.  Let&#8217;s make the assumption we can release 4 times per year with approximately equal valued releases and the same assumptions as in the above scenarios.  Now we work 3 months at a cost of $250,000 to generate release 1.  We do the same thing every 3 months until the year is completed.  Each release generates 25% of the value of the entire release, which over a 3 month period would be $125,000.  This leads to the following table:</p>
<table border="1" align="center">
<tbody>
<tr>
<td>Month</td>
<td>Expense</td>
<td>Revenue</td>
<td>Cash (Profit)</td>
<td>Total Revenue</td>
</tr>
<tr>
<td>3</td>
<td>$250,000</td>
<td>$0</td>
<td>-$250,000</td>
<td>$0</td>
</tr>
<tr>
<td>6</td>
<td>$250,000</td>
<td>$125,000</td>
<td>-$375,000</td>
<td>$125,000</td>
</tr>
<tr>
<td>9</td>
<td>$250,000</td>
<td>$250,000</td>
<td>-$375,000</td>
<td>$375,000</td>
</tr>
<tr>
<td>12</td>
<td>$250,000</td>
<td>$375,000</td>
<td>-$250,000</td>
<td>$750,000</td>
</tr>
<tr>
<td>15</td>
<td>$0</td>
<td>$500,000</td>
<td>$250,000</td>
<td>$1,250,000</td>
</tr>
<tr>
<td>18</td>
<td>$0</td>
<td>$500,000</td>
<td>$750,000</td>
<td>$1,750,000</td>
</tr>
<tr>
<td>21</td>
<td>$0</td>
<td>$500,000</td>
<td>$1,250,000</td>
<td>$2,250,000</td>
</tr>
<tr>
<td>24</td>
<td>$0</td>
<td>$500,000</td>
<td>$1,750,000</td>
<td>$2,750,000</td>
</tr>
</tbody>
</table>
<p> </p>
<p style="text-align:left">Now we have a situation where our cash outlay is reduced to $375,000 and our revenue has increased to $2,750,000.  This gives an ROI of 467%.</p>
<p>For the next scenario let&#8217;s say we can do the same 4 releases per year, but now we release higher value items first (after all, we are working from a prioritized product backlog, right???).  In this scenario let&#8217;s say release 1 is worth 40% of the total, release 2 is worth 30%, release 3 is worth 20% and release 4 is worth 10%.  Now our table is as follows:</p>
<table border="1" align="center">
<tbody>
<tr>
<td>Month</td>
<td>Expense</td>
<td>Revenue</td>
<td>Cash (Profit)</td>
<td>Total Revenue</td>
</tr>
<tr>
<td>3</td>
<td>$250,000</td>
<td>$0</td>
<td>-$250,000</td>
<td>$0</td>
</tr>
<tr>
<td>6</td>
<td>$250,000</td>
<td>$200,000</td>
<td>-$300,000</td>
<td>$200,000</td>
</tr>
<tr>
<td>9</td>
<td>$250,000</td>
<td>$350,000</td>
<td>-$200,000</td>
<td>$550,000</td>
</tr>
<tr>
<td>12</td>
<td>$250,000</td>
<td>$450,000</td>
<td>$0</td>
<td>$1,000,000</td>
</tr>
<tr>
<td>15</td>
<td>$0</td>
<td>$500,000</td>
<td>$500,000</td>
<td>$1,500,000</td>
</tr>
<tr>
<td>18</td>
<td>$0</td>
<td>$500,000</td>
<td>$1,000,000</td>
<td>$2,000,000</td>
</tr>
<tr>
<td>21</td>
<td>$0</td>
<td>$500,000</td>
<td>$1,500,000</td>
<td>$2,500,000</td>
</tr>
<tr>
<td>24</td>
<td>$0</td>
<td>$500,000</td>
<td>$2,000,000</td>
<td>$3,000,000</td>
</tr>
</tbody>
</table>
<p> </p>
<p style="text-align: left;">$300,000 cash invested and $2,000,000 total profit which is now 667% ROI.</p>
<p style="text-align: left;">Bear with me, almost done.  For the next scenario let&#8217;s not have the team build the features worth 20% or 10% of the total product value.  They are low priority items anyway.  Doing this would generate the following table:</p>
<table border="1" align="center">
<tbody>
<tr>
<td>Month</td>
<td>Expense</td>
<td>Revenue</td>
<td>Cash (Profit)</td>
<td>Total Revenue</td>
</tr>
<tr>
<td>3</td>
<td>$250,000</td>
<td>$0</td>
<td>-$250,000</td>
<td>$0</td>
</tr>
<tr>
<td>6</td>
<td>$250,000</td>
<td>$200,000</td>
<td>-$300,000</td>
<td>$200,000</td>
</tr>
<tr>
<td>9</td>
<td>$0</td>
<td>$350,000</td>
<td>$50,000</td>
<td>$550,000</td>
</tr>
<tr>
<td>12</td>
<td>$0</td>
<td>$350,000</td>
<td>$400,000</td>
<td>$900,000</td>
</tr>
<tr>
<td>15</td>
<td>$0</td>
<td>$350,000</td>
<td>$750,000</td>
<td>$1,250,000</td>
</tr>
<tr>
<td>18</td>
<td>$0</td>
<td>$350,000</td>
<td>$1,100,000</td>
<td>$1,600,000</td>
</tr>
<tr>
<td>21</td>
<td>$0</td>
<td>$350,000</td>
<td>$1,450,000</td>
<td>$1,950,000</td>
</tr>
<tr>
<td>24</td>
<td>$0</td>
<td>$350,000</td>
<td>$1,800,000</td>
<td>$2,300,000</td>
</tr>
</tbody>
</table>
<p> </p>
<p style="text-align: left;">In this scenario we have the same cash investment of $300,000 but now we only made $1,800,000 in profit for an ROI of 600%.  Why would we want to do this?  Well, what is our team doing during those second 6 months of development?  In this scenario they are idle.  So let&#8217;s use them!  Find another project with similar parameters and have them start it 6 months earlier than whey would have otherwise.  Consider the exact same setup as in the previous scenario except we&#8217;ll be generating revenue from two different products after month 9.  In this case the table looks like:</p>
<table border="1" align="center">
<tbody>
<tr>
<td>Month</td>
<td>Expense</td>
<td>Revenue</td>
<td>Cash (Profit)</td>
<td>Total Revenue</td>
</tr>
<tr>
<td>3</td>
<td>$250,000</td>
<td>$0</td>
<td>-$250,000</td>
<td>$0</td>
</tr>
<tr>
<td>6</td>
<td>$250,000</td>
<td>$200,000</td>
<td>-$300,000</td>
<td>$200,000</td>
</tr>
<tr>
<td>9</td>
<td>$250,000</td>
<td>$350,000</td>
<td>-$200,000</td>
<td>$550,000</td>
</tr>
<tr>
<td>12</td>
<td>$250,000</td>
<td>$550,000</td>
<td>$100,000</td>
<td>$1,100,000</td>
</tr>
<tr>
<td>15</td>
<td>$0</td>
<td>$700,000</td>
<td>$800,000</td>
<td>$1,800,000</td>
</tr>
<tr>
<td>18</td>
<td>$0</td>
<td>$700,000</td>
<td>$1,500,000</td>
<td>$2,500,000</td>
</tr>
<tr>
<td>21</td>
<td>$0</td>
<td>$700,000</td>
<td>$2,200,000</td>
<td>$3,200,000</td>
</tr>
<tr>
<td>24</td>
<td>$0</td>
<td>$700,000</td>
<td>$2,900,000</td>
<td>$3,900,000</td>
</tr>
</tbody>
</table>
<p> </p>
<p style="text-align: left;">$2,900,000 profit on an investment of $300,000 is an ROI of 967%.</p>
<p style="text-align: left;">Do I still have your attention?  If so, consider one final scenario:  The total cash invested in this project is only $300,000.  The organization was originally willing to commit $1,000,000 for the project.  Can you find 2 more teams and enough projects to do the same thing two more times?  If so, the original $1,000,000 investment will have been reduced to $900,000 and instead of $2,000,000 in revenue at the end of year 2 the organization could bring in $11,700,000 which is 5.85X more revenue than the original scenario and $7,700,000 more actual cash!  This equates to a 967% ROI for each of 6 products across 3 teams with 12 total releases per year.  Remember at the beginning when I said the cost of releasing would be negligible compared to the benefits?  I also mentioned 500+% increase in ROI was possible.  Do you believe me now?  <img src='http://www.agileforall.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: left;">I know this was a VERY long blog entry, but I think you&#8217;ll also agree this is an important topic to understand.  To see another way of explaining it try <a href="http://tinyurl.com/rocksIntoGold" target="_blank">Clarke Ching&#8217;s Rocks Into Gold</a> presentation on Slideshare.  I hope after reading this you are as excited about the possibilities as I was when I had my &#8220;lightbulb moment&#8221; about it.  I think it is vitally important for organizations to truly understand these concepts.  I hope those of you reading this blog entry agree and will pass it on to others so they can have their &#8220;lightbulb moment&#8221; and hopefully be able to make it happen!</p>
<p style="text-align: left;">Oh, one last thought &#8211; if you can prioritize so the percent of value delivered by each release is even higher, then the numbers can go even higher!  For example, can a first release be worth 50% of the value?  Can a second release be worth 40%?  These may be possible in light of studies that say more than 50% of features are rarely or never used.  Said differently more than half the software in existence has no value.  If we eliminate that half, maybe we can make the earlier releases worth even more!</p>
<p style="text-align: left;">Until next time I&#8217;ll be Making Agile a Reality™ by helping organizations understand why managing scope in order to have more frequent releases can be so important to their bottom line!  By the way, my good friend <a href="http://richardlawrence.info" target="_blank">Richard Lawrence</a> is a person who really helped me understand this concept, so thanks Richard!</p>
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F27%2Fhow-to-make-a-lot-more-money-using-agile%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F27%2Fhow-to-make-a-lot-more-money-using-agile%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F27%2Fhow-to-make-a-lot-more-money-using-agile%2F&amp;title=How%20to%20make%20a%20LOT%20more%20money%20using%20agile" id="wpa2a_10"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/09/14/new-to-agile-dont-make-it-too-hard/' rel='bookmark' title='New to agile?  Don&#8217;t make it too hard!'>New to agile?  Don&#8217;t make it too hard!</a> <small>OK, so this isn&#8217;t my normal type of blog entry.  I don&#8217;t...</small></li>
<li><a href='http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/' rel='bookmark' title='New to agile? 3 ways to cut scope (and live)'>New to agile? 3 ways to cut scope (and live)</a> <small>The primary way I see teams release products faster is by reducing...</small></li>
<li><a href='http://www.agileforall.com/2009/07/16/agile-antipattern-waiting-for-all-the-requirements-before-starting/' rel='bookmark' title='Agile antipattern: Waiting for all the requirements before starting'>Agile antipattern: Waiting for all the requirements before starting</a> <small>Time for a short blog entry (I tend to be way too...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/05/27/how-to-make-a-lot-more-money-using-agile/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New to agile? 3 ways to cut scope (and live)</title>
		<link>http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/</link>
		<comments>http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/#comments</comments>
		<pubDate>Tue, 26 May 2009 17:12:22 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Product Champion]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=887</guid>
		<description><![CDATA[The primary way I see teams release products faster is by reducing the scope of each product.  However, this can&#8217;t be done in an arbitrary fashion.  There are real business reasons for each feature request (hopefully anyway!).  Having seen teams reduce scope successfully I&#8217;ve seen three primary ways it can be done.  In order to [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2008/08/22/what-do-you-want-next/' rel='bookmark' title='What do you want next?'>What do you want next?</a> <small>The software industry today is plagued by long release cycles for important...</small></li>
<li><a href='http://www.agileforall.com/2009/04/02/ten-ways-to-improve-your-planning-poker-results/' rel='bookmark' title='Ten Ways to Improve Your Planning Poker Results'>Ten Ways to Improve Your Planning Poker Results</a> <small>People who promote the use of Planning Poker understand some of the main...</small></li>
<li><a href='http://www.agileforall.com/2009/04/16/agile-antipattern-using-manual-tests/' rel='bookmark' title='Agile antipattern:  Using manual tests'>Agile antipattern:  Using manual tests</a> <small>In an agile environment manual testing is fine &#8211; except for when it...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>The primary way I see teams release products faster is by reducing the scope of each product.  However, this can&#8217;t be done in an arbitrary fashion.  There are real business reasons for each feature request (hopefully anyway!).  Having seen teams reduce scope successfully I&#8217;ve seen three primary ways it can be done.  In order to deliver 50% faster teams can:</p>
<ol>
<li>Deliver 50% fewer features</li>
<li>Deliver all features but with 50% fewer bells and whistles per feature</li>
<li>Deliver all features with a sliding scale of bells and whistles per feature</li>
</ol>
<p>Let&#8217;s look at each of these separately to see how they work.<span id="more-887"></span></p>
<p><strong>Deliver 50% fewer features</strong> &#8211; This one is obvious and the easiest to make work.  Because agile uses a prioritized backlog of work, a product owner can simply have the team work in priority order until enough value is delivered to make a reasonable release.  A danger here is not being aggressive enough on how much is enough.  Most product owners still go overboard and allow features to be added until the product is well past the point of being releasable.  I believe this is due to product owners being conservative by nature.  Again, this method is simple and effective, except when the sales and marketing teams have &#8220;promised&#8221; features which are further down the priority list.  If a team delivers 25 of 26 promised features the customer can be upset.  If they deliver the same 25 features when only 20 were promised they are instead praised as heros.  Be very careful with the external commitments so they can be met!</p>
<p><strong>Deliver all features but with 50% fewer bells and whistles per feature</strong> &#8211; This is a bit different.  It avoids the problems of the method above because all features are being delivered.  This method is relying on studies which show 64% of features are rarely or never used (Standish Group).  In order to deliver 50% faster, 50% of each feature could be eliminated and statistically still not hit the &#8220;core&#8221; of the software which will be used most of the time.  The drawback here is each feature is treated equally and there is a likelihood too much will actually be cut from some features and not enough from other features.  Which leads to the final method&#8230;</p>
<p><strong>Deliver all features with a sliding scale of bells and whistles</strong> &#8211; In this method the highest priority features are fully developed while the least important features are developed only enough to say they work properly.  The features in between the extremes have a decreasing amount of robustness for each drop in priority.  This allows for the most important features to be the most useful and the least important features to be the least useful.  This overcomes the objections of the first method because all of the features are delivered, while also overcoming the objections of the second method by delivering maximum value for the highest priority items.</p>
<p>I think of the three methods as slicing scope horizontally (a horizontal line through the backlog showing our last feature to be developed), vertically (a vertical line to the right of each backlog item showing how much of it will be developed compared to the maximum) or diagonally (a slanted line to the right of each backlog item showing how much will be developed compared to the maximum).  The first method is clearly the most common, but the problem of leaving off externally promised deliverables is very real.  The last method is much harder to accomplish, but it can be done.</p>
<p>In the last method one way to accomplish it is to create a thin slice of each feature during early iterations.  In this way the product owner knows all the features could be delivered at any point in the future if robustness didn&#8217;t count.  From that point forward the product owner can prioritize how much time and effort should be applied to each feature and create the appropriate sliding scale &#8211; even properly accounting for changing priorities if necessary.</p>
<p>Too often we fall into the trap of believing every part of every feature needs to be delivered.  When expectations are properly set this is rarely the case.</p>
<p>Until next time I&#8217;ll be Making Agile a Reality™ for my clients by helping them cut scope using the method which allows for maximum value to be delivered in the minimum amount of time.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F26%2Fnew-to-agile-3-ways-to-cut-scope-and-live%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F26%2Fnew-to-agile-3-ways-to-cut-scope-and-live%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F26%2Fnew-to-agile-3-ways-to-cut-scope-and-live%2F&amp;title=New%20to%20agile%3F%203%20ways%20to%20cut%20scope%20%28and%20live%29" id="wpa2a_12"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2008/08/22/what-do-you-want-next/' rel='bookmark' title='What do you want next?'>What do you want next?</a> <small>The software industry today is plagued by long release cycles for important...</small></li>
<li><a href='http://www.agileforall.com/2009/04/02/ten-ways-to-improve-your-planning-poker-results/' rel='bookmark' title='Ten Ways to Improve Your Planning Poker Results'>Ten Ways to Improve Your Planning Poker Results</a> <small>People who promote the use of Planning Poker understand some of the main...</small></li>
<li><a href='http://www.agileforall.com/2009/04/16/agile-antipattern-using-manual-tests/' rel='bookmark' title='Agile antipattern:  Using manual tests'>Agile antipattern:  Using manual tests</a> <small>In an agile environment manual testing is fine &#8211; except for when it...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New to agile?  INVEST in good user stories</title>
		<link>http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/</link>
		<comments>http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/#comments</comments>
		<pubDate>Thu, 14 May 2009 19:36:36 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=314</guid>
		<description><![CDATA[As a &#60;user&#62; I want &#60;function&#62; so that&#60;value&#62;. Above is a very simple user story template.  How can something so simple be so hard to get right?  User stories make up the heart of agile development.  They are the primary input to the team.  The team takes the user stories and creates product increments based [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2010/05/03/new-to-agile-remember-a-user-story-is-more-than-a-card/' rel='bookmark' title='New to agile? Remember a user story is more than a card!'>New to agile? Remember a user story is more than a card!</a> <small>What&#8217;s wrong with the user story on the card?  It seems to...</small></li>
<li><a href='http://www.agileforall.com/2009/12/10/new-to-agile-learn-how-to-split-stories/' rel='bookmark' title='New to agile? Learn how to split stories'>New to agile? Learn how to split stories</a> <small>In my last blog Agile antipattern: Taking on large stories I said I would...</small></li>
<li><a href='http://www.agileforall.com/2009/12/09/agile-antipattern-taking-on-large-stories/' rel='bookmark' title='Agile antipattern: Taking on large stories'>Agile antipattern: Taking on large stories</a> <small>Earlier this week I posted a blog entry &#8220;Agile antipattern: Burndown charts...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><strong>As a <em>&lt;user&gt;</em> I want <em>&lt;function&gt;</em> so that<em>&lt;value&gt;</em>.</strong></p>
<p>Above is a very simple user story template.  How can something so simple be so hard to get right?  User stories make up the heart of agile development.  They are the primary input to the team.  The team takes the user stories and creates product increments based on completing those stories.  Unfortunately, getting user stories &#8220;right&#8221; is difficult to do right away.  The Product Owner (or other product facing role) needs to learn how to create user stories which meet the needs of the team.  This is a skill which can be learned over time, but I&#8217;m about to save you a bit of learning curve.<span id="more-314"></span></p>
<p>In order to create good user stories, start by remembering to INVEST in good user stories.  INVEST is an acronym which encompasses the following concepts which make up a good user story:</p>
<ul>
<li>Independent</li>
<li>Negotiable</li>
<li>Valuable</li>
<li>Estimable</li>
<li>Small</li>
<li>Testable</li>
</ul>
<p>Let&#8217;s cover each of them with a simple explanation.</p>
<p><strong>Independent:</strong>  Stories should be as independent as possible.  When thinking of independence it is often easier to think of &#8220;order independent.&#8221;  In other words, stories can be worked on in any order.  Why is this important?  It allows for true prioritization of each and every story.  When dependencies come into play it may not be possible to implement a valuable story without implementing other much less valuable stories.</p>
<p><strong>Negotiable:</strong>  A story is not a contract.  A story IS an invitation to a conversation.  The story captures the essence of what is desired.  The actual result needs to be the result of collaborative negotation between the customer (or customer proxy like the Product Owner), developer and tester (at a minimum).  The goal is to meet customer needs, not develop something to the letter of the user story if doing so is insufficient!  Remember, you can always <a href="http://www.agileforall.com/2009/02/20/when-in-doubt-ask-how-will-i-know-ive-done-that/" target="_blank">ask the magic question</a> to help drive the conversation.</p>
<p><strong>Valuable:</strong>  If a story does not have discernable value it should not be done.  Period.  Hopefully user stories are being prioritized in the backlog according to business value, so this should be obvious.  Some people say each story should be valuable to the customer or user.  I don&#8217;t like that way of thinking because business value encompasses more than just customer or user facing value.  It includes internal value which is useful for things which are normally called &#8220;non-functional requirements&#8221; or something similar.  I prefer to say the story has value to the &#8220;user&#8221; in the user story.  In this way it is clear who is to be satisfied.  Finally, remember the &#8220;so that &lt;value&gt;&#8221; clause of the user story.  It is there for a reason &#8211; it is the exact value we are trying to deliver by completing the story!</p>
<p><strong>Estimable:</strong>  A story has to be able to be estimated or sized so it can be properly prioritized.  A value with high value but extremely lengthy development time may not be the highest priority item because of the length of time to develop it.  What happens if a story can&#8217;t be estimated?  You can split the story and perhaps gain more clarity.  Sometimes splitting a story doesn&#8217;t help though.  If this situation occurs it may be necessary to do some research about the story first.  Please, please, please timebox the research!  If you do not, it will take all available time thereby depriving the product of something else which could have been done instead.</p>
<p><strong>Small:</strong>  Obviously stories are small chunks of work, but how small should they be?  The answer depends on the team and the methodology being used.  I teach agile and suggest two week iterations which allow for user stories to average 3-4 days of work &#8211; TOTAL!  This includes all work to get the story to a &#8220;done&#8221; state.  Also remember not to goldplate user stories.  You should <a href="http://www.agileforall.com/2009/04/27/new-to-agile-do-the-simplest-thing-that-works-then-stop/" target="_blank">do the simplest thing that works - then stop</a>!</p>
<p><strong>Testable:</strong>  Every story needs to be testable in order to be &#8220;done.&#8221;  In fact, I like to think of testable meaning acceptance criteria can be written immediately.  Thinking this way encourages more collaboration up front, builds quality in by moving QA up in the process, and allows for easy transformation to an acceptance test-driven development (ATDD) process.  As with negotiable above, <a href="http://www.agileforall.com/2009/02/20/when-in-doubt-ask-how-will-i-know-ive-done-that/" target="_blank">asking the magic question</a> can help ensure the user story is testable as well.</p>
<p>If Product Owners and their teams work together to INVEST in good user stories the learning curve of working together will be much shorter.  INVEST encourages good habits which eliminate some of the bigger problems of user stories like dependencies, being too big, hard to test, etc.  Take the time to INVEST in good stories and see the dramatic change in how effective planning will become, as well as how productive the team will become.</p>
<p>Until next time I&#8217;ll be INVESTing in good user stories because doing so definitely helps in Making Agile a Reality™.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F14%2Fnew-to-agile-invest-in-good-user-stories%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F14%2Fnew-to-agile-invest-in-good-user-stories%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F05%2F14%2Fnew-to-agile-invest-in-good-user-stories%2F&amp;title=New%20to%20agile%3F%20%20INVEST%20in%20good%20user%20stories" id="wpa2a_14"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2010/05/03/new-to-agile-remember-a-user-story-is-more-than-a-card/' rel='bookmark' title='New to agile? Remember a user story is more than a card!'>New to agile? Remember a user story is more than a card!</a> <small>What&#8217;s wrong with the user story on the card?  It seems to...</small></li>
<li><a href='http://www.agileforall.com/2009/12/10/new-to-agile-learn-how-to-split-stories/' rel='bookmark' title='New to agile? Learn how to split stories'>New to agile? Learn how to split stories</a> <small>In my last blog Agile antipattern: Taking on large stories I said I would...</small></li>
<li><a href='http://www.agileforall.com/2009/12/09/agile-antipattern-taking-on-large-stories/' rel='bookmark' title='Agile antipattern: Taking on large stories'>Agile antipattern: Taking on large stories</a> <small>Earlier this week I posted a blog entry &#8220;Agile antipattern: Burndown charts...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New to agile? Do the simplest thing that works &#8211; THEN STOP!</title>
		<link>http://www.agileforall.com/2009/04/27/new-to-agile-do-the-simplest-thing-that-works-then-stop/</link>
		<comments>http://www.agileforall.com/2009/04/27/new-to-agile-do-the-simplest-thing-that-works-then-stop/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 16:34:05 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Principles]]></category>
		<category><![CDATA[Product Owner]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=813</guid>
		<description><![CDATA[As an agile trainer and coach I often see new teams struggle with a simple question: &#8220;How much to do on a user story?&#8221;  A lot of people say the simplest thing that works is what should be implemented.  I agree with that wholeheartedly and even have a blog entry on how to figure out what [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/02/23/new-to-agile-remember-one-thing-just-enough-just-in-time/' rel='bookmark' title='New to agile?  Remember one thing: Just enough, just in time'>New to agile?  Remember one thing: Just enough, just in time</a> <small>If you lived through the past few decades you have undoubtedly heard...</small></li>
<li><a href='http://www.agileforall.com/2010/04/07/what-style-of-agile-training-works-best/' rel='bookmark' title='What style of agile training works best?'>What style of agile training works best?</a> <small>Have you ever been in a class or training session which is...</small></li>
<li><a href='http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/' rel='bookmark' title='New to agile?  INVEST in good user stories'>New to agile?  INVEST in good user stories</a> <small>As a &lt;user&gt; I want &lt;function&gt; so that&lt;value&gt;. Above is a very...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>As an agile trainer and coach I often see new teams struggle with a simple question: &#8220;How much to do on a user story?&#8221;  A lot of people say the simplest thing that works is what should be implemented.  I agree with that wholeheartedly and even have a <a href="http://www.agileforall.com/2009/02/20/when-in-doubt-ask-how-will-i-know-ive-done-that/" target="_blank">blog entry on how to figure out what the simplest thing is</a>.  Unfortunately, lately I&#8217;ve found myself adding a bit to the sentence.<span id="more-813"></span></p>
<p style="text-align: center;"><strong>Do the simplest thing that works - THEN STOP!</strong></p>
<p>There are developers who do the simplest thing that works and then keep going because they think the customer will want something more.  While they may be right, it isn&#8217;t their decision to make at that point.  Show what the team created at the iteration demo and see if the feedback from the demo says more should be done.  Don&#8217;t just assume it!  The extra work costs time and money, not to mention ongoing support costs if it actually goes to production.  The Product Owner needs to take all of this into account when deciding how far to take a story.</p>
<p>Oh, and while we&#8217;re on the topic, if you want to know how to have a great demo, read <a href="http://www.richardlawrence.info/2009/04/24/how-to-give-a-great-sprint-demo/" target="_blank">this blog entry</a>.  It has some awesome ideas that all teams should try to follow.  The only thing I would add is to have someone other than a developer or tester be able to try the software during the demo.  Too many horror stories about how things were missed when developers went through demos too fast!</p>
<p>Thanks for reading this.  Until next time I&#8217;ll be helping teams in Making Agile a Reality™ by putting up a stop sign when they start trying to <a href="http://geekswithblogs.net/dthakur/archive/2005/04/08/28686.aspx" target="_blank">gold plate features</a>!
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F27%2Fnew-to-agile-do-the-simplest-thing-that-works-then-stop%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F27%2Fnew-to-agile-do-the-simplest-thing-that-works-then-stop%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F27%2Fnew-to-agile-do-the-simplest-thing-that-works-then-stop%2F&amp;title=New%20to%20agile%3F%20Do%20the%20simplest%20thing%20that%20works%20%26%238211%3B%20THEN%20STOP%21" id="wpa2a_16"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/02/23/new-to-agile-remember-one-thing-just-enough-just-in-time/' rel='bookmark' title='New to agile?  Remember one thing: Just enough, just in time'>New to agile?  Remember one thing: Just enough, just in time</a> <small>If you lived through the past few decades you have undoubtedly heard...</small></li>
<li><a href='http://www.agileforall.com/2010/04/07/what-style-of-agile-training-works-best/' rel='bookmark' title='What style of agile training works best?'>What style of agile training works best?</a> <small>Have you ever been in a class or training session which is...</small></li>
<li><a href='http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/' rel='bookmark' title='New to agile?  INVEST in good user stories'>New to agile?  INVEST in good user stories</a> <small>As a &lt;user&gt; I want &lt;function&gt; so that&lt;value&gt;. Above is a very...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/04/27/new-to-agile-do-the-simplest-thing-that-works-then-stop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile antipattern: Code freezes during each iteration</title>
		<link>http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/</link>
		<comments>http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 17:38:09 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Antipattern]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=143</guid>
		<description><![CDATA[Over the past 18 months I&#8217;ve encountered a number of teams where it is standard practice to have a code freeze late in the iteration.  The reason given for this was &#8220;to allow QA to test what we created during the iteration.&#8221; I&#8217;m sorry, but I have to be blunt here &#8211; this isn&#8217;t agile! [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
<li><a href='http://www.agileforall.com/2009/03/16/agile-antipattern-moving-work-from-one-iteration-to-the-next/' rel='bookmark' title='Agile antipattern: Moving work from one iteration to the next'>Agile antipattern: Moving work from one iteration to the next</a> <small>All agile teams start at something less than the completely proficient level. ...</small></li>
<li><a href='http://www.agileforall.com/2009/04/09/agile-antipattern-extending-an-iteration/' rel='bookmark' title='Agile antipattern: Extending an iteration'>Agile antipattern: Extending an iteration</a> <small>I had a previous blog post about stopping an iteration and how...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Over the past 18 months I&#8217;ve encountered a number of teams where it is standard practice to have a code freeze late in the iteration.  The reason given for this was &#8220;to allow QA to test what we created during the iteration.&#8221; I&#8217;m sorry, but I have to be blunt here &#8211; this isn&#8217;t agile! It leads to 3 main questions:</p>
<ol>
<li>What are the developers doing after the code freeze?</li>
<li>What happens if defects are uncovered after the code freeze?</li>
<li>Why could testing not be done earlier in the iteration?</li>
</ol>
<p>The answers to these questions are often enlightening.  Let&#8217;s take them one at a time:<span id="more-143"></span></p>
<p><strong>1.  What are developers doing after the code freeze?</strong></p>
<p>I&#8217;ve heard two primary answers to this.  The first is that developers are fixing defects during that time.  When pressed, I usually find out these are defects from earlier iterations (although this isn&#8217;t always the case &#8211; more on that later).  If we are fixing defects from previous iterations while QA is working on testing the current iteration, how do we ever get caught up?  Maybe I&#8217;m being a bit dense, but I just don&#8217;t see the math working on this one.</p>
<p>The second most common answer is developers are working ahead on things for the next iteration.  Said a different way, developers are creating yet more untested code before the commitment for the current iteration has been met.  Let&#8217;s think about this model for just a minute.  Let&#8217;s assume we are in iteration 1 and the team does a code freeze on day 7.  Coding occurred for 7 days and testing will go for 3 days.  But the developers start stuff from the next iteration on day 7, so for the next iteration they get 3 days from this iteration and 7 from the following iteration for a total of 10 coding days, followed by 3 testing days.  This cycle continues until the project completes.  Anyone feeling sick yet?  Again, being blunt, this is not agile, it is mini-waterfall or what I prefer to call &#8220;wagile.&#8221;</p>
<p><strong>2.  What happens if defects are discovered after the code freeze?</strong></p>
<p>Again, in Family Feud style, the most common answer is the defects are fixed in the following iteration.  This is a continuation of the first half of the previous answer.  How can the math ever work?</p>
<p>However, this isn&#8217;t always the answer.  Sometimes the answer is developers fix them as they are found.  This answer is MUCH less common, but does exist.  The problem with this answer is very simple: if it is possible for developers to fix defects in real time after the code freeze, why could this not be done earlier in the iteration?  Which leads to question 3&#8230;</p>
<p><strong>3.  Why could testing not be done earlier in the iteration?</strong></p>
<p>Two answers here are equally common.  The first I&#8217;ll cover is the &#8220;it takes too much time/effort to move the code to our QA environment so we only do it once per iteration.&#8221;  I understand the need for a QA environment for testing, but is it necessary for ALL testing?  In most of the cases I&#8217;ve seen it is possible to do a tremendous amount of testing in a development environment to make sure everything is basically working before promotion to a QA environment.  The QA environment should be renamed the Verification environment.  Ideally we want to use it to verify everything works in the stable environment and passes all tests just like it did in the development environment.  So step one is to do more testing in the development environment.  Step two is to use some automation tools to build a stable environment quickly.  When pressed, most teams can create an automated process to do a bare-metal environment build within a short period of time.  It is worth the effort.  If this exists, a new build could be deployed at any time, but at least nightly.  Combine it with <a href="http://www.agileforall.com/2009/04/16/agile-antipattern-using-manual-tests/" target="_blank">automated regression testing</a> and really get some value from it!</p>
<p>The second answer I usually hear is &#8220;we don&#8217;t know what to test until the code is done anyway.&#8221;  Uh oh, can anyone even count how many ways this statement isn&#8217;t agile in nature???  Let&#8217;s remember the agile process:</p>
<ol>
<li>Product Owner (or similar role) creates stories and some basic acceptance criteria.</li>
<li>During iteration planning more acceptance criteria are created based on conversations between tester, developer and Product Owner.</li>
<li>During iteration the developer and tester collaborate on their understanding so the code can be written and acceptance criteria can be turned into tests.</li>
<li>During development the developer can (and should) access any acceptance tests already written to see how their code is doing.</li>
<li>The developer isn&#8217;t &#8220;done&#8221; until the code passes all unit tests and acceptance tests.  Remember the <a href="http://www.scrumalliance.org/articles/106-definition-of-done-a-reference" target="_blank">definition of done</a>!</li>
</ol>
<p>When things are done in this manner the tester ALWAYS knows what to test because they are in close communication with the developer.  Collaboration is vital to agile success.  This is just one example driving it home.</p>
<p>The bottom line for me is there is no legitimate reason for having a code freeze during an iteration.  Teams need to either invest the time/effort to put together a system which doesn&#8217;t require a code freeze, or stop calling themselves agile.  This is a nasty antipattern which will cause confusion or worse.</p>
<p>Thank you for reading.  Until next time I&#8217;ll be Making Agile a Reality™ for my clients by helping them avoid code freezes during iterations.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F23%2Fagile-antipattern-code-freezes-during-each-iteration%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F23%2Fagile-antipattern-code-freezes-during-each-iteration%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F23%2Fagile-antipattern-code-freezes-during-each-iteration%2F&amp;title=Agile%20antipattern%3A%20Code%20freezes%20during%20each%20iteration" id="wpa2a_18"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
<li><a href='http://www.agileforall.com/2009/03/16/agile-antipattern-moving-work-from-one-iteration-to-the-next/' rel='bookmark' title='Agile antipattern: Moving work from one iteration to the next'>Agile antipattern: Moving work from one iteration to the next</a> <small>All agile teams start at something less than the completely proficient level. ...</small></li>
<li><a href='http://www.agileforall.com/2009/04/09/agile-antipattern-extending-an-iteration/' rel='bookmark' title='Agile antipattern: Extending an iteration'>Agile antipattern: Extending an iteration</a> <small>I had a previous blog post about stopping an iteration and how...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile Antipattern: Everything is priority 1</title>
		<link>http://www.agileforall.com/2009/02/27/agile-antipattern-everything-is-priority-1/</link>
		<comments>http://www.agileforall.com/2009/02/27/agile-antipattern-everything-is-priority-1/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 02:59:34 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Antipattern]]></category>
		<category><![CDATA[Product Champion]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[agile antipattern]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[prioritized product backlog]]></category>
		<category><![CDATA[product managers]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=193</guid>
		<description><![CDATA[I was just working on some Powerpoint slides for our Agile Product Management Boot Camp coming up on March 9 and 10 and I realized I should post a blog entry about the point the slides are making.  Actually, I&#8217;m trying to make two points with the slides.  The first point is we tend to work in [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/' rel='bookmark' title='New to agile? 3 ways to cut scope (and live)'>New to agile? 3 ways to cut scope (and live)</a> <small>The primary way I see teams release products faster is by reducing...</small></li>
<li><a href='http://www.agileforall.com/2010/05/05/agile-antipattern-sizing-or-estimating-bug-fixes/' rel='bookmark' title='Agile antipattern: Sizing or estimating bug fixes'>Agile antipattern: Sizing or estimating bug fixes</a> <small>Is the bug to the left a large bug or a small...</small></li>
<li><a href='http://www.agileforall.com/2008/08/22/what-do-you-want-next/' rel='bookmark' title='What do you want next?'>What do you want next?</a> <small>The software industry today is plagued by long release cycles for important...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>I was just working on some Powerpoint slides for our <a href="http://agileproductmanagementbootcamp-bl1.eventbrite.com" target="_blank">Agile Product Management Boot Camp</a> coming up on March 9 and 10 and I realized I should post a blog entry about the point the slides are making.  Actually, I&#8217;m trying to make two points with the slides.  The first point is we tend to work in organizations where the phrase &#8220;everything is priority 1&#8243; is common.  The second point is my personal distaste for using the phrase &#8220;prioritized product backlog.&#8221;  I&#8217;ll cover each of these points separately.<span id="more-193"></span>I&#8217;ll start with the &#8220;everything is priority #1&#8243; problem, since that is the title of this blog entry.  Let&#8217;s be very clear <strong><em>THIS CANNOT BE ALLOWED!!!  </em></strong>There are many blog posts on the web such as the ones <a href="http://www.agileadvice.com/archives/2006/04/prioritizing_re.html" target="_blank">here</a> and <a href="http://blogs.msdn.com/oldnewthing/archive/2008/11/20/9126834.aspx" target="_blank">here</a>.  I like what the first of those links says about how to explain why everything can&#8217;t be priority 1 &#8211; we can&#8217;t build it all at once!  I usually approach this with product managers/product owners/stakeholders by asking them what they want if they can only get one thing.  They quickly say one thing is useless they need it all.  To which I reply, I know, but I want to make sure we have the most important item built first so we can learn from it and make changes to other items based on what we learn.  I&#8217;d like to rank all of the items 1 to whatever, with no ties, so we can always be working on the next most important item and be able to learn from it as well as all the other items which were more important.  This way we will make sure the most important items are in the release and meet expectations.</p>
<p>Which leads into my second point about the phrase &#8220;prioritized product backlog.&#8221;  If you simply say the words, nearly everyone in the software industry will say  they already do that.  Why are they saying this when a casual observer can tell it isn&#8217;t true?  It is because we have overloaded the word prioritization.  Most software people think having a list of 100 items which has the top 97 as priority 1, the next 3 as priority 2 and no priority 3 items is a prioritized backlog.  Sorry folks, but that is a useless list.  We really need a RANKED backlog, where the rankings go from 1-N and there are no ties.  Then we use the list by making sure we work on the next item in the ranking, not just work on some random thing which seems interesting.</p>
<p>We simply have to keep these two issues in mind when we are dealing with the product backlog or we will not be successful.</p>
<p>So, what do the two slides look like?  Here they are:</p>
<p><img class="alignnone" title="Slide 1" src="http://www.agileforall.com/images/prioslide1.jpg" alt="" width="300" height="233" /></p>
<p><img class="alignnone" title="Slide 2" src="http://www.agileforall.com/images/prioslide2.jpg" alt="" width="300" height="233" /></p>
<p>This is the first post in the &#8220;Agile Antipattern&#8221; category.  I anticipate having a few more over time.</p>
<p>Until next time, let me know what you think so together we can be working toward Making Agile a Reality™.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F02%2F27%2Fagile-antipattern-everything-is-priority-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F02%2F27%2Fagile-antipattern-everything-is-priority-1%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F02%2F27%2Fagile-antipattern-everything-is-priority-1%2F&amp;title=Agile%20Antipattern%3A%20Everything%20is%20priority%201" id="wpa2a_20"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/05/26/new-to-agile-3-ways-to-cut-scope-and-live/' rel='bookmark' title='New to agile? 3 ways to cut scope (and live)'>New to agile? 3 ways to cut scope (and live)</a> <small>The primary way I see teams release products faster is by reducing...</small></li>
<li><a href='http://www.agileforall.com/2010/05/05/agile-antipattern-sizing-or-estimating-bug-fixes/' rel='bookmark' title='Agile antipattern: Sizing or estimating bug fixes'>Agile antipattern: Sizing or estimating bug fixes</a> <small>Is the bug to the left a large bug or a small...</small></li>
<li><a href='http://www.agileforall.com/2008/08/22/what-do-you-want-next/' rel='bookmark' title='What do you want next?'>What do you want next?</a> <small>The software industry today is plagued by long release cycles for important...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/02/27/agile-antipattern-everything-is-priority-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

