<?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>Propero Solutions &#187; agile</title>
	<atom:link href="http://properosolutions.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://properosolutions.com</link>
	<description>Helping organizations succeed with agile software development</description>
	<lastBuildDate>Wed, 18 Jan 2012 16:36:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Agilo for Scrum: A Review</title>
		<link>http://properosolutions.com/2011/11/agilo-for-scrum-a-review/</link>
		<comments>http://properosolutions.com/2011/11/agilo-for-scrum-a-review/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 17:50:38 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=575</guid>
		<description><![CDATA[Some time ago, I reviewed several open source Agile Application Lifecycle Management (ALM) tools (aka project management tools). One of those tools was Agilo for Trac version 1 (which has been updated since my review). Agilo Software, the company behind the tool, has released a new tool independent of the Trac platform called Agilo for Scrum, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Some time ago, I <a href="http://olex.openlogic.com/wazi/2009/comparing-open-source-agile-project-management-tools/" target="_blank">reviewed several open source Agile Application Lifecycle Management (ALM) tools</a> (aka project management tools). One of those tools was <a href="http://www.agilofortrac.com/" target="_blank">Agilo for Trac</a> version 1 (which has been updated since my review). <a href="http://agilosoftware.com/" target="_blank">Agilo Software</a>, the company behind the tool, has released a new tool independent of the Trac platform called <a href="http://www.agiloforscrum.com/" target="_blank">Agilo for Scrum</a>, which I&#8217;ll review in this post.</p>
<p>In summary, Agilo for Scrum is a very intuitive, easy-to-use tool. Because it&#8217;s entirely web-based and hosted SaaS, you can get started with it in just a few minutes. The interface is designed in a way that it steps you through the process of creating a backlog, creating a sprint, populating a sprint with backlog items (stories), creating tasks for your stories, and then visually tracking progress of work through the sprint. No documentation is necessary to figure it out, although it does have a good <a href="http://www.agiloforscrum.com/en/agilo-quickstart/" target="_blank">quick start guide</a>. While it&#8217;s simple and easy to use, it doesn&#8217;t yet offer advanced features or support large organizations with multi-project programs, although multiple teams will be supported in the next release. The bottom line is that right now it&#8217;s a great tool for single-team projects, and hopefully soon will be great for more complex projects.</p>
<h3>Pros</h3>
<ul>
<li>Simple to use and easy to get started</li>
<li>Intuitive and well-designed interface</li>
<li>Great for single-team projects, especially geographically distributed teams</li>
<li>Nice visual task board view with drag-and-drop functionality</li>
</ul>
<h3>Cons</h3>
<ul>
<li>Each license/instance supports only a single backlog</li>
<li>Cannot attach files to backlog items or tasks</li>
<li>No API nor data import/export</li>
<li>Defects are not included as a specific type of backlog item</li>
</ul>
<h3>Screen shots</h3>
<div>

<a href='http://properosolutions.com/2011/11/agilo-for-scrum-a-review/agilo-product-backlog/' title='agilo product backlog'><img width="150" height="150" src="http://properosolutions.com/wp-content/uploads/2011/11/agilo-product-backlog-150x150.png" class="attachment-thumbnail" alt="agilo product backlog" title="agilo product backlog" /></a>
<a href='http://properosolutions.com/2011/11/agilo-for-scrum-a-review/agilo-sprint-planning/' title='Agilo sprint planning'><img width="150" height="150" src="http://properosolutions.com/wp-content/uploads/2011/11/agilo-sprint-planning-150x150.png" class="attachment-thumbnail" alt="Agilo sprint planning" title="Agilo sprint planning" /></a>
<a href='http://properosolutions.com/2011/11/agilo-for-scrum-a-review/agilo-sprint-tasks/' title='agilo sprint tasks'><img width="150" height="150" src="http://properosolutions.com/wp-content/uploads/2011/11/agilo-sprint-tasks-150x150.png" class="attachment-thumbnail" alt="agilo sprint tasks" title="agilo sprint tasks" /></a>
<a href='http://properosolutions.com/2011/11/agilo-for-scrum-a-review/agilo-task-board-burndown/' title='agilo task board burndown'><img width="150" height="150" src="http://properosolutions.com/wp-content/uploads/2011/11/agilo-task-board-burndown-150x150.png" class="attachment-thumbnail" alt="agilo task board burndown" title="agilo task board burndown" /></a>
<a href='http://properosolutions.com/2011/11/agilo-for-scrum-a-review/agilo-story-review/' title='agilo story review'><img width="150" height="150" src="http://properosolutions.com/wp-content/uploads/2011/11/agilo-story-review-150x150.png" class="attachment-thumbnail" alt="agilo story review" title="agilo story review" /></a>
<a href='http://properosolutions.com/2011/11/agilo-for-scrum-a-review/agilo-observation-retro-page/' title='agilo observation retro page'><img width="150" height="150" src="http://properosolutions.com/wp-content/uploads/2011/11/agilo-observation-retro-page-150x150.png" class="attachment-thumbnail" alt="agilo observation retro page" title="agilo observation retro page" /></a>

</div>
<p style="text-align: left;"><span class="Apple-style-span" style="font-size: 15px; font-weight: bold;">Feature Summary</span></p>
<div>The table below summarizes the major features of Agilo for Scrum.</div>
<div>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="148"><strong>Version</strong></td>
<td valign="top" width="148">01 November 2011</td>
<td valign="top" width="148">No version number specified.</td>
</tr>
<tr>
<td valign="top" width="148"><strong>License</strong></td>
<td valign="top" width="148">Monthly subscription, 45 Euros per team.</td>
<td valign="top" width="148">Software is proprietary to Agilo Software GmbH.</td>
</tr>
<tr>
<td valign="top" width="148"><strong>Platform</strong></td>
<td valign="top" width="148">Web-based SaaS</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Backlog ordering</strong></td>
<td valign="top" width="148">Drag and drop to order backlog items</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Story points</strong></td>
<td valign="top" width="148">Yes</td>
<td valign="top" width="148">Pseudo-Fibonacci scale only.</td>
</tr>
<tr>
<td valign="top" width="148"><strong>Task hours</strong></td>
<td valign="top" width="148">Yes</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Task board view</strong></td>
<td valign="top" width="148">Yes</td>
<td valign="top" width="148">Planned, In Progress, Done</td>
</tr>
<tr>
<td valign="top" width="148"><strong>Iteration burn down chart</strong></td>
<td valign="top" width="148">Yes</td>
<td valign="top" width="148">By hours and story points</td>
</tr>
<tr>
<td valign="top" width="148"><strong>Epics, or a hierarchy of backlog items</strong></td>
<td valign="top" width="148">Yes, with Themes</td>
<td valign="top" width="148">Themes group related stories together. Go to the hierarchy view in the backlog to use this feature.</td>
</tr>
<tr>
<td valign="top" width="148"><strong>Release planning (multiple sprints)</strong></td>
<td valign="top" width="148">No</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Roadmap view (multiple releases)</strong></td>
<td valign="top" width="148">No</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Multiple products/ projects </strong></td>
<td valign="top" width="148">No</td>
<td valign="top" width="148">Feature is planned for a future version.</td>
</tr>
<tr>
<td valign="top" width="148"><strong>Portfolio planning</strong></td>
<td valign="top" width="148">No</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Acceptance tests</strong></td>
<td valign="top" width="148">Text area to capture simple acceptance criteria</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Impediment tracking</strong></td>
<td valign="top" width="148">Yes</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Defects as backlog item type</strong></td>
<td valign="top" width="148">No</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Story Themes</strong></td>
<td valign="top" width="148">Yes</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Teams</strong></td>
<td valign="top" width="148">Yes. 1 team per licensed instance.</td>
<td valign="top" width="148">Multiple teams (with a single backlog) planned for the next release.</td>
</tr>
<tr>
<td valign="top" width="148"><strong>User roles</strong></td>
<td valign="top" width="148">Admin, Scrum Master, Product Owner, Team member.</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Reports</strong></td>
<td valign="top" width="148">Sprint burndown</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Integration &amp; API(s)</strong></td>
<td valign="top" width="148">No</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Dev status</strong></td>
<td valign="top" width="148">Active</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Support</strong></td>
<td valign="top" width="148">By email.</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Forums</strong></td>
<td valign="top" width="148">Uservoice for submitting defects or enhancement requests.</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>User docs</strong></td>
<td valign="top" width="148">Quick Start Guide</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Usability</strong></td>
<td valign="top" width="148">Intuitive</td>
<td valign="top" width="148"></td>
</tr>
<tr>
<td valign="top" width="148"><strong>Suitability for large programs or organizations</strong></td>
<td valign="top" width="148">Suitable only for a single team and project.</td>
<td valign="top" width="148"></td>
</tr>
</tbody>
</table>
</div>
<p>In the interest of full disclosure, I am a partner of <a href="http://agile42.com/" target="_blank">Agile42</a>, the company that develops Agilo Software. I&#8217;ve done my best to write an impartial review.</p>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2011/11/agilo-for-scrum-a-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Secrets of Successful Test Automation</title>
		<link>http://properosolutions.com/2011/10/the-secrets-of-successful-test-automation/</link>
		<comments>http://properosolutions.com/2011/10/the-secrets-of-successful-test-automation/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 12:53:39 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=568</guid>
		<description><![CDATA[Lisa Crispin presented The Secrets of Successful Test Automation at yesterday&#8217;s Agile Denver meeting. I&#8217;ve summarized them here with some of my interpretations. Whole team ownership of and commitment to quality and testing. Leverage everyone&#8217;s strengths. Pair programmers with testers for both unit and acceptance tests. My commentary: do this regularly even if you don&#8217;t do it full time. Use [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://lisacrispin.com" target="_blank">Lisa Crispin</a> presented The Secrets of Successful Test Automation at yesterday&#8217;s <a href="http://agiledenver.org" target="_blank">Agile Denver</a> meeting. I&#8217;ve summarized them here with some of my interpretations.</p>
<ol>
<li>Whole team ownership of and commitment to quality and testing. Leverage everyone&#8217;s strengths.</li>
<li>Pair programmers with testers for both unit and acceptance tests. My commentary: do this regularly even if you don&#8217;t do it full time.</li>
<li>Use a framework that allows non-programmers to write test cases (like fitnesse)</li>
<li>Use a programming language for tests (or your automated test framework) that the programmers know well</li>
<li>Use continuous integration for fast feedback</li>
<li>Run periodic &#8220;engineering sprints&#8221; when team can do whatever they want (e.g. to reduce debt or upgrade tools)</li>
<li>Make it a team responsibility to automate all regression tests. Require everyone to run manual regression tests to motive them to automate.</li>
<li>Stop the line to fix failing tests. My commentary: this requires commitment to quality from management and discipline by the development team.</li>
<li>Continually refactor test code, just like production code. Test code deserves same respect as production code.</li>
<li>Under-commit. Plan less than you think you can do so you have time for unexpected things and test automation. My commentary: I don&#8217;t like to use the term &#8220;under commit&#8221; because it&#8217;s likely to get managers and stakeholders to push back. What it really comes down to is working at a sustainable pace, with a commitment to quality and discipline.</li>
<li>Expect some time to &#8221;get over the hump&#8221; before the investment in test automation pays off with reduced testing effort.</li>
</ol>
<p>There were a few items Lisa didn&#8217;t explicitly list as secrets but were implied:</p>
<ul>
<li>passionate people</li>
<li>strong teamwork and collaboration</li>
</ul>
<p>Others in the audience shared some interesting ideas of their own. Here are a few:</p>
<ul>
<li>Programmers write some happy path automated tests first and then testers can expand on them.</li>
<li>Periodically set aside a day as testing day for the whole team. (Suggested by Mark Waite)</li>
<li>Use Test-driven bug fixing. Require and automated test for every bug fix. This can also be a way to get the team to &#8220;dip their toes in the water&#8221; of TDD.</li>
<li>Budget some amount of team capacity every sprint for debt reduction.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2011/10/the-secrets-of-successful-test-automation/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>The Importance of Culture</title>
		<link>http://properosolutions.com/2011/09/the-importance-of-culture/</link>
		<comments>http://properosolutions.com/2011/09/the-importance-of-culture/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 02:48:26 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[culture]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=545</guid>
		<description><![CDATA[Gary Kelly, Chairman and CEO of Southwest Airlines, writes in the September 2011 edition of Spirit magazine about the importance of culture in his company&#8217;s phenomenal success in a turbulent industry. Comparing Southwest with it&#8217;s competitors, he writes: The biggest difference between Southwest and the rest was the attention to Culture. Not just a differentiator, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Gary Kelly, Chairman and CEO of Southwest Airlines, writes in the September 2011 edition of Spirit magazine about <a href="http://www.spiritmag.com/gary_kelly/" target="_self">the importance of culture</a> in his company&#8217;s phenomenal success in a turbulent industry. Comparing Southwest with it&#8217;s competitors, he writes:</p>
<blockquote><p>The biggest difference between Southwest and the rest was the attention to Culture.</p></blockquote>
<p>Not just a differentiator, but <em>the biggest</em>. He goes on to describe the essence of culture.</p>
<blockquote><p>Your business plan is what you are, but Culture is who you are.</p></blockquote>
<p>How did Southwest maintain a strong, positive corporate culture over the years? Not just by paying lip service.</p>
<blockquote><p>Colleen Barrett, Southwest’s President Emeritus, established a systemwide Culture Committee, which comprisesrepresentatives from each major work location. They meet quarterly to share ideas on how to keep our Culture vibrant and strong.</p></blockquote>
<p>William Schneider wrote that &#8220;organizational culture parallels individual character.&#8221;  If you believe that building strong character is critical for individual success, that implies that investing in building  corporate culture is critical to an organization&#8217;s success.</p>
<p>Culture is an important factor to consider for an organization that adopts agile methods, and even more so for one attempting an agile <em>transformation</em>. For more on that topic, I recommend reading <a href="http://agilitrix.com/2011/04/agile-culture-series-reading-guide/" target="_blank">Michael Sahota&#8217;s insightful blog series on agile culture</a>.</p>
<p><em>Note: I wasn&#8217;t able to find a permalink to the Spirit article, so it may be gone once the October 2011 edition is published.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2011/09/the-importance-of-culture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Seven Deadly Sins of Agile Testing</title>
		<link>http://properosolutions.com/2011/03/the-seven-deadly-sins-of-agile-testing/</link>
		<comments>http://properosolutions.com/2011/03/the-seven-deadly-sins-of-agile-testing/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 16:09:41 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=520</guid>
		<description><![CDATA[I had the honor of presenting at the 2011 SQuAD conference on The Seven Deadly Sins of Agile Testing. It was a highly interactive session where participants gathered in small groups to identify penances, or ways they can avoid the seven sins. I provided a set of cards with ideas, and participants generated their own [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I had the honor of presenting at the <a href="http://www.squadco.com/conference.html" target="_blank">2011 SQuAD conference</a> on <em>The Seven Deadly Sins of Agile Testing</em>. It was a highly interactive session where participants gathered in small groups to identify <em>penances</em>, or ways they can avoid the seven sins. I provided a set of cards with ideas, and participants generated their own ideas as well.  Below is a summary of the solutions the participants came up with for each of the seven sins.</p>
<h2>Sin #7: Separation of Requirements and Tests</h2>
<p>Sin #7 may not be quite deadly, but it definitely is a big drag on team effectiveness. When requirements are separated from tests, it&#8217;s difficult to know which one is the source of truth, and maintaining the dreading traceability matrix is time consuming. Here are some ways to cleanse your soul from this sin.</p>
<h3>Analysts &amp; testers are best friends!</h3>
<p>If we want to reduce the distance between requirements and tests, we need to reduce (or eliminate) the distance between the people responsible for them. Analysts can learn how to write tests, and testers can learn how to think like analysts. Closer collaboration between analysts, testers <em>and </em>programmers is a core value of agile methods and will help in many ways beyond this one.</p>
<h3>Create an executable specification</h3>
<p>The ultimate way to eliminate the separation between requirements and tests is make an <em>executable specification</em>.  The tests <em>are</em> the spec. This provides a single source of truth. Requirements can be written in the form of tests. If you&#8217;re using a test management tool, use it also as your source for requirements. Even better, with tools like fitnesse and cucumber, these executable requirements can be automated.</p>
<h3>Specify requirements by example</h3>
<p>Don&#8217;t limit requirements to abstract descriptions of rules and conditions. Give a bunch of specific examples to illustrate the requirements. Tools like fitnesse make this possible. As Albert Einstein said, “Example isn&#8217;t another way to teach, it is the only way to teach”.</p>
<h3>Practice ATDD and BDD</h3>
<p>Acceptance test-driven development and behavior-drive development codify the notion of executable specifications.</p>
<h3>Team commitment to TDD and CI</h3>
<p>Test-driven development and continuous integration are practices that provide a solid foundation for creating and executable specification.</p>
<h2>Sin #6: Testing is one &#8220;sprint&#8221; behind coding</h2>
<p><a href="http://properosolutions.com/wp-content/uploads/2011/03/testing-1-sprint-behind.png"><img class="alignleft size-full wp-image-528" title="testing 1 sprint behind" src="http://properosolutions.com/wp-content/uploads/2011/03/testing-1-sprint-behind.png" alt="" width="333" height="107" /></a></p>
<p>Scrum defines the output of a Sprint as a &#8220;potentially shippable product increment&#8221;. If it&#8217;s potentially shippable, it must be tested. Period. Here are some ways to atone for this sin.</p>
<h3>Make user stories smaller</h3>
<p>See Richard Lawrence&#8217;s great post on <a href="http://www.richardlawrence.info/2009/10/28/patterns-for-splitting-user-stories/" target="_blank">patterns for splitting user stories</a>.</p>
<p>Here are some more ideas to bring testing and coding into the same sprint:</p>
<ul>
<li>The <em>Definition of Done</em> for backlog items includes testing</li>
<li>Keep QA involved throughout the project &#8211; especially at the beginning of each sprint</li>
<li>Whole-team responsibility for quality</li>
<li>Closer collaboration between programmers and testers</li>
<li>Create an executable specification (see Sin #7 above)</li>
<li>Specify requirements by example</li>
<li>Include testing effort in release planning</li>
<li>Team commitment to TDD and CI</li>
<li>Minimize the effort to setup and deploy test environments</li>
<li>Programmers deliver working code to testers early in the sprint/iteration</li>
<li>Co-located teams</li>
<li>Pair development</li>
<li>Persevere through challenges</li>
<li>As a last resort, you may consider increasing the sprint length, but this option has many disadvantages also.</li>
<li>Consider a Scrumban/kanban process that is flow-based, rather than iteration-based. Even so, strive to keep backlog items small!</li>
</ul>
<h2>Sin #5: Unbalanced testing quadrants</h2>
<p><a href="http://properosolutions.com/wp-content/uploads/2011/03/agile-testing-quadrants.jpg"><img class="alignleft size-full wp-image-529" title="agile-testing-quadrants" src="http://properosolutions.com/wp-content/uploads/2011/03/agile-testing-quadrants.jpg" alt="" width="400" height="284" /></a></p>
<p>The <a href="http://www.agiletester.ca/downloads/Chapter__9x_Quadrant_Summary_v3.pdf" target="_blank">agile test quadrants</a> define different types of testing necessary on most projects: unit testing, acceptance testing, exploratory testing, and &#8220;property&#8221; testing (performance, security, etc.). Our participants identified a few ways to absolve a team of this sin.</p>
<ul>
<li>Balance the testing quadrants in your <em>Definition of Done</em> &#8211; at the user story and release level</li>
<li>Categorize tests to analyze quadrant coverage, determine proper weighting of each</li>
<li>Include testing in release planning</li>
<li>Automate acceptance tests, allowing more time for other quadrants</li>
<li>Keep QA involved throughout the project</li>
<li>Exploratory testing included in acceptance testing with the customer</li>
<li>Outsourcing or in-sourcing specialized testing (performance, -ility) earlier in project</li>
</ul>
<h2>Sin #4: Ignoring Test Failures</h2>
<p><a href="http://properosolutions.com/wp-content/uploads/2011/03/head-in-sand.png"><img class="alignleft size-medium wp-image-530" style="margin: 10px;" title="head in sand" src="http://properosolutions.com/wp-content/uploads/2011/03/head-in-sand-300x202.png" alt="" width="300" height="202" /></a></p>
<p>Strong agile teams tend to have a lot of automated tests that run multiple times per day via continuous integration. All that effort might be for naught if you don&#8217;t do anything when one of those tests fails! Pay your penance, as suggested below.</p>
<ul>
<li>&#8220;Stop the line&#8221; when tests fail</li>
<li>The Definition of Done for backlog items includes testing</li>
<li>Stakeholders participate in testing</li>
<li>Invest in <em>robust </em>automated tests</li>
<li>Incentives for clean check-ins. A little peer pressure or friendly competition can help establish a culture where clean check-ins and passing tests are the expectation of everyone.</li>
</ul>
<h2>Sin #3: Lack of Test-Driven Development (TDD) and Continuous Integration (CI)</h2>
<p>TDD and CI are core practices from Extreme Programing and agile teams will quickly hit a brick wall without them. Here are some ways for a team to get on the path toward righteousness.</p>
<ul>
<li>Achieve an explicit team commitment to do TDD and CI</li>
<li>Invest in legacy test automation</li>
<li>Make automated tests <em>robust</em></li>
<li>Practice ATDD and BDD</li>
<li>Keep metrics on important quality indicators and monitor trends; use these metrics to demonstrate ROI on TDD and CI. Typical measures include rate of CI build failures, test coverage, manual effort level per test cycle, escaped defect counts, and customer satisfaction.</li>
<li>Prioritize test automation efforts to maximize ROI</li>
<li>Stakeholders participate in testing</li>
<li>&#8220;Stop the line&#8221; when tests fail</li>
<li>Include testing in release planning</li>
<li>INVEST in user stories; they should meet the <a href="http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/" target="_blank">INVEST criteria</a>. Make them small and testable.</li>
</ul>
<h2>Sin #2: Separate QA team</h2>
<p>Scrum teams are cross-functional, meaning they include all the people and skills necessary to deliver a working product. The whole team is responsible for the quality of the product. Clearly, QA is part of the development team, rather than a separate team. Here are some virtues to strive for.</p>
<ul>
<li>Cross functional teams include QA</li>
<li>Keep QA involved at all times</li>
<li>Whole-team quality responsibility</li>
<li>Closer collaboration between programmers and testers</li>
<li>Include testing in release planning</li>
<li>Include QA activities in the product backlog</li>
<li>Co-located teams</li>
<li>Open Communication</li>
</ul>
<h2>Sin #1: Waterscrumming</h2>
<p><a href="http://properosolutions.com/wp-content/uploads/2011/03/waterscrumming.png"><img class="size-full wp-image-531 alignleft" title="waterscrumming" src="http://properosolutions.com/wp-content/uploads/2011/03/waterscrumming.png" alt="" width="459" height="59" /></a></p>
<p>The last and perhaps worst of the seven sins is being Agile in name only. High quality, end-to-end tested features are the output of every iteration/sprint. While large programs with multiple teams may very well need a <em>single </em>hardening sprint, multiple testing sprints is just another form of waterfall. Many of the penances listed for the other six sins also apply here.</p>
<ul>
<li>Acquire deeper knowledge of the agile practices. Understand the lean and agile principles behind the process.</li>
<li>Do a pilot project. Be disciplined about all the practices and resist the temptation to modify the practices until you&#8217;ve first tried them &#8220;by the book&#8221; for a significant time.</li>
<li>Include testing in release planning. Testing is an integral part of the team and process, not an afterthought.</li>
<li>Include QA activities in the product backlog. <a href="http://www.agiletester.ca/downloads/Chapter__9x_Quadrant_Summary_v3.pdf" target="_blank">Quadrants 3 and 4</a> in particular may require focused effort that is not directly related to individual features built during sprints.</li>
<li>Cross-functional teams include QA</li>
<li>Co-located teams</li>
<li>Whole-team responsibility for quality</li>
<li>The <em>Definition of Done </em>for backlog items includes testing</li>
<li>Close collaboration between programmers and testers throughout</li>
<li>Create an executable specification</li>
<li>Specify requirements by example</li>
<li>Pair development. In particular, pairing testers with programmers is a great way to cross-train and enable shorter cycles.</li>
<li>Prioritize test automation efforts to maximize ROI on test automation.</li>
<li>Invest in <em>robust </em>automated tests. Tests should be modular and robust in the face of changes in the system.</li>
<li>Better project management. Traditional PMs need to understand agile principles &amp; practices and may need coaching to implement agile practices effectively.</li>
<li>Incentives for clean check-ins</li>
<li>Test First! Practice TDD, ATDD and/or BDD</li>
<li>Ask for forgiveness rather than permission. Can you take the initiative to apply agile practices within your sphere of control and then demonstrate the results, rather than asking for permission first?</li>
</ul>
<p>I welcome input from my fellow sinners who have found their own paths to righteousness. Please comment with your ideas for salvation!</p>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2011/03/the-seven-deadly-sins-of-agile-testing/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Backlog items for refactoring tasks</title>
		<link>http://properosolutions.com/2011/02/backlog-items-for-refactoring-tasks/</link>
		<comments>http://properosolutions.com/2011/02/backlog-items-for-refactoring-tasks/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 18:31:53 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=512</guid>
		<description><![CDATA[In an ideal world, teams are be highly disciplined with XP practices, and refactoring is part of the Definition of Done for each backlog item; refactoring does not need to be planned separately in the backlog. In the real world, teams may inherit code with a lot of technical debt, or they may have (shame [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In an ideal world, teams are be highly disciplined with XP practices, and refactoring is part of the Definition of Done for each backlog item; refactoring does not need to be planned separately in the backlog. In the real world, teams may inherit code with a lot of technical debt, or they may have (shame on them!) not been disciplined about refactoring. If your team has enough technical debt to require a significant refactoring effort, how to do you write a good backlog item for refactoring? Does the concept of &#8220;user story&#8221; even work for refactoring efforts?</p>
<p>First, let&#8217;s agree on the definition of refactoring. I like <a href="http://www.refactoring.com/" target="_blank">Martin Fowler&#8217;s definition</a>: <em> </em></p>
<blockquote><p>Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.</p></blockquote>
<p>I would go further to add that the goal of refactoring is to improve  the internal design of code so it is more readable, maintainable,  elegant, and simple; in short, so it is easier to change. Refactoring is <em>not </em>a smokescreen for fixing a bunch of bugs. It is <em>not </em>any effort to change functionality. While it may result in performance enhancements, that is <em>not </em>the primary goal: the performance of a system <em>is </em>form of external behavior.</p>
<p>Before starting a big refactoring effort, be sure to ask question #1: When is the right time to undertake a major refactoring effort to pay down technical debt?</p>
<p>Should you embark on a big refactoring effort at the end of a project, before a production release? This could be risky without a very comprehensive set of automated tests. How could you recover if the refactoring causes more harm than good? Would you be better off starting the next release with the refactoring effort?  <em>Note: I credit my colleague Aidan Ridley with identifying this important first question</em>.</p>
<p>Here are some guidelines for preparing backlog items for refactoring.</p>
<ol>
<li>Keep refactoring tasks small (the &#8220;S&#8221; in <a href="http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/" target="_blank">INVEST</a>). Identify a single small component or even a single class as the scope of a refactoring item.</li>
<li>Use metrics as indicators for refactoring targets. Measure code complexity, coupling &amp; cohesion to identify good candidates for refactoring.</li>
<li>Prioritize refactoring backlog items based on the value-t0-cost ratio. The value of a particular refactoring item may be known subjectively to the team, or may be indicated by metrics.</li>
<li>Define an adequate unit testing standard <em>before </em>starting. Write all the unit tests required to meet the standard before doing the refactoring, and use them to validate component functionality after refactoring.</li>
<li>Identify the components and functionality that may be impacted by the refactoring, and create a test plan accordingly.</li>
<li>Create automated system-level tests (smoke tests, integration tests) in order to validate whole-system functionality, particularly for areas identified in the previous step.</li>
<li>Identify any open defects that <em>may </em>be fixed by a refactoring. Coordinate with the team on any defect-fixing efforts that might overlap with the refactoring effort.</li>
<li>Identify any dependencies between backlog items &#8211; refactoring or otherwise. Can you find ways to break those dependencies, such as changing the scope of an item, or creating interfaces between components to isolate work in different areas?</li>
<li>Do you need help convincing the Product Owner to prioritize the refactoring effort? Try to quantify the value of the refactoring. How much would the team&#8217;s velocity increase as a result of refactoring? What reduction in defects would you expect?</li>
</ol>
<p>I must give credit to some of my colleagues for helping with some of the ideas in this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2011/02/backlog-items-for-refactoring-tasks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stopping the Snowball Effect with Fixed-Date Releases</title>
		<link>http://properosolutions.com/2010/10/stopping-the-snowball-effect-with-fixed-date-releases/</link>
		<comments>http://properosolutions.com/2010/10/stopping-the-snowball-effect-with-fixed-date-releases/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 18:57:39 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=496</guid>
		<description><![CDATA[Agile release planning can be either date-driven or scope-driven. The approach is mostly the same both ways. We estimate the product backlog, typically using story points for each backlog item, and then estimate or measure the team&#8217;s velocity in story points per sprint (for Scrum teams) to estimate either the date to deliver the scope, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Agile release planning can be either date-driven or scope-driven. The approach is mostly the same both ways. We estimate the product backlog, typically using story points for each backlog item, and then estimate or measure the team&#8217;s velocity in story points per sprint (for Scrum teams) to estimate either the date to deliver the scope, or the scope that fits within the date. Kanban teams may argue that estimates are waste &#8211; and in some cases they may be &#8211; but in some contexts a business needs to set clear expectations with customers, and estimating makes that possible.</p>
<p><a href="http://properosolutions.com/wp-content/uploads/2010/10/snowball.jpg"><img class="alignleft size-full wp-image-497" style="margin: 5px;" title="Snow ball" src="http://properosolutions.com/wp-content/uploads/2010/10/snowball.jpg" alt="Snow ball" width="200" height="170" /></a></p>
<p><strong>The Snowball Effect</strong></p>
<p>In traditional projects with long release cycles, projects tend to &#8220;snowball&#8221; out of control. No one can stand to have their feature deferred to the next release, because the next release is too far in the future. So feature creep happens. The release, snowball, on it&#8217;s way down the hill, begins to pick up more snow and debris as it rolls. At some point, it&#8217;s too big to manage and it&#8217;s going to roll a lot farther (in time) than you wanted it to. Date-driven release planning, with short timelines, is a great way to stop the snowball effect. I especially like frequent and periodic release schedules, such as quarterly releases. With this structure, think of each release as a bucket of limited size; the bucket will only hold so much work, and if you want to add more, you&#8217;ll have to take something out first. This forces a valuable conversation about priority. And because the next release is a few months away, instead of a year or more, it is much easier to defer features til the next release. You may even find (gasp!) that some of those features will ultimately not be important, and can be skipped altogether.</p>
<p>One of the 12 principles of the <a href="http://www.agilemanifesto.org/principles.html" target="_blank">agile manifesto</a> says &#8220;Simplicity &#8211; the art of maximizing the amount of work <em>not </em>done &#8211; is essential.&#8221; Use date-driven release planning to help avoid unnecessary work on your product or project.</p>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2010/10/stopping-the-snowball-effect-with-fixed-date-releases/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Innovation Games® to Build a Better Product</title>
		<link>http://properosolutions.com/2010/10/using-innovation-games%c2%ae-to-build-a-better-product/</link>
		<comments>http://properosolutions.com/2010/10/using-innovation-games%c2%ae-to-build-a-better-product/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 18:02:01 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[product management]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=491</guid>
		<description><![CDATA[Last month I had the great privilege to attend the Innovation Games® Master Course taught my Luke Hohmann, author of the book Innovation Games: Creating Breakthrough Products Through Collaborative Play. I was one of several Agile Coaches and Scrum Trainers in attendance, along with product managers and UI/UX designers.  If you&#8217;re thinking &#8220;I don&#8217;t have [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.amazon.com/Innovation-Games-Creating-Breakthrough-Collaborative/dp/0321437292/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1286386371&amp;sr=8-1"><img class="alignleft size-full wp-image-492" title="Innovation Games" src="http://properosolutions.com/wp-content/uploads/2010/10/innovation-games-cover.jpg" alt="Innovation Games" width="160" height="160" /></a>Last month I had the great privilege to attend the <a href="http://innovationgames.com" target="_blank">Innovation Games</a>® Master Course taught my Luke Hohmann, author of the book <a href="http://www.amazon.com/Innovation-Games-Creating-Breakthrough-Collaborative/dp/0321437292/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1286386371&amp;sr=8-1" target="_blank">Innovation Games: Creating Breakthrough Products Through Collaborative Play</a>. I was one of several Agile Coaches and Scrum Trainers in attendance, along with product managers and UI/UX designers.  If you&#8217;re thinking &#8220;I don&#8217;t have time for games &#8211; I have serious work to get done,&#8221; think again. If you must, call them &#8220;collaborative product discovery workshops&#8221; instead of games, if that will keep those left-brained managers and executives more happy. These are highly effective techniques for engaging customers and stakeholders to discover how to make better products.</p>
<p>Here I describe a few of my favorites of the 12 games described in the book.</p>
<h2><a href="http://innovationgames.com/speed-boat/" target="_blank">Speedboat</a></h2>
<p>Would you like to learn what customers like and don&#8217;t like about your product or service? Instead of a solitary survey, bring your stakeholders together and see what happens when they share ideas with each other. Put a drawing of a speedboat on the wall or on a whiteboard, with an anchor below it and motor on the back. On sticky notes, participants write down things they don&#8217;t like about your product as &#8220;anchors&#8221;, and place them under the boat next to the anchor. Next, participants write things they do like &#8211; or new features they would like to see &#8211; and place them near the motor. As discussions brew among the participants, useful observations and great new ideas will emerge. I actually like a variation on the game using a sail boat instead. (Thanks to Andrea Tomasini for introducing the idea to me.) In sailboat, you still have an anchor, but you use a sail instead of the motor. In addition, I add the boat&#8217;s destination as a tropical island in the distance; customers can describe the goals they hope to accomplish with your product.  Between the boat and the island, beware of rocky reefs hidden in the waves; what risks or obstacles stand in the way of reaching the sunny destination? This game is versatile; I&#8217;ve also used it for agile retrospectives.</p>
<h2><a href="http://innovationgames.com/buy-a-feature/">Buy a Feature</a></h2>
<p>This game is simply brilliant. Having a hard time deciding how to prioritize features? Give each feature a cost (based on estimated effort to build, for example) and give your stakeholders play money. Not too much money, though! In fact no one participant will have enough cash to buy a single feature by himself. They&#8217;ll have to negotiate with each to decide which features are most important.</p>
<h2><a href="http://innovationgames.com/product-box/" target="_blank">Product Box</a></h2>
<p>When you need to decide the vision for your product, this is a fun and engaging way to realize it. Get a blank box the size of a cereal box, and ask each participant to create the box that would make them want to buy your product. The limited real estate on the box forces participants to decide what&#8217;s most important to them. You might think your group isn&#8217;t creative enough to do this, but you will be surprised how engaged people become, even if they&#8217;re not artists. Give them plenty of markers, pens, colored paper, magazine images, glitter, etc. and see what emerges.</p>
<p>The book describes nine more great games, which are a great addition to your toolbox. The Innovation Games® company has also developed online versions of many of the games, including Buy a Feature, allowing distributed groups to play collaboratively.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 474px; width: 1px; height: 1px; overflow: hidden;">http://innovationgames.com/product-box/</div>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2010/10/using-innovation-games%c2%ae-to-build-a-better-product/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dynamic Team Estimation in Action</title>
		<link>http://properosolutions.com/2010/05/dynamic-team-estimation-in-action/</link>
		<comments>http://properosolutions.com/2010/05/dynamic-team-estimation-in-action/#comments</comments>
		<pubDate>Sat, 29 May 2010 09:43:04 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[estimation]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=478</guid>
		<description><![CDATA[This week I coached a product team in Shanghai consisting of 3 Scrum teams (about 8 people per team) working on a single backlog. The challenge: how to estimate a backlog of 200 items for the team&#8217;s first release planning session, without taking all day? The solution: Dynamic Team Estimation I&#8217;ve blogged previously about Steve [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>This week I coached a product team in Shanghai consisting of 3 Scrum teams (about 8 people per team) working on a single backlog. The challenge: how to estimate a backlog of 200 items for the team&#8217;s first release planning session, without taking all day?</p>
<p>The solution: Dynamic Team Estimation</p>
<p>I&#8217;ve blogged previously about Steve Bockman&#8217;s <a title="Team Estimation Game" href="http://properosolutions.com/2009/05/team-estimation-game/">Team Estimation Game</a>. This is a great alternative to planning poker which I&#8217;ve found easier for teams to understand, and much faster than planning poker. My colleague Björn Jensen and I presented some adaptations to the Team Estimation Game at the 2010 Shanghai Scrum Gathering that we call <em>Dynamic Team Estimation</em>. (Our presentation is available on the <a title="Resources" href="http://ProperoSolutions.com/resources">Resources</a> page under <em>Agile Estimating 2.0</em>). We used Dynamic Team Estimation in this case and it worked very well.</p>
<p>First, we considered having the three teams divide the backlog and have each estimation their own subset of items. The teams, however, preferred considering the whole backlog together. Since it wouldn&#8217;t be effective to have 20+ people all trying to estimate at the same time, we asked each team to select 3 representatives who would do the estimating, being sure that we had a good cross-section of skill sets included.</p>
<p>Our team of 9 estimators plus Scrum Masters and Product Owner gathered in a room with a large table. Since the teams were in their 3rd sprint, we started by laying out the completed user stories on the table based on their size to serve as our basis &#8211; small items on one end of the table, large item at the other end. These stories already had story point values. The product owner printed the backlog items on half-sheets of paper and brought them in a stack ordered by priority. We laid out the top 10 or so backlog items on one end of the table and began by using the structured rules of the Team Estimation Game. One person at a time could estimate one item placing it on the table according to size, or could choose to change an estimate made previously. Players proceed in round-robin fashion, with each player explaining his or her rationale. Other players are allowed to ask <em>clarifying </em>questions, but not to debate the estimate &#8211; they will have that chance on their own turn. Rather than proceed in strict priority order, we allowed each player to choose any story from the 10-or-so top-ranked items we set out.</p>
<p>Before we could even get one time around the table, the team was wanting to bend the rules. They were having discussions about each item, and while one person was placing an item, others were looking at the yet-to-be-estimated items. We asked them to remember the rules, and to get around the table at least one time before we considered relaxing the rules.</p>
<p>After the first round, we asked the team if they wanted to relax the rules and instead use Dynamic Team Estimation. They quickly agreed and immediately swarmed the table. Pairs and small groups had discussions about out items, and 2-3 items were under consideration concurrently at most times. We asked the team to follow one rule now: whenever someone estimated an item (by placing it on the table), he/she would get the whole groups&#8217; attention and explain the rationale for the estimate; this gave everyone a chance to provide input or disagree. This was important &#8211; without it, estimates might not be considered by the whole team.</p>
<p>We split the session into <a href="http://www.pomodorotechnique.com">pomodoros</a> (25 minutes of work followed by a 5-minute break). During each pomodoro, the teams invited a few other members to attend so that everyone could observe the process and contribute if needed. The Product Owner answered questions and clarified the user stories.</p>
<p>After 3 and a half pomodoros, the team finished estimating 200 items with smiling faces. Just a few days earlier, many team members said they didn&#8217;t think they&#8217;d be able to estimate most items, and no one (including myself) thought we could do it in less than 2 hours. Success!</p>
<p>The backlog is not posted on a large wall, arranged by sprint based on the team&#8217;s velocity and estimates. The whole team now has visibility into the scope of the project and can use this tool for look-ahead planning (as described by Mike Cohn).</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 21px; width: 1px; height: 1px; overflow: hidden;">http://properosolutions.com/wp-content/uploads/2010/05/agile_estimation_2.0-for-pdf.pdf</div>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2010/05/dynamic-team-estimation-in-action/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Potential Dysfunctions of Sprint Commitments</title>
		<link>http://properosolutions.com/2010/03/potential-dysfunctions-of-sprint-commitments/</link>
		<comments>http://properosolutions.com/2010/03/potential-dysfunctions-of-sprint-commitments/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 16:57:43 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[estimation]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://properosolutions.com/?p=459</guid>
		<description><![CDATA[Many Scrum teams subscribe to the following set of rules, which are the prevailing guidance in the Scrum community and literature. At the beginning of a sprint, the team commits to delivering some number of backlog items Teams should not start work on a backlog item unless it can be finished in the same sprint [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Many Scrum teams subscribe to the following set of rules, which are the prevailing guidance in the Scrum community and literature.</p>
<ol>
<li>At the beginning of a sprint, the team <em>commits </em>to delivering some number of backlog items</li>
<li>Teams should not start work on a backlog item unless it can be finished in the same sprint</li>
<li>Sprints should never be extended</li>
</ol>
<p>The reasoning behind these rules are that the time pressure of a short, fixed sprint helps a team focus and get more done than they otherwise would, and that extending a sprint is a slippery slope toward anarchy. While I understand this logic, in practice I&#8217;ve seen two dysfunctions result from these tenets of Scrum.</p>
<p>First, in many organizations the word <em>commitment</em> invokes fear in the team: <em>if we don&#8217;t deliver our commitment, we&#8217;ll be punished</em>. As a result, teams are likely to <em>under-commit </em>and bring less work than they otherwise would into the Sprint. &#8220;But then they can bring in more work if they finish early,&#8221; goes the argument. But rules #2 and #3 tell them to do this only if they can finish the work by a fixed date, and the same fear factor makes them very reluctant to do this. I have actually seen teams with idle time at the end of the sprint as a result.</p>
<p>On teams without the fear of commitment, an entirely different dysfunction can result from these rules. While speaking to an audience of about 50 people at <a href="http://agiledenver.org">Agile Denver</a> recently, I asked two questions.</p>
<ol>
<li>How many of you believe sprint deadlines are a positive motivation?</li>
<li>How many of you have cut corners with quality to meet a sprint deadline?</li>
</ol>
<p>To my surprise, only a handful of people timid raised their hands in response to the first question. To my further surprise, almost every hand in the room shot up emphatically in response to the second question. The evidence indicates that this combination of rules is having unintended consequences.</p>
<p>So what should we do? A few things I would recommend.</p>
<p>First, replace the phrase <em>Sprint commitment</em> with <em>Sprint estimate</em>. Be sure to have the crucial conversation with your team, Product Owner and stakeholders about what it means when the team accepts a set of user stories in sprint planning, and what it means if they are unable to complete all the items they estimated; particularly that no punishment will be doled out as a result. This is a good opportunity to stress the importance of limiting WIP and focusing on the highest priority items within the sprint, so that if anything isn&#8217;t finished it will be the lowest priority item.</p>
<p>Secondly, be sure to have good <a href="http://properosolutions.com/2009/07/metrics-for-agile-projects/">quality metrics as compensating measures</a> for your velocity metrics. While velocity metrics give an incentive for the team to go faster, they also can result in pressure to cut quality. Effective quality metrics, such as code complexity and code coverage of automated tests, combined with practices like pair programming or code reviews, provide a balancing incentive to keep quality high.</p>
<p>Third, I believe it&#8217;s ok for a team to start a new backlog item even if they don&#8217;t think it can be finished by the end of the sprint, assuming that all the higher priority items are truly done and accepted by the product owner, and the team has established practices to ensure a sustainable pace with high quality. Some people might suggest that rather than starting a new story that can&#8217;t be finished by the end of the sprint, the team should do &#8220;extra&#8221; refactoring or work on resolving impediments. In my view, the team&#8217;s Definition of Done and working agreements should already ensure there is adequate time for these activities. If you wait until you have &#8220;extra&#8221; time, it&#8217;s likely that you&#8217;ll never have time.</p>
<p>Kanban eliminates the sprint deadline, which is another way to possibly reduce the motivations that lead to this dysfunction. But beware that kanban should not be used as an excuse to be undisciplined; perhaps that&#8217;s a topic for a separate post.</p>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2010/03/potential-dysfunctions-of-sprint-commitments/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Jira and GreenHopper for agile project management</title>
		<link>http://properosolutions.com/2009/12/jira-and-greenhopper-for-agile-project-management/</link>
		<comments>http://properosolutions.com/2009/12/jira-and-greenhopper-for-agile-project-management/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 05:18:00 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>

		<guid isPermaLink="false">http://accelerateagile.com/2009/12/jira-and-greenhopper-for-agile-project-management/</guid>
		<description><![CDATA[I previously blogged about using Jira with some open source tools for managing agile projects, and concluded that it was not a great solution &#8211; without GreenHopper. I&#8217;ve been using the latest version of Jira with the GreenHopper agile plugin extensively now, and I like it. It is lacking some features, which I&#8217;ll describe later, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I previously blogged about <a href="http://agileadvocate.blogspot.com/2009/01/jira-not-so-great-for-agile.html">using Jira with some open source tools for managing agile projects</a>, and concluded that it was <i>not </i>a great solution &#8211; without GreenHopper. I&#8217;ve been using the latest version of Jira with the GreenHopper agile plugin extensively now, and I like it. It is lacking some features, which I&#8217;ll describe later, but here is an overview of the main functionality.</p>
<p>The first thing I like is the Planning Board view, which is aimed at Product Owners who spend lots of time ranking and re-ranking backlog items. The GreenHopper planning board allows you to drag and drop items to either change their rank or to move them from the backlog into a particular iteration or sprint (version, in Jira lingo).</p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_RKQgVkLLIO8/SysNMjL7sAI/AAAAAAAAAbI/dHxVcvFISPQ/s1600-h/planning+board.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_RKQgVkLLIO8/SysNMjL7sAI/AAAAAAAAAbI/dHxVcvFISPQ/s400/planning+board.jpg" /></a></div>
<div style="text-align: center;">Above: dragging a user story from the backlog to a sprint. (Click image to see it full-size.)</div>
<p>For the development team, GreenHopper&#8217;s Task Board view is just that &#8211; it simulates the physical task board that so many co-located teams use. It&#8217;s easy to drag the virtual cards to columns to update their status, just like you would do with a physical board. Very nice. It also does something you can&#8217;t quite do with sticky notes; double click to see more information, or click on the item ID to see all the detail.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNRkLQyuI/AAAAAAAAAbY/HqarWx5BpP0/s1600-h/task+board+summaries.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNRkLQyuI/AAAAAAAAAbY/HqarWx5BpP0/s400/task+board+summaries.jpg" /></a></div>
<div style="text-align: center;">Above: The Task Board in summary view mode (Click image to see it full-size.)</div>
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNQFxSzMI/AAAAAAAAAbQ/JqN-pIRLnJo/s1600-h/task+board+list+view.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNQFxSzMI/AAAAAAAAAbQ/JqN-pIRLnJo/s400/task+board+list+view.jpg" /></a></div>
<div style="text-align: center;">Above: See more of the task board without scrolling &#8211; the List view (Click image to see it full-size.)</div>
<p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/_RKQgVkLLIO8/SysNHkw15LI/AAAAAAAAAa4/CKRVF5OFhjw/s1600-h/drag+and+drop+task+status.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/_RKQgVkLLIO8/SysNHkw15LI/AAAAAAAAAa4/CKRVF5OFhjw/s400/drag+and+drop+task+status.jpg" /></a></div>
<div style="text-align: center;">Above: Dragging a card from &#8220;To Do&#8221; to &#8220;In Progress&#8221;</div>
<p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_RKQgVkLLIO8/SysNGF_YEzI/AAAAAAAAAaw/C3BC9-2sCIk/s1600-h/double+click+card+to+expand.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/_RKQgVkLLIO8/SysNGF_YEzI/AAAAAAAAAaw/C3BC9-2sCIk/s320/double+click+card+to+expand.jpg" /></a></div>
<div style="text-align: center;">Above: Double click to see this expanded view of any card on the board.</div>
<p>An advantage of GreenHopper over sticky notes on the wall is that your burn down charts are calculated automatically: in hours, number of items, and story points. The screen images below show these. The red line is the ideal burn down and the green line is the actual.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/_RKQgVkLLIO8/SysNKb_-OaI/AAAAAAAAAbA/nfWIQ3gjQIA/s1600-h/hour+burndown.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/_RKQgVkLLIO8/SysNKb_-OaI/AAAAAAAAAbA/nfWIQ3gjQIA/s400/hour+burndown.jpg" /></a></div>
<div style="text-align: center;">Above: Burn down in hours (Click image to see it full-size.)</div>
<p>Are you a bleeding-edge adopter of kanban? GreenHopper is decent for that. The columns on your kanban board are customizable, so you can create any columns you want. You can also set a WIP limit for each column. You <i>can&#8217;t</i>, however, set up horizontal &#8220;swim lanes&#8221; for different service level agreements (SLAs), such as a row for items that need to be expedited.</p>
<p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_RKQgVkLLIO8/SysOWagfLTI/AAAAAAAAAbg/WZDw6m8smNo/s1600-h/kanban.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/_RKQgVkLLIO8/SysOWagfLTI/AAAAAAAAAbg/WZDw6m8smNo/s400/kanban.png" /></a></div>
<div style="text-align: center;">Above: The column turns red when the WIP limit is exceeded</div>
<p>The Jira dashboard also offers a reasonable approximation of the cumulative flow diagram (CFD) that replaces burn downs in a lean / kanban process. It does show items created vs. resolved, but it doesn&#8217;t graph items in-progress. The chart also counts sub-tasks as items, which you may not want.</p>
<p>
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNEP8-8xI/AAAAAAAAAao/z7G94U2v-5A/s1600-h/CFD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNEP8-8xI/AAAAAAAAAao/z7G94U2v-5A/s320/CFD.jpg" /></a></div>
<p>Above: Almost a cumulative flow diagram. Close, but no cigar.</p>
<p>GreenHopper is an add-in to Jira, so you still get all of the Jira functionality unchanged. Like Jira itself, GreenHopper is extensively configurable; almost annoyingly so because there are so many options it&#8217;s hard to know what to do with them. Fortunately the default configuration is reasonable, although there are some setup steps required to enable item ranking, which is so fundamental that it should have been done out-of-the-box.</p>
<p>What is it lacking?
<ol>
<li>If you&#8217;re a large organization with a portfolio of inter-related projects, Jira + GH doesn&#8217;t do much to show you the big picture across multiple projects.</li>
<li>Although you have a hierarchy of versions, such as a release containing multiple sprints (described <a href="http://confluence.atlassian.com/display/GH/Setting+Up+a+Version+Hierarchy">here</a>), it doesn&#8217;t do much; the planning board simply indicates that one version is a &#8220;master&#8221; of the other. GreenHopper doesn&#8217;t offer a timeline view showing the version hierarchy.</li>
<li>You can create a hierarchy of backlog items, for example to have large-scale epics that contain many user stories, as described <a href="http://confluence.atlassian.com/display/GH/Working+with+Epics">here</a>. However, this feature isn&#8217;t enabled by default and requires an adminstrator to configure it. As an alternative, or in addition to the &#8220;epic&#8221; feature, you can create associations between items for this purpose, but there is no easy way to visualize the relationships. There is free task hierarchy plug-in that will show the hierarchy, but only for one top-level item at a time.&nbsp; </li>
</ol>
<p>Overall, especially for smaller teams without portfolio management needs, I give the tool high marks.</p>
]]></content:encoded>
			<wfw:commentRss>http://properosolutions.com/2009/12/jira-and-greenhopper-for-agile-project-management/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

