<?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>Getting Agile &#187; User Stories</title>
	<atom:link href="http://www.gettingagile.com/category/user-stories/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gettingagile.com</link>
	<description>with Sterling Barton</description>
	<lastBuildDate>Mon, 14 Jun 2010 18:18:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Focus on Team Communication</title>
		<link>http://www.gettingagile.com/2010/02/03/focus-on-team-communication/</link>
		<comments>http://www.gettingagile.com/2010/02/03/focus-on-team-communication/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 02:21:06 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Leadership]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.gettingagile.com/?p=368</guid>
		<description><![CDATA[In the agile community there are some common practices that are either seen as valuable or to be avoided. Two of those practices are estimation using Planning Poker and Sprint Planning task breakdown. The focus for many teams in these practices is on the estimates themselves and how &#8220;accurate&#8221; they are. It has been my [...]]]></description>
			<content:encoded><![CDATA[<p>In the agile community there are some common practices that are either seen as valuable or to be avoided. Two of those practices are estimation using Planning Poker and Sprint Planning task breakdown. The focus for many teams in these practices is on the estimates themselves and how &#8220;accurate&#8221; they are. It has been my experience that accuracy in estimates is not possible and belief in their accuracy leads to wasted effort and failure to meet commitments.</p>
<p><a href="http://www.gettingagile.com/wp-content/uploads/2010/02/poker_cards.jpg"><img class="alignleft size-medium wp-image-369" title="poker_cards" src="http://www.gettingagile.com/wp-content/uploads/2010/02/poker_cards-300x225.jpg" alt="" width="300" height="225" /></a><strong>Planning Poker</strong></p>
<p>Teams often ask &#8220;what if we estimate wrong&#8221;. To me this is reality for any estimation process. By definition we are &#8220;guessing&#8221; (hopefully educated) and therefore our estimates will be wrong. The idea is to be consistent rather than precisely wrong. This allows teams to better predict based upon similar constraints to earlier iteration how much they will be able to deliver in the next iteration. Rather than basing estimates on predictions of the future we are basing them on what we have done in the past.</p>
<p>The use of <a href="http://www.methodsandtools.com/archive/archive.php?id=25p3" target="_blank">&#8220;estimate size; derive duration&#8221;</a> method of estimation helps teams gain knowledge about how much they can deliver in a time-boxed iteration. One technique to generate the estimates of size is <a href="http://www.planningpoker.com/" target="_blank">Planning Poker</a>. Most teams start out attempting to get the estimate exactly &#8220;right&#8221;. I will not advocate that this is bad to do but I do think that teams would find Planning Poker and other exercises for estimating size more valuable if they focused on the communication that occurs. The real magic of Planning Poker is that cross-functional team members and team members with different perspectives are able to share their knowledge with each other and ultimately meld the points of view into an approach for implementing a user story. A focus on communication allows teams to capture important information, constraints, and decisions around a particular user story and better understand as a team what is involved in its delivery.</p>
<p><a href="http://www.gettingagile.com/wp-content/uploads/2010/02/178400_detail.jpg"><img class="alignleft size-medium wp-image-370" title="Task Clips" src="http://www.gettingagile.com/wp-content/uploads/2010/02/178400_detail-300x300.jpg" alt="" width="300" height="300" /></a><strong>Sprint Planning Task Breakdown</strong></p>
<p>When teams come together for the first time in organizations where they have been separated by functional role or even teams that haven&#8217;t worked together before, the act of breaking down user stories into tasks assists teams with communication. If the Product Backlog describes the &#8220;what&#8221; then the Sprint Backlog describes the &#8220;how&#8221;. Tasks are tools for capturing the &#8220;how&#8221; and makes it visible to the entire team. Instead of team members with different functional roles, team members describe how they will contribute to the potentially shippable product increment delivered by the end of the iteration. Instead of focusing on the perfect tasks and estimates on those tasks, I believe it is more valuable to have a shared understanding of how the team will deliver the user story. Tasks are just the tool to make visible that shared understanding and we should focus on the communication between team members and capturing the important details that enable successful delivery.</p>
<p>Now, tasks are not the only way to get a shared understanding, of course. I have been on teams where we would talk, draw a little picture on a post-it note, and then agree with as a team that was enough to plan with. This was with an extremely experienced Scrum team that worked together or around each other for a long time. When a new team comes together in an organization that has not created user stories before they have difficulty getting &#8220;right-sized&#8221; user stories for the team. Most of the time there seems to be some difficulty breaking them down items into small enough items for the team to deliver within 1/2 of a sprint&#8217;s length. As the team does task breakdown they are better able to capture details that help them work out how the whole team will contribute to the user story. This leads to recognition of user stories that are too big or even those that are ambiguous.</p>
<p>New teams using task breakdown in their Sprint Planning meetings should focus on how they communicate with each other and make sure that each member of the team is heard. This will lead to a better shared understanding of how they will work together and deliver successfully.</p>
<p><strong>Focus on Team Communication</strong></p>
<p>Here are some things that teams can do to help their communication in planning:</p>
<ul>
<li>Make sure all team members are heard so they will feel compelled to participate</li>
<li>Always discuss reasons why you, as a team member, are not satisfied with the plan</li>
<li>Don&#8217;t push your estimate or task breakdown suggestions on the entire team</li>
<li>Cross-pollinate within your team across functional role boundaries to better understand other roles</li>
<li>Use past experiences and story-telling to describe reasons for a particular position</li>
<li>Use whiteboards and design techniques to visually portray ideas</li>
</ul>
<p>Hopefully a focus on team communication will help make estimating and task breakdown a more valuable experience for your team. Please share things that your teams have done to help focus more on communication to increase shared understanding by leaving comments on this blog entry. I look forward to hearing from you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2010/02/03/focus-on-team-communication/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Slides from Managing Software Debt Talk at PNSQC 2009</title>
		<link>http://www.gettingagile.com/2009/10/27/slides-from-managing-software-debt-talk-at-pnsqc-2009/</link>
		<comments>http://www.gettingagile.com/2009/10/27/slides-from-managing-software-debt-talk-at-pnsqc-2009/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 22:00:28 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Acceptance Testing]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[DotNet]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.gettingagile.com/?p=316</guid>
		<description><![CDATA[Tomorrow at 1:30pm I will be discussing my paper published by the Pacific Northwest Software Quality Conference 2009 in Portland, OR on &#8220;Managing Software Debt: Continued Delivery of High Value as Systems Age&#8221;. I have uploaded the slides for this presentation and I hope that some of the new content will help those looking for [...]]]></description>
			<content:encoded><![CDATA[<p>Tomorrow at 1:30pm I will be discussing my paper published by the Pacific Northwest Software Quality Conference 2009 in Portland, OR on &#8220;Managing Software Debt: Continued Delivery of High Value as Systems Age&#8221;. I have uploaded the slides for this presentation and I hope that some of the new content will help those looking for ways to manage their software debt more effectively in 5 key areas:</p>
<ul>
<li>Technical debt: tends to focused on the code and reveals itself in duplication and code smells</li>
<li>Quality debt: focuses on QA aspects of software development and shows up in growing bug databases and longer regression test runs</li>
<li>Configuration Management debt: focuses on integration and release management aspects and becomes apparent with extreme branching and inability to recreate environments from scratch</li>
<li>Design debt: focuses on design constructs of components within an application or enterprise infrastructure and is usually difficult to figure out until you are close to a deadline such handling production load</li>
<li>Platform Experience debt: focuses on the people in the software creation process and usually involves extreme specialization and waiting on people to finish their part</li>
</ul>
<p>Without further ado, here are the slides:</p>
<div id="__ss_2357272" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Managing Software Debt - PNSQC 2009" href="http://www.slideshare.net/csterwa/managing-software-debt-pnsqc-2009">Managing Software Debt &#8211; PNSQC 2009</a><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=managingsoftwaredebt-pnsqc2009-091027083353-phpapp02&amp;stripped_title=managing-software-debt-pnsqc-2009" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=managingsoftwaredebt-pnsqc2009-091027083353-phpapp02&amp;stripped_title=managing-software-debt-pnsqc-2009" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/csterwa">Chris Sterling</a>.</div>
</div>
<p>Also, here is the picture I use to discuss Managing Software Debt from high level in terms of maintaining and enhancing value of software assets:</p>
<p><a href="http://chrissterling.gettingagile.com/wp-content/uploads/2008/10/effectrefactoringtopreserveswvalue.jpg"><img title="Effect of Managing Software Debt to Preserve Software Value" src="http://chrissterling.gettingagile.com/wp-content/uploads/2008/10/effectrefactoringtopreserveswvalue-300x181.jpg" alt="Effect of Managing Software Debt to Preserve Software Value" width="300" height="181" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/10/27/slides-from-managing-software-debt-talk-at-pnsqc-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Executable Specifications &#8211; Presentation from AgilePalooza</title>
		<link>http://www.gettingagile.com/2009/08/06/executable-specifications-presentation-from-agilepalooza/</link>
		<comments>http://www.gettingagile.com/2009/08/06/executable-specifications-presentation-from-agilepalooza/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 13:48:41 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Acceptance Testing]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[DotNet]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://chrissterling.gettingagile.com/?p=296</guid>
		<description><![CDATA[Earlier this year I did a presentation on Executable Specficiations for AgilePalooza conference. There is information about working with legacy code, commercial off-the-shelf (COTS) systems, and Acceptance Test-Driven Development (ATDD) using automated acceptance testing tools. Also, the presentation lists types of automated acceptance testing tools out there along with actual names of tools and what [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this year I did a presentation on Executable Specficiations for AgilePalooza conference. There is information about working with legacy code, commercial off-the-shelf (COTS) systems, and Acceptance Test-Driven Development (ATDD) using automated acceptance testing tools. Also, the presentation lists types of automated acceptance testing tools out there along with actual names of tools and what they are best used for on projects. Hope it is interesting to you.</p>
<div style="width:425px;text-align:left" id="__ss_1499430"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/csterwa/executable-specifications-agile-palooza" title="Executable Specifications Agile Palooza">Executable Specifications Agile Palooza</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=executablespecifications-agilepalooza-090528014316-phpapp01&#038;stripped_title=executable-specifications-agile-palooza" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=executablespecifications-agilepalooza-090528014316-phpapp01&#038;stripped_title=executable-specifications-agile-palooza" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/csterwa">Chris Sterling</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/08/06/executable-specifications-presentation-from-agilepalooza/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maintain One List of Work</title>
		<link>http://www.gettingagile.com/2009/06/12/maintain-one-list-of-work/</link>
		<comments>http://www.gettingagile.com/2009/06/12/maintain-one-list-of-work/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 18:44:00 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://chrissterling.gettingagile.com/?p=281</guid>
		<description><![CDATA[During an interview at the Better Software conference this week, I mentioned that I thought maintaining a single list of work prioritized by the business was important for our industry to improve. The following text is an excerpt, in first draft form, from chapter 2, &#8220;Architecture Integrity&#8221;, of my upcoming book &#8220;Architecture in an Agile [...]]]></description>
			<content:encoded><![CDATA[<p><em>During an interview at the Better Software conference this week, I mentioned that I thought maintaining a single list of work prioritized by the business was important for our industry to improve. The following text is an excerpt, in first draft form, from chapter 2, &#8220;Architecture Integrity&#8221;, of my upcoming book &#8220;Architecture in an Agile Organization&#8221; that is relevant to this topic.</em></p>
<hr size="1" />In Scrum, the Product Backlog is a list of desired features prioritized by the Product Owner. Prioritization is done by the Product Owner to optimize value of the software delivered to the users. Instead of prioritizing within levels of importance such as high, medium, and low the Product Owner must prioritize in “stack-rank” order. This means that no Product Backlog item has the same priority as another item. This form of prioritization gives clear directions to development teams about what the most important feature is next to work on.</p>
<p>A healthy Product Backlog contains not only new features but also technical requirements to support the next Product Backlog items in priority. The development team is expected to review the Product Backlog frequently to provide cost estimates for Product Backlog items to help the Product Owner prioritize based on both cost and benefit. During the development team’s review they will suggest Product Backlog items that are missing from a technical point of view in the product definition. These technical Product Backlog items will be discussed with the Product Owner so they are able to prioritize them effectively. It is essential that the development team explain why each technical Product Backlog item is important to support other upcoming items. If this is not expressed the Product Owner could be inclined to demote those technical Product Backlog items because the value of them is not understood enough.</p>
<p>When issues are found in the software they usually come in three varieties:</p>
<ul>
<li>Enhancement – a suggestion for improving the current state of the software from a user’s point of view</li>
<li>Defect – a system fault that occurs while using the software</li>
<li>Fire – a system fault that is inhibiting significant usage scenarios in the software and must be fixed immediately</li>
</ul>
<p>Enhancements are requests for improvements to the software based on the perspective of the user. These improvements should be prioritized based on their value against all other Product Backlog items. An enhancement and defect issues are hard to distinguish from one another at times but that is fine. Defects are system faults that users are able to workaround but should not be happening from a user experience and/or technical perspective. Since we are able to work around these defects and the development team is able to provide a fix in the next iteration they are placed into the Product Backlog and prioritized against all other Product Backlog items. Fires are defects that cannot be worked around and cause serious problems for users of the software. In healthy software applications, fires should be a rare occurrence. It is important that a fix is implemented right away and may interrupt the work getting done in the current iteration.</p>
<p><img class="aligncenter size-medium wp-image-282" title="issuetriage" src="http://chrissterling.gettingagile.com/wp-content/uploads/2009/06/issuetriage-300x167.png" alt="issuetriage" width="300" height="167" /><em></em></p>
<p><em>Figure: This flow diagram describes how an identified issue is triaged in an iterative and incremental approach such as Scrum. If the issue is an enhancement or defect that can be worked around for now it goes into the Product Backlog and prioritized based on its value. If the issue is a “fire” or defect that cannot be worked around then it must be fixed immediately. The development will put the fire into their current list of work in the Sprint Backlog and figure out how it effects their commitment to deliver on their current iteration.</em></p>
<p>Defects are captured in bug databases in many organizations. Teams using the Scrum process to manage their software development find themsves in a predicament. Do we continue working from two lists, the Product Backlog of desired features and bug database? Or do we incorporate items from the bug database into the Product Backlog? I suggest all teams should incorporate defects into the Product Backlog. There are multiple reasons to do this:</p>
<ul>
<li>Development team does not make priority decisions for the business stakeholders. If the development team decides to work on defects rather than desired features then they are deciding the defects are higher priority than the desired features without including the Product Owner in the decision-making process.</li>
<li>Minimizes the amount of hidden work done by the development team. By providing visibility into the defects, the development team is being transparent about the state of the software they are working on.</li>
<li>Provides the Product Owner with an opportunity to prioritize the defect lower. The Product Owner could decide the defect is not important enough to fix at this time.</li>
<li>Allows development team and Product Owner to design a solution for dealing with defects. From time to time the defect provides insight into a design flaw that the Product Owner would like to improve.</li>
</ul>
<p>Ultimately, the development is able to maintain alignment with business priorities for the software. Priorities are decided based upon the full reality of the software, new features and defects included.</p>
<p>A single work queue, such as the Product Backlog, provides visibility to the development team about current expectations about upcoming work. The Product Owner should share the Product Backlog with the development team and discuss the direction of the product beyond the next iteration. As the development team gains knowledge about the direction of the product they will be able to provide input into the Product Backlog. This visibility is important so Product Backlog items do not surprise the development team when it is too late to prepare a proper solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/06/12/maintain-one-list-of-work/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AgilePalooza in San Francisco May 29th</title>
		<link>http://www.gettingagile.com/2009/05/19/agilepalooza-in-san-francisco-may-29th/</link>
		<comments>http://www.gettingagile.com/2009/05/19/agilepalooza-in-san-francisco-may-29th/#comments</comments>
		<pubDate>Tue, 19 May 2009 20:57:15 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Acceptance Testing]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://chrissterling.gettingagile.com/?p=267</guid>
		<description><![CDATA[
AgilePalooza is a one day Agile conference on Friday May 29th at the San Francisco State University downtown campus. There will be two tracks: Learning Agility and Advancing Agility.
&#8220;Learning Agility&#8221; will be presentation style whereas &#8220;Advancing Agility&#8221; will use the open space format.
Speakers include David Hussman (DevJam), Chris Sterling (SolutionsIQ), Luke Hohmann (Enthiosys), Lee Henson [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="AgilePalooza logo" src="http://www.agilepalooza.com/images/AgilePaloozaHeader.gif" alt="" width="497" height="87" /></p>
<p><span><a href="http://www.AgilePalooza.com" target="_blank">AgilePalooza</a> is a one day Agile conference on Friday May 29th at the <a href="http://maps.yahoo.com/maps_result?addr=835+Market+St&amp;csz=94103&amp;country=us&amp;new=1&amp;name=&amp;qty=&amp;mkt_tok=3RkMMJWWfF9wsRovsqvfLqzsmxzEJ8r57eUpX7Hr08Yy0EZ5VunJEUWy2YEJSA%3D%3D" target="_blank">San Francisco State University downtown campus</a>. There will be two tracks: Learning Agility and Advancing Agility.</p>
<p>&#8220;Learning Agility&#8221; will be presentation style whereas &#8220;Advancing Agility&#8221; will use the open space format.</p>
<p>Speakers include David Hussman (DevJam), Chris Sterling (SolutionsIQ), Luke Hohmann (Enthiosys), Lee Henson (VersionOne Services) with special guests Ainsley Nies (open space co-facilitator) and Ian Culling (VersionOne CTO). When not presenting for the &#8220;Learning Agility&#8221; track speakers will participate in the open space.</p>
<p>Space is limited and the cost is low so please register soon if you would like to attend. For more information or to register please visit <a href="http://www.AgilePalooza.com" target="_blank">www.AgilePalooza.com</a>.</p>
<p><strong>Where? </strong></span></p>
<p><span>San Francisco State University Downtown Campus, 835 Market Street, San Francisco. (Powell street BART station in the Westfield Center) &#8211; <a href="http://maps.yahoo.com/maps_result?addr=835+Market+St&amp;csz=94103&amp;country=us&amp;new=1&amp;name=&amp;qty=&amp;mkt_tok=3RkMMJWWfF9wsRovsqvfLqzsmxzEJ8r57eUpX7Hr08Yy0EZ5VunJEUWy2YEJSA%3D%3D" target="_blank">Map/Directions</a><br />
</span></p>
<p><strong><span>When? </span></strong></p>
<p><span>9am-5pm (check-in and continental breakfast starts at 8am)</span></p>
<p><span><strong>Cost?</strong> </span></p>
<p><span>$69</span></p>
<p><span>Register here: <a href="http://www.AgilePalooza.com">www.AgilePalooza.com</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/05/19/agilepalooza-in-san-francisco-may-29th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Talk @ SD West 2009 on &quot;Managing Software Debt&quot;</title>
		<link>http://www.gettingagile.com/2009/03/27/my-talk-sd-west-2009-on-managing-software-debt/</link>
		<comments>http://www.gettingagile.com/2009/03/27/my-talk-sd-west-2009-on-managing-software-debt/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 20:55:12 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Acceptance Testing]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[DotNet]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[IASA]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Jini/JavaSpaces]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://chrissterling.gettingagile.com/?p=237</guid>
		<description><![CDATA[I have uploaded the talk I did at SD West 2009 on Yahoo! Video and here it is:
Managing Software Debt &#8211; Chris Sterling @ SD West 2009 @ Yahoo! Video
]]></description>
			<content:encoded><![CDATA[<p>I have uploaded the talk I did at SD West 2009 on Yahoo! Video and here it is:</p>
<div><object width="512" height="322"><param name="movie" value="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.40" /><param name="allowFullScreen" value="true" /><param name="AllowScriptAccess" VALUE="always" /><param name="bgcolor" value="#000000" /><param name="flashVars" value="id=12699073&#038;vid=4754803&#038;lang=en-us&#038;intl=us&#038;thumbUrl=http%3A//l.yimg.com/a/p/i/bcst/videosearch/8055/82632771.jpeg&#038;embed=1" /><embed src="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.40" type="application/x-shockwave-flash" width="512" height="322" allowFullScreen="true" AllowScriptAccess="always" bgcolor="#000000" flashVars="id=12699073&#038;vid=4754803&#038;lang=en-us&#038;intl=us&#038;thumbUrl=http%3A//l.yimg.com/a/p/i/bcst/videosearch/8055/82632771.jpeg&#038;embed=1" ></embed></object><br /><a href="http://video.yahoo.com/watch/4754803/12699073">Managing Software Debt &#8211; Chris Sterling @ SD West 2009</a> @ <a href="http://video.yahoo.com" >Yahoo! Video</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/03/27/my-talk-sd-west-2009-on-managing-software-debt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It&#039;s BeyondAgile: people making software that works</title>
		<link>http://www.gettingagile.com/2009/03/25/its-beyondagile-people-making-software-that-works/</link>
		<comments>http://www.gettingagile.com/2009/03/25/its-beyondagile-people-making-software-that-works/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 16:38:06 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Acceptance Testing]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[DotNet]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://chrissterling.gettingagile.com/?p=234</guid>
		<description><![CDATA[The hopefully-not-anticlimatic second event of the still-pretty-new BeyondAgile is happening on Thursday:
&#8220;Agile Challenges Clinic/Swap Meet&#8221;
Thursday, 26 March 2009
6:30 to 8:30 p.m.
Locations on the Eastside and Seattle!
Read on for agenda and location information, or visit our Google Group at
http://groups.google.com/group/beyondagile
The Blurb
At the first event, everyone (over forty people) created a backlog of ideas, suggestions, and work items. [...]]]></description>
			<content:encoded><![CDATA[<p>The hopefully-not-anticlimatic second event of the still-pretty-new BeyondAgile is happening on Thursday:</p>
<p class="MsoNormal"><strong>&#8220;Agile Challenges Clinic/Swap Meet&#8221;<br />
</strong>Thursday, 26 March 2009<br />
6:30 to 8:30 p.m.<br />
Locations on the Eastside <em>and</em> Seattle!<br />
Read on for agenda and location information, or visit our Google Group at<br />
<a href="https://mail.solutionsiq.com/exchweb/bin/redir.asp?URL=http://groups.google.com/group/beyondagile" target="_blank">http://groups.google.com/group/beyondagile</a></p>
<p class="MsoNormal"><strong>The Blurb<br />
</strong>At the first event, everyone (over forty people) created a <a href="https://mail.solutionsiq.com/exchweb/bin/redir.asp?URL=http://groups.google.com/group/beyondagile/web/backlog?hl=en" target="_blank">backlog</a> of ideas, suggestions, and work items. Among them were two suggestions that gave rise to this event&#8217;s focus: &#8220;a bring-a-problem&#8221; session where everyone helps everyone with their challenges. We&#8217;ve extended the idea of a clinic, where you bring a problem to an expert and get help, to a swap meet (or potluck), were everyone brings something and gets something. So come if you think you&#8217;re brimming over with answers and expertise, and come if you&#8217;re wanting other perspectives or advice on how to tangle with the problems that bedevil your days.</p>
<p class="MsoNormal">We&#8217;ll also form a program team, a group that&#8217;ll work proactively to plan interesting and exciting events in sufficient time for the blurb-writer–that&#8217;s me–to write and distribute the blurb a few weeks before the event. If you&#8217;re wondering who&#8217;d be good at doing that, go look in a mirror—it&#8217;s you we need!</p>
<p class="MsoNormal"><strong>Second Event Agenda</strong></p>
<ul>
<li>Welcome and Announcements (10 min.)</li>
<li>Formation of Program Team (10 min.)</li>
<li>&#8220;Agile Clinic/Swap Meet (85 min.)</li>
<li>Giveaway Drawing (5 min.)</li>
<li>Meeting Retrospective (10 min.)</li>
<li>Socializing and Breakout/Breakup/Beer</li>
</ul>
<p><strong>Event Locations</strong></p>
<p><strong>Eastside: </strong>SolutionsIQ<br />
First Floor Training Center<br />
10785 Willows Road NE, Suite 250<br />
Redmond, WA<br />
NOTE: directions and picture of building at http://www.solutionsiq.com/about-us/contact-us.php?Look for the tent signs and the blue BeyondAgile logo</p>
<p><strong>Seattle: </strong>Amdocs Digital Commerce Division (formerly QPass)<br />
Greece Room<br />
2211 Elliott Ave Suite 400<br />
Seattle, WA</p>
<p><strong>Questions?</strong><br />
Contact us at beyondagile@taoproductions.com, or visit our Google Group, or contribute to the nascent Wiki at beyondagile.org.</p>
<p><strong>Why come?</strong><br />
Here&#8217;s your chance to be in on the beginning of an exciting new collaboration of the Puget-Sound area (and beyond!) agile-interested. And if that&#8217;s not enough, we&#8217;ll hold a drawing to win exciting and valuable prizes!</p>
<p><strong>What&#8217;s BeyondAgile?</strong><br />
It&#8217;s the combination and follow-on to a number of the agile-oriented user and interest groups that have operated in the Puget Sound area. Representatives of the Seattle XP User Group and Seattle Scrum came together in December to try and combine the efforts of all of us who care about and use agile methods.</p>
<p><strong>Why does BeyondAgile exist?</strong><br />
o Find best practices among all agile processes<br />
o Build a bigger agile community<br />
o Take advantage of overlaps between existing groups<br />
o Expand beyond meetings and provide a place to collaborate<br />
o Align software development and business<br />
o Explore cutting-edge ideas and techniques</p>
<p><strong>What is BeyondAgile like?</strong><br />
That, in large part, is up to you. A primary reason for consolidating our efforts is to broaden our base of support, capability, and leadership. We envision a more active, multi-faceted organization that does more than just host talking heads. We&#8217;ll gather at least once a month on the 4th Thursday of the month, and probably more often, once you figure out what other events you&#8217;d like.</p>
<p><strong>Where do BeyondAgile events happen?</strong><br />
Our goal is to have many answers to this. As a result, we&#8217;ve worked to remove the impediment offered by bridges and commuting: for our monthly meetings, we hold our events in both Eastside and Seattle locations, through the semi-magic of videocasting. We&#8217;re experimenting: we&#8217;ve thought of trying to alternate the &#8220;real&#8221; physical meeting between sides of the lake. At this point, we&#8217;re only at the stage of using a semi-okayish video link between the two locations, and try *very* hard to make the meeting balanced between locations. That&#8217;s harder than it seems; come and help us work it out! We&#8217;re still dreaming of enabling people anywhere to attend through streaming video, even after the meeting&#8217;s already happened, but we need more knowledge, resources, and volunteers before that&#8217;s going to happen.</p>
<p><strong>I have question for you.</strong><br />
Great! Visit the Google Group (BeyondAgile) or send a message to beyondagile@taoproductions.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/03/25/its-beyondagile-people-making-software-that-works/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Product Backlog Rules of Thumb</title>
		<link>http://www.gettingagile.com/2009/02/07/product-backlog-rules-of-thumb/</link>
		<comments>http://www.gettingagile.com/2009/02/07/product-backlog-rules-of-thumb/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 01:28:01 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[User Stories]]></category>

		<guid isPermaLink="false">http://chrissterling.gettingagile.com/?p=224</guid>
		<description><![CDATA[While working with Product Owners over the years I have learned some rules of thumb that make their Product Backlogs more manageable. Some of these items are what I have learned from others and some are just working with Product Owners though trial and error. Remember these are rules of thumb and help guide your [...]]]></description>
			<content:encoded><![CDATA[<p>While working with Product Owners over the years I have learned some rules of thumb that make their Product Backlogs more manageable. Some of these items are what I have learned from others and some are just working with Product Owners though trial and error. Remember these are rules of thumb and help guide your management of a Product Backlog. They are not rules to adhere to no matter what. Always use common sense when applying a rule of thumb to your context.</p>
<p>The first one that I would like to discuss is the:</p>
<blockquote><p>Keep your Product Backlog between 50 and 100 items total</p></blockquote>
<p>This is difficult for some Product Owners at first. They may be collecting items from bug databases, issue tracking, stakeholder requests, and customers. A Product Owner may hear that this list must represent the prioritized list of work to be done on the product and then dump any item they can find into the list without making them easily consumable. Find ways to gather items into larger groupings and remove items that are not on your Product Roadmap yet.</p>
<blockquote><p>The top 20-40 items are small enough to fit into a team&#8217;s Sprint</p></blockquote>
<p>The top of your Product Backlog represents what is in highest priority to be implemented by the team. It is important to work with the team on making these items small enough for those items to fit into a Sprint. Getting estimates of cost from the team can help a Product Owner guage if the item is small enough to fit into a Sprint. If the item is important but sized too large to fit then the team can help the Product Owner break it down into smaller pieces.</p>
<blockquote><p>Put acceptance criteria on top 20-40 items</p></blockquote>
<p>Acceptance criteria could be a bulleted list of capabilities the Product Backlog item should put into the product once it has been implemented. These can be thought of as the functional acceptance tests for the Product Backlog item. If your list of acceptance criteria is getting larger than 7 bullet points then&#8230;</p>
<blockquote><p>Break up Product Backlog items into multiple items when acceptance criteria is larger than 7 capabilities</p></blockquote>
<p>Of course, there are also times where the Product Backlog item is too small and does not do enough on its own to create value for the product. In that case there is the following rule of thumb&#8230;</p>
<blockquote><p>Each Product Backlog item should have at least 3 acceptance criteria about its implemented capabilities</p></blockquote>
<p>Having too small of Product Backlog items is not always a bad thing but it could be difficult to manage and provide visibility into. I have found it also leads to Product Backlog items that are technical in nature without business benefit. As a Product Owner, it is usually difficult for me to guage the correct priority for something technical so&#8230;</p>
<blockquote><p>Every Product Backlog item should present value that a Product Owner can understand and prioritize effectively</p></blockquote>
<p>You may use abuse stories to help drive out the value to users for infrastructure or architecture Product Backlog items as written in this blog entry. However, a Product Owner could work closely with the team to delve into the value of their technical items through questions and learning. It is important that a Product Owner does not take the team&#8217;s technical items too lightly since those could be capabilities that allow your release to be successful. Such as scaling to meet your 100,000 users on the site at once.</p>
<blockquote><p>The entire Product Backlog should be prioritized in stack rank order and&#8230;</p>
<p>The entire Product Backlog should be estimated by the team who is going to work off of it</p></blockquote>
<p>These are the basics for Product Backlog management but I thought I should reiterate them. I often find that the Product Owner does not take time to prioritize their entire Product Backlog. The Product Backlog provides visibility to stakeholders, management, and the team about how the product is proposed to move forward. It is sometimes difficult to prioritize if the Product Owner does not have a cost to weigh against the benefit for each Product Backlog item. The team who is actually going to implement items off the Product Backlog should be the ones who estimate it as a group. Not any individual outside the group who will tell the team how long they should be taking on each item. From this costing of the Product Backlog it is possible to&#8230;</p>
<blockquote><p>Generate a release burndown to monitor the release plan</p></blockquote>
<p>Once you know how much the team can take on each Sprint you can do some ad-hoc release planning by going through your estimated Product Backlog and finding out how far they will be after <em>n</em> number of Sprints. Once you put this on a Release Burndown you can monitor that release and see if any changes must be made to the plan based on the reality of implementation or emergent requirements. You may even hold a Release Planning event with your entire team, stakeholders, and other interested parties to create a subset of your Product Backlog that is expected to be in the next release. With all of these parties coming together, a Product Owner may get more items to put into their Product Backlog where gaps were found by the team and stakeholders.</p>
<p>This listing of some Product Backlog rules of thumb is just a start. I have found it helpful to go through this list with new or troubled Product Owners. Please let me know if you have any other items for the list or if you disagree with some. I am always interested in what others have found helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/02/07/product-backlog-rules-of-thumb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>See You at SD West 2009</title>
		<link>http://www.gettingagile.com/2009/01/15/see-you-at-sd-west-2009/</link>
		<comments>http://www.gettingagile.com/2009/01/15/see-you-at-sd-west-2009/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 18:59:23 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Acceptance Testing]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://chrissterling.gettingagile.com/?p=208</guid>
		<description><![CDATA[I’d like to invite you to join me at …
SD West 2009 Conference &#38; Expo
March 9–13
Santa Clara Convention Center, Santa Clara, CA
http://www.SDExpo.com/
I’m pleased to announce that I’ll be teaching the following session at SD West 2009:
&#8220;Managing Software Debt: Continuing to Deliver High Value as Systems Age&#8221; on Friday, March 13th from 3:30-5:00pm
SD West is where [...]]]></description>
			<content:encoded><![CDATA[<p>I’d like to invite you to join me at …</p>
<p>SD West 2009 Conference &amp; Expo<br />
March 9–13<br />
Santa Clara Convention Center, Santa Clara, CA<br />
<a href="http://www.SDExpo.com/" target="_blank">http://www.SDExpo.com/</a></p>
<p>I’m pleased to announce that I’ll be teaching the following session at SD West 2009:</p>
<p>&#8220;Managing Software Debt: Continuing to Deliver High Value as Systems Age&#8221; on Friday, March 13th from 3:30-5:00pm</p>
<p>SD West is where the software development community gathers to learn about the latest business-critical technologies, network with peers, connect with innovative vendors and get inspiration from industry visionaries. The comprehensive conference program covers today’s most important topics including cloud computing, concurrent programming, dynamic languages, agile processes, security, testing and much more.</p>
<p>Super early bird conference discounts of up to $400 expire Friday, January 16.  As a speaker, I can also offer you an additional $100 off the VIP Pass. Simply register at <a href="http://www.SDExpo.com/" target="_blank">http://www.SDExpo.com</a> with the code 9ESPK to get your discount.</p>
<p>Check out all the excellent educational opportunities SD West 2009 has to offer at <a href="http://www.SDExpo.com/" target="_blank">http://www.SDExpo.com</a>.</p>
<p>I look forward to seeing you in Santa Clara!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/01/15/see-you-at-sd-west-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>User Stories Gone Wild!</title>
		<link>http://www.gettingagile.com/2009/01/03/user-stories-gone-wild/</link>
		<comments>http://www.gettingagile.com/2009/01/03/user-stories-gone-wild/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 21:03:06 +0000</pubDate>
		<dc:creator>Chris Sterling</dc:creator>
				<category><![CDATA[Acceptance Testing]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[User Stories]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://chrissterling.gettingagile.com/?p=193</guid>
		<description><![CDATA[The thought of less documentation is appealing to many in the software industry. Reducing the specificity of our requirements can have tremendous value but some go too far. One of the big myths about Agile software development is that Agile means no more documentation. This was not the purpose of the Agile Manifesto value &#8220;Working [...]]]></description>
			<content:encoded><![CDATA[<p>The thought of less documentation is appealing to many in the software industry. Reducing the specificity of our requirements can have tremendous value but some go too far. One of the big myths about Agile software development is that Agile means no more documentation. This was not the purpose of the <a href="http://agilemanifesto.org/" target="_blank">Agile Manifesto</a> value &#8220;Working software over comprehensive documentation&#8221;. The ideas was that only the documentation that supports the creation of working software should be created. There are many reasons for software to have documentation:</p>
<ul>
<li>Maintainability</li>
<li>User manuals</li>
<li>Training</li>
<li>Communication</li>
<li>etc&#8230;</li>
</ul>
<p>Since the idea of Agile software development is not to remove all documentation from software delivery then what is the right amount of documentation? Of course, the answer is it depends but we won&#8217;t leave it at that. This article will focus on one area of documentation and that is specifying what users want.</p>
<p>User stories were popularized by Mike Cohn with his book <a href="http://www.amazon.com/User-Stories-Applied-Development-Addison-Wesley/dp/0321205685" target="_blank">&#8220;User Stories Applied&#8221;</a>. Many people do not read and take in all of what is provided in Mike&#8217;s book before using user stories to capture user desired functionality. Instead they may be introduced to it on the Internet, through a seminar, or in training. The appeal of user stories is they are short statements that are easy to write and fit on 1 index card. The problem, as Ron Jeffries explains it in his article <a href="http://www.xprogramming.com/xpmag/expCardConversationConfirmation.htm" target="_blank">&#8220;Card, Conversation, Confirmation&#8221;</a>, is the statement written on an index card is not enough information for the development to implement without providing some clarity through conversation with someone who represents the user&#8217;s desires. So the first way that user stories &#8220;GO WILD!&#8221; is:</p>
<blockquote><p><em>Stakeholders expecting that a statement written on an index card is enough for the team to implement what they desired in the software</em></p></blockquote>
<p>And this can be more generalized as:</p>
<blockquote><p><em>User stories inappropriately used and becoming just bad specifications</em></p></blockquote>
<p>Development must have conversations with people knowledgable about the user story domain to clarify the desired functionality. And as Ron rightly describes, conversations may be supplemented with documentation when needed. This could be in the form of an user interface design, usability study, business rules, acceptance tests, and any other format necessary for the development team to implement the user story satisfactorily. During the conversation new understanding and clarity of the user story specifics will be drawn out. The next way user stories &#8220;GO WILD!&#8221; is:</p>
<blockquote><p><em>Acceptance criteria (or &#8220;Confirmation&#8221; as Ron puts it) for the user story is not captured and many times forgotten during implementation</em></p></blockquote>
<p>It is important that the development team and domain experts write down important nuggets of knowledge about the desired functionality. This could be as simple as writing it down as bullet points on the back of the index card or creating skeletons of acceptance test cases.</p>
<p>Sometimes teams come across user stories that seem either too ambiguous or potentially mammoth in size. There are some great indicators in the user story text that I have found over the years while working with them over the years. Here are a few ways that user stories &#8220;GO WILD!&#8221; along with ways to deal with them when they do:</p>
<blockquote><p><em>Using <a href="http://www.arts.uottawa.ca/writcent/hypergrammar/conjunct.html" target="_blank">conjunctions</a> within the user story statement</em></p></blockquote>
<p>Whenever I see an &#8220;and&#8221; or &#8220;or&#8221; or &#8220;if&#8221; or &#8220;until&#8221; or&#8230; well you get the picture&#8230; this is an indicator to me that more than one piece of functionality is being described. This is an opportunity to split the user story into multiple user stories usually right where the conjunction was put in.</p>
<blockquote><p><em>Describing too much about &#8220;how&#8221; to implement the user story</em></p></blockquote>
<p>It has been common in my experience to see business analysts or technical writers creating user stories to support a Scrum Product Owner or stakeholder group in defining their desired features. You might see phrases such as &#8220;when they click on &#8230; button&#8221;, &#8220;drop down&#8221;, and &#8220;using Excel&#8221; which are specific about the &#8220;how&#8221;. In the past, these people were asked to describe the functionality so it was clear for programmers to code and testers to verify. Now we are asking them to write user stories that describe &#8220;what&#8221; the user wants and not &#8220;how&#8221; to implement it. This is a problem since they have used the &#8220;how&#8221; to make clear requirements for the development team to implement. Agile teams are expected to take more responsibility in defining &#8220;how&#8221; the software is implemented. This includes providing their input on specifying and designing the software. Many times I have seen specification of features get simplified or enhanced through the conversation between development team and domain experts. We want this to occur more often since these interactions will increase software features delivered and improve the product for its users.</p>
<blockquote><p><em>Can&#8217;t describe the value provided to the user for the desired functionality</em></p></blockquote>
<p>There has been more than one time that I have asked &#8220;why are we implementing this user story&#8221; and was not provided a satisfactory answer. I may have gotten an answer like &#8220;because it is defined in the requirements document&#8221;, &#8220;because it was prioritized high&#8221;, or &#8220;because the CEO wanted it&#8221;. All of these may be good enough reasons to implement the functionality but it is less likely that the development or domain experts will implement it masterfully given the lack of understand around what the user wants to do with this functionality. Understanding how a user story fits into the bigger picture is important since it will enhance the <a href="http://c2.com/cgi/wiki?ConceptualIntegrity" target="_blank">conceptual integrity</a> of the software overall. When software is implemented by generating many disconnected components and integrating them together into a cohesive package the software tends to become inconsistent in its usage with lots of hidden but potentially useful functionality. Ask yourself when writing a user story why would the user want this functionality. You can use the user story template:</p>
<p><em>As a [user role] I want to [do something] so that [I gain some benefit or value]</em></p>
<p>By address the &#8220;so that&#8221; clause you will provide more understanding of how the functionality fits into the larger picture. Or you may find out that it is not useful at all. In that case, you can throw it away and work on something of more value to your users.</p>
<blockquote><p><em>Writing technical user stories in which the value is not understood by the Product Owner or stakeholders</em></p></blockquote>
<p>Technical user stories tend to get deprioritized since they are not easily assessed for value by most non-technical people. I have found that it is essential to describe why we have new technical needs or what the cost of not addressing a system&#8217;s quality attribute such as scalability could be. I have written an <a href="http://chrissterling.gettingagile.com/2007/09/16/develop-architectural-needs-through-abuse-user-stories/" target="_blank">earlier post on this</a> regarding a term coined by Mike Cohn called &#8220;abuse stories&#8221;. The idea is to capture the cost of not addressing an architectural or infrastructure need by describing it from an abuser of the software&#8217;s point of view. Writing technical needs in a user story format is not necessary but may be helpful while building trust between the development team and stakeholders. Sometimes project stakeholders believe that time and money is getting wasted on technical perfection. By writing the abuse story a development team can show that these technical needs are not just wasted efforts but provide value to the software. It is hoped that over time a team can just let their Product Owner or stakeholder group that there is a technical need that must be prioritized before particular functionality should be implemented and that will be enough.</p>
<p>Now that you know some ways that your user stories can &#8220;GO WILD!&#8221; it is time to tame those user stories so that your software can be the best it can be. Happy story writing! And, oh yeah, happy new year 2009!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gettingagile.com/2009/01/03/user-stories-gone-wild/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
