<?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>Scrum-Masters.com</title>
	<atom:link href="http://scrum-masters.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://scrum-masters.com/blog</link>
	<description>SCRUMmasters is a NYC-based consultancy focused on leading Agile teams to deliver outstanding project results. Its principal members have been leading Agile teams and coaching enterprises in the adoption of Lean and Agile practices since the late 1990s; before the signing of the Agile Manifesto and the popularization of XP and Scrum. We have a long history of repeatable results building scalable Agile teams that are able to sustain throughput rates between 2 and 3 times that of comparable traditional teams.</description>
	<lastBuildDate>Sun, 13 Jun 2010 22:35:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Agile Quality Assurance</title>
		<link>http://scrum-masters.com/blog/2010/05/17/agile-quality-assurance/</link>
		<comments>http://scrum-masters.com/blog/2010/05/17/agile-quality-assurance/#comments</comments>
		<pubDate>Mon, 17 May 2010 23:59:30 +0000</pubDate>
		<dc:creator>Bill Rinko-Gay</dc:creator>
				<category><![CDATA[Agile Quality]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Quality Assurance]]></category>

		<guid isPermaLink="false">http://scrum-masters.com/blog/?p=2205</guid>
		<description><![CDATA[There's more to running a development project than just writing the code.  Start reading the Agile Quality category to see what an Agile approach to Quality Assurance can bring to your projects.]]></description>
			<content:encoded><![CDATA[<p>by Bill Rinko-Gay</p>
<p>When I first started researching Agile Quality Assurance I was told it wasn&#8217;t necessary because Agile methods have quality built in.  Agile teams developed processes such as Extreme Programming (XP) and Test Driven Development (TDD) to produce quality code in a short amount of time.  Because these processes work well, it is believed Agile teams don’t need Quality Assurance.  I disagree.  I have studied and implemented Agile methods based on over 28 years of practical test and quality assurance experience. My viewpoint gives me a different perspective on Agile and Quality Assurance.</p>
<p>Developers have a specific expertise and viewpoint.  Early Agile methods focused on development tools and practices because that’s what developers could control.  The work they did and the results they achieved are good.  They showed quality code can be developed in a short amount of time.  But there’s more to running a development project than just writing the code.  That’s why project management methods have been developed to compliment the development methods.  Now we need to adopt new methods of process evaluation and independent testing that can add value to Agile teams &#8211; Agile Quality Assurance.</p>
<p>As with anything Agile, I’m not saying that Agile teams need to add one or more QA members to the team.  I’m defining principles and activities that provide QA.  How the team organizes to implement those principles and accomplish those activities is up to the team.</p>
<p>I intend to write about individual subjects in the future, but here are some key principles involved in Agile Quality Assurance:</p>
<ul>
<li>Quality software is software that makes the customer happy.  You have to build the right thing, and you have to build it right.</li>
<li>The only way to assure quality software is to build quality in.  Good quality assurance focuses on how to build quality in.  Finding and removing bugs is quality control.</li>
<li>It is easier to build quality software and verify it is right if you develop code in small increments.</li>
<li>Development and Test is a single activity, not two separate activities</li>
</ul>
<p>Key roles in Agile Quality Assurance are:</p>
<ul>
<li>Making sure the features, as designed, will meet the need (building the right thing)</li>
<li>Helping to find the technical solution with the highest quality</li>
<li>Analyzing the process to identify and remove barriers to building quality in</li>
<li>Testing the software to verify the process is working, and that the software is built right</li>
</ul>
<p>In future posts we&#8217;ll look at these principles and activities, and some of the team behaviors that flow from them.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2010/05/17/agile-quality-assurance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Book Testing</title>
		<link>http://scrum-masters.com/blog/2010/05/21/open-book-testing/</link>
		<comments>http://scrum-masters.com/blog/2010/05/21/open-book-testing/#comments</comments>
		<pubDate>Fri, 21 May 2010 02:36:38 +0000</pubDate>
		<dc:creator>Bill Rinko-Gay</dc:creator>
				<category><![CDATA[Agile Quality]]></category>
		<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[Test Planning]]></category>

		<guid isPermaLink="false">http://scrum-masters.com/blog/?p=2215</guid>
		<description><![CDATA[Knowing how the story will be tested helps the developer build the right thing.]]></description>
			<content:encoded><![CDATA[<p>by Bill Rinko-Gay</p>
<p>There are two components of quality software: building the right thing and building the thing right.  One of the most difficult things to get right is knowing what the right thing is.  In non-Agile methods this puts the focus on defining complete and detailed requirements.  Experience shows that it is very difficult, if not impossible, to specify exactly what you want when you haven’t seen or worked with it yet.</p>
<p>In the absence of complete and detailed requirements we have to build software with a knowledge of what that software must do to satisfy the user.  This knowledge has to be shared by the entire Agile team.  We start to share this knowledge with a user story, but that only gives part of the picture.  The rest of the picture is given in implementation and test plans.</p>
<p>When we share our plans for testing with the user and with the developer we share a statement of what the right thing is.  This statement, developed correctly, becomes an excellent tool to understand what we have to build.  Having this plan before development begins is an important part of assuring we build the right thing.</p>
<p>We start by writing the test story.  In traditional testing language this would be called a test scenario.  It’s a statement of the contents of the test without being hampered by the execution details.  Written properly it allows the user to say, “Yes, if it passes these tests, it will be what I want.”</p>
<p>Each user story should have a test story.  The test story should be written as soon as it can be after the user story has been accepted.  The QA analyst needs to be involved in the user story development so he can have the knowledge to develop the test story.  When written, the test story should contain the following elements:</p>
<ul>
<li>A specific validation of each acceptance criterion in the user story</li>
<li>A statement of each behavior being demonstrated</li>
<li>For each behavior:
<ul>
<li>A brief description of how it will be verified</li>
<li>Any special data setup that will be required</li>
<li>Any specific system setup that will be required</li>
<li>Success criteria</li>
</ul>
</li>
</ul>
<p>Once the user has verified the test story matches the expected use of the system, the developer has a target.  The developer can be sure if he hits the target, he has built the right thing.</p>
<p>In the next blog I will talk about the process of refining this test story to the appropriate level for the Agile team and planning out its execution.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2010/05/21/open-book-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teaching to the Test</title>
		<link>http://scrum-masters.com/blog/2010/05/26/teaching-to-the-test/</link>
		<comments>http://scrum-masters.com/blog/2010/05/26/teaching-to-the-test/#comments</comments>
		<pubDate>Wed, 26 May 2010 01:46:52 +0000</pubDate>
		<dc:creator>Bill Rinko-Gay</dc:creator>
				<category><![CDATA[Agile Quality]]></category>
		<category><![CDATA[Agile Software Development]]></category>
		<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[Test Planning]]></category>

		<guid isPermaLink="false">http://scrum-masters.com/blog/?p=2218</guid>
		<description><![CDATA[Help the development team know what the target is and they are much more likely to hit it.]]></description>
			<content:encoded><![CDATA[<p>by Bill Rinko-Gay</p>
<p>This blog is a follow-on to the post entitled <a href="http://scrum-masters.com/blog/2010/05/21/open-book-testing/">“Open Book Testing.”</a> If you haven’t already, you may want to read that first.</p>
<p>Once you have reviewed all your test stories it’s time to prepare to execute them.  A well planned test execution, in conjunction with a well planned code implementation, helps to actually build quality in as well as verify the quality of the completed software.</p>
<p>To begin with, you need to understand how the users will interact with the program.  Remember, the developers will be focused on making features work properly.  You need to focus on software that meets the user’s needs.  As an example,  I once did a comparison of two circuit board design packages.  Technically, one product (I’ll call it A) was far superior to the other (B), but A was much harder to use.  A would give the users far less clean up work after the auto-placement.  B left more clean up work, but all the work would be done in less time because of the ease of use.  The result was that we bought B.  The poor usability decisions cost company A money.</p>
<p>As you break your test stories down into discrete steps you will be the one looking at how the package works as a whole.  This is the time to share with your developers whether features are usable.   Walk through the steps with them and help them understand what it will be like for the users to use the software.  In the case of my example, this meant showing the difficulty in moving an integrated circuit and re-routing its traces, and why that made an excellent initial placement algorithm unimportant.</p>
<p>NOTE: You may have become used to using poorly designed software because of a key feature.  Don’t fall into the trap of assuming that’s acceptable.  If a trade-off must be made, it should be an explicit trade-off with the user’s needs in mind.</p>
<p>In addition to verifying usability, work with the developers to plan the development and test effort in groups of stories that make sense.  A common test problem is that releases that change what’s already been tested create “test thrash”.  I’ll focus on minimizing this test thrash in my next blog.</p>
<p>By working through your test steps during the implementation you help your developers create a good user experience from the beginning, rather than trying to patch it in the end.  This is a powerful contributor to building quality in.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2010/05/26/teaching-to-the-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Functional Grouping</title>
		<link>http://scrum-masters.com/blog/2010/06/01/functional-grouping/</link>
		<comments>http://scrum-masters.com/blog/2010/06/01/functional-grouping/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 01:44:45 +0000</pubDate>
		<dc:creator>Bill Rinko-Gay</dc:creator>
				<category><![CDATA[Agile Quality]]></category>
		<category><![CDATA[Quality Assurance]]></category>
		<category><![CDATA[Test Planning]]></category>

		<guid isPermaLink="false">http://scrum-masters.com/blog/?p=2223</guid>
		<description><![CDATA[A look at three advantages of planning your iteration around functional groups.]]></description>
			<content:encoded><![CDATA[<p>by Bill Rinko-Gay</p>
<p>Now that your stories are chosen and the iteration has been kicked off, is there any reason not to have developers simply start in as quickly as they can on writing the code for the stories?  I believe there are 3 reasons to set up a plan for delivering groups of stories to test.  First, functional grouping allows for higher quality code delivered faster. Second, functional grouping makes the testing job far easier.  Third, functional grouping allows the team to re-plan an incomplete iteration.  Let’s look at each of these claims in detail.</p>
<p><span style="text-decoration: underline">Quality:</span> An iteration will always have stories that impact different functional areas.  If you functionally group your stories you can consider the potential impacts one may have on another.  Planning the development with these impacts in mind is likely to get the development done more quickly. Since the development will be more coherent from the start, it is likely to be of higher quality.  Of course, you can achieve that same level of quality when taking the stories piecemeal by re-designing and re-factoring to account for the interactions.  This is what you have to do when the stories fall in different iterations.  Re-designing and re-factoring takes time, so it benefits the team to avoid it whenever possible.</p>
<p><span style="text-decoration: underline">Testing:</span> Functional Grouping aids the testers because they can focus their efforts on a single functional area at a time.  When that area is complete its manual testing will not have to be revisited, reducing test thrash.  Completing a functional group and then turning it over to testing means that functionality can be finished when testing is completed.  The software moves forward without the delays caused by going two steps forward and one step back.</p>
<p>Re-planning: Reasonably stable release candidates are made ready for test at the completion of each functional group.  The team may have some other partially completed stories in the build, but the completed functionality can be the basis for a release if the team runs behind in finishing the iteration.  If there have been no stable builds prepared for test and you decide to cut back on the stories in the iteration, you risk destabilizing the code. If you have one of these test builds to fall back on, you will have an easier time limiting the release to the smaller group of stories.</p>
<p>The functional groups should be worked on in priority order.  In some cases the priority may be set by technical risk.  Otherwise they are set by the business. The planning should be based on the question, if the iteration could only deliver on a subset of the stories planned, which is the most important subset.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2010/06/01/functional-grouping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Efficient Dev-Test</title>
		<link>http://scrum-masters.com/blog/2010/06/13/efficient-dev-test/</link>
		<comments>http://scrum-masters.com/blog/2010/06/13/efficient-dev-test/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 22:33:41 +0000</pubDate>
		<dc:creator>Bill Rinko-Gay</dc:creator>
				<category><![CDATA[Agile Quality]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Quality Assurance]]></category>

		<guid isPermaLink="false">http://scrum-masters.com/blog/?p=2225</guid>
		<description><![CDATA[Planning iterations around the development and test schedule leads to higher quality releases.]]></description>
			<content:encoded><![CDATA[<p>by Bill Rinko-Gay</p>
<p>One of the advantages of Agile is the ability to deliver continuous improvements to your customer.  If you have experience in traditional development paradigms you a release is usually a mixed bag filled with new functionality and new (and sometimes old) defects.  This is frustrating for users and the development team.  You seem to always be under a backlog of bugs that keeps the software from delivering all the business value you intended.</p>
<p>This constant backlog doesn’t just occur in traditional development, it can occur on Agile projects as well.  The hurry to try to reduce the backlog by fixing last-minute bugs leads to thrash, and thrash can lead to reduced quality as hurry cause the team to introduce new bugs.   Your goal is to move always forward with your code, but the reality is often “two steps forward, one step back.”</p>
<p>One way to avoid this problem is to think through the activities as a single phase: “dev-test.”  When the work is ready to start on an iteration the developers and testers map out how the software is going to be changed.  The team should plan to bundle stories into builds.  The build strategy should maximize the team’s efficiency while delivering continuously increasing functionality at high quality.  The more compact the changes between builds, the easier it is to verify those changes are made correctly.  Unfortunately, this isn’t easy.  Making this possible sometimes requires extra work.  Still, the payoff is worth the effort.</p>
<p>As a specific example, suppose all the stories in a particular iteration require a new save functionality.  Also, suppose the save functionality should be written last because developers need to see the other stories’ implementation before writing the save function.  Rather than delivering all the functionality at once, the developers could write a temporary save function that would allow the early stories to be tested.  This is “wasted” work for the developers, but it increases the efficiency of the team because they can get fast feedback on the early stories and get any defects fixed before the real save function is implemented.  If the other stories are tested complete, then problems caused by the save function are isolated.  Achieving these goals would not be possible without developers accepting a little less efficiency.</p>
<p>Similarly, suppose the GUI changes are the least risk for introducing bugs, leading the team to agree to write the GUI last.  This means the testers will need to re-visit all the GUI functionality after testing the other stories.  If the GUI stories had been written first, the testers would not have to repeat tests at the end to exercise those GUI functions, but the developers would not get fast failure on more risk-prone stories.  In this case testers agree to a less efficient test plan to improve the efficiency of the developers.</p>
<p>The advantage of doing multiple releases with small increments of functionality is the reduced time to test each incremental build leading to higher overall quality.  Development and test are both more efficient, and the customer is much happier.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2010/06/13/efficient-dev-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to Agile by the Numbers</title>
		<link>http://scrum-masters.com/blog/2009/08/24/welcome/</link>
		<comments>http://scrum-masters.com/blog/2009/08/24/welcome/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 02:25:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile by the Numbers]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile metrics]]></category>
		<category><![CDATA[agile team]]></category>
		<category><![CDATA[agile velocity]]></category>
		<category><![CDATA[high performance team]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[project metrics]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.scrum-masters.com/?p=1970</guid>
		<description><![CDATA[Welcome to Agile by the Numbers!

This series of articles delves into the sticky topic of Agile metrics. Let me state right off the bat that this is NOT focused on measuring the performance of an Agile team for purposes of benchmarking or report-card scoring, although you will get some nice data for this purpose if [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Welcome to Agile by the Numbers!<br />
</strong></p>
<p>This series of articles delves into the sticky topic of <strong>Agile metrics</strong>. Let me state right off the bat that this is <em>NOT</em> focused on measuring the performance of an Agile team for purposes of benchmarking or report-card scoring, although you will get some nice data for this purpose if you follow along.</p>
<blockquote><p>The main purpose of Agile by the Numbers is to put a small number of key sensors in place, to create information for the Agile team to see where they are headed and where they can focus to improve their success.</p></blockquote>
<p>I prefer the term &#8220;sensor&#8221; to &#8220;metric&#8221; because I believe that the purpose of any measurement is to improve a team&#8217;s ability to sense and respond to issues affecting their success.  Metrics, on the other hand, tend to be more management-focused and frequently do not deliver this type of value at the team level.</p>
<p>Each of the sensors I will be discussing in this series tie back to one of two things: enabling a team to produce finished software faster (measured by Team Velocity) and increasing the business impact, or value, of the software delivered (Business Value).</p>
<p>If a measurement does not impact either of these, then I would have a hard time explaining why it is meaningful to the team. Let me say that again: if you are collecting data that does not show your team how to increase their velocity or value production, then you should ask yourself who it is for, and whether it helps you create an observable, meaningful result.</p>
<p>Each article in this series will focus on one aspect of Agile team success: what to measure, why to measure it, and how to ensure the team is drawing the right conclusions from what you see.</p>
<p>We&#8217;ll start with a brief definition of success:</p>
<p><em>The success of an Agile team is primarily determined by:</em></p>
<li> The team&#8217;s ability to plan and complete a set of stories within a sprint, have the work accepted by the business owner, technical reviewer(s) and have zero defects carried over in to the next sprint.</li>
<li> Agile teams that focus on this definition can accelerate their ability to deliver business-valued software by 100% or more of their initial velocity, while working at a steady, sustainable pace.</li>
<p>In my professional work I have witnessed dozens of teams achieve and maintain this goal and while it can take some teams months to get there, once it happens these high-performance agile teams make the whole thing look easy.</p>
<p>High performance agile teams avoid lengthy meetings,  spend their lunch hours playing ping pong or shooting basketballs at a wall, and are able to spend their evenings and weekends with their families, and their days working at sustainable pace that continues to accelerate sprint after sprint.</p>
<p><strong>Using the techniques described in this article series, your team can too!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2009/08/24/welcome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile velocity</title>
		<link>http://scrum-masters.com/blog/2009/08/23/team-velocity/</link>
		<comments>http://scrum-masters.com/blog/2009/08/23/team-velocity/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 02:26:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile by the Numbers]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile manifesto]]></category>
		<category><![CDATA[agile manifesto agile team]]></category>
		<category><![CDATA[agile metric]]></category>
		<category><![CDATA[agile team]]></category>
		<category><![CDATA[agile velocity]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[project metrics]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[team velocity]]></category>

		<guid isPermaLink="false">http://www.scrum-masters.com/?p=1972</guid>
		<description><![CDATA[
Velocity is the primary measure of the performance of an Agile team.
The Agile manifesto values &#8220;Finished Software&#8221; as the primary deliverable of a team, and team velocity is an agile metric that measures that directly.
Measuring Team Velocity:
The previous article defines Agile success as:
The team&#8217;s ability to plan and complete a set of stories within a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-2029" title="speedometer" src="http://209.197.92.211/wp-content/uploads/2009/08/speedometer.jpg" alt="speedometer" width="662" height="217" /><br />
<strong>Velocity is the primary measure of the performance of an Agile team.</strong></p>
<p>The Agile manifesto values &#8220;<em>Finished Software</em>&#8221; as the primary deliverable of a team, and team velocity is an agile metric that measures that directly.</p>
<p>Measuring Team Velocity:</p>
<li>The previous article defines Agile success as:</li>
<li>The team&#8217;s ability to plan and complete a set of stories within a sprint, have the work accepted by the business owner, technical reviewer(s) and have zero defects carried over in to the next sprint.</li>
<p>Velocity measures a team&#8217;s capacity to do this, by counting Story Points of the stories that are accepted during each sprint. Over time, as a team gets more productive, the team is able to design, code, test and accept more Story Points in a sprint and the Team Velocity rises.</p>
<p>Sound easy to measure? Surprisingly, no! It turns out there are a number of pitfalls waiting to trap the unwary team, giving rise to false or distorted velocity. This shows up as early success, but the team will hit a wall at full speed later in the release! The aftermath of this collision with reality can be pretty ugly, with missed release dates, a stressed-out team and lasting quality problems.</p>
<p>The next 3 posts in this series will address the most common mistakes an agile team can make with agile velocity, and offer suggestions on how to avoid the ugly consequences.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2009/08/23/team-velocity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why is my team slowing down?</title>
		<link>http://scrum-masters.com/blog/2009/08/19/why-is-my-team-slowing-down/</link>
		<comments>http://scrum-masters.com/blog/2009/08/19/why-is-my-team-slowing-down/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 02:27:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile by the Numbers]]></category>

		<guid isPermaLink="false">http://www.scrum-masters.com/?p=1975</guid>
		<description><![CDATA[Why is my team slowing down? What&#8217;s happening?
The worst thing any project team can do is to raise expectations through early success, but be unable to sustain the pace. This happens to many Agile teams due to some simple mistakes made in tracking Team Velocity. As a result of these painful misses, some organizations are [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-2033" title="slowingdown" src="http://209.197.92.211/wp-content/uploads/2009/08/slowingdown.jpg" alt="slowingdown" width="330" height="209" /><strong>Why is my team slowing down? <em>What&#8217;s happening</em>?</strong></p>
<p>The worst thing any project team can do is to raise expectations through early success, but be unable to sustain the pace. This happens to many Agile teams due to some simple mistakes made in tracking Team Velocity. As a result of these painful misses, some organizations are getting a bad taste for Agile, and are once again looking to the next big idea to get the performance they want.</p>
<p>Let&#8217;s look at the formula for velocity: Velocity = Story Points Accepted/1 sprint</p>
<p><strong>Pitfall #1: Story Points Accepted.</strong></p>
<p>The way a team determines whether a User Story is accepted is important. If a team does not have a strong Definition of Done it is likely to inadvertently count stories as Accepted (and therefore part of velocity) when in fact they may still need work such as complying with code standards, including logging &amp; exception handling, fixing defects or even handling minor requirements that fell off the table during the sprint.</p>
<p><code>Over time, this debt builds up and dealing with it will cause an unexplained loss of velocity.</code></p>
<p>The Definition of Done is owned by the team, and varies between teams. An example of a strong Definition of Done is:</p>
<li>Code is written &amp; unit tested</li>
<li>Code has passed technical walk-through/review</li>
<li>Product Owner has received an informal demo</li>
<li>Test plan has been fully executed and all defects have been fixed</li>
<li>Technical documentation (if any) has been written</li>
<li>Code has been integrated with continuous build scripts, along with all DML, DDL, web service registration and other environment configuration elements.</li>
<p>If a team does not maintain and adhere to a strong <strong>Definition of Done</strong> then Team Velocity really doesn&#8217;t measure work that is truly finished, and is not useful as a gauge of success.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2009/08/19/why-is-my-team-slowing-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome to Agile People Patterns</title>
		<link>http://scrum-masters.com/blog/2009/09/12/welcome-to-agile-adoption-patterns/</link>
		<comments>http://scrum-masters.com/blog/2009/09/12/welcome-to-agile-adoption-patterns/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 03:49:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile People Patterns]]></category>

		<guid isPermaLink="false">http://209.197.92.211/?p=2069</guid>
		<description><![CDATA[In this series of posts, I will discuss common (and not so-common) problems faced by teams and their leadership trying to adopt Agile practices.
Adopting Agile is a lot harder than practicing Agile! If you have had the privilege of observing a mature Scrum team, you can see how effortlessly individuals come together so that the [...]]]></description>
			<content:encoded><![CDATA[<p>In this series of posts, I will discuss common (and not so-common) problems faced by teams and their leadership trying to adopt Agile practices.</p>
<p><strong>Adopting Agile is a lot harder than practicing Agile! </strong>If you have had the privilege of observing a mature Scrum team, you can see how effortlessly individuals come together so that the team rapidly delivers value. Work flows smoothly, with components being developed, dependencies resolved, designs agreed on and frequent deployments occurring with a only brief ad-hoc conversations needed to coordinate between team members.</p>
<p>The history of Agile adoption has followed a frustrating cycle. Leading-edge companies enthusiastically embrace the latest methodology and create early success stores. These in turn prompt more mainstream companies to jump on board, with various levels of success. As the interest in Agile broadens in scope, Agile projects multiply. Inevitably, these projects begin to encounter issues with culture, governance, organizational structure, and management values. Compromises are made, and the results suffer. The industry begins to gradually back off its initial enthusiasm, and people start looking for the next, greatest Agile method; one which promises to deliver the same or better results without the same problems.</p>
<p><em>And so it repeats </em>&#8230; with Evo, Spiral Development, Crystal, XP, Agile UP, and now Scrum and Kanban. These are all fine methodologies, and each offers useful innovations that improve on predecessors. Ultimately it is the same set of adoption barriers that causes these initiatives to lose steam, not the merits of each methodology or the skills of the practitioners.</p>
<blockquote><p>
Why is it so much harder to adopt than practice Agile? </p></blockquote>
<p>We&#8217;ll explore the answer in this series, but the short version is that there are many organizational, cultural and behavioral barriers present in every company; patterns that have been established and reinforced for many years.</p>
<p><strong>Resistance</strong><br />
Agile performance comes primarily from a shift in behaviors at the individual, team and leadership levels. These in turn require a shift toward new values, some of which run counter to the values ingrained in most teams by decades of traditional management. This creates resistance, and unless you deal with the underlying values, you will get at best a superficial shift in behaviors.</p>
<p><strong>Structure</strong><br />
Organizational structure also poses barriers to adopting Agile. Structures that have been optimized to support traditional management methods can really throw a wrench into an Agile team&#8217;s efforts to deliver quickly and frequently or bring disparate roles together into efficient co-located teams.</p>
<p>These barriers tend to show up in common patterns, reflecting the similar management  philosophies and organizational structures that have existed for many years across industries.</p>
<p>This series of posts will focus on these Agile adoption patterns, and discuss solutions and techniques for navigating the barriers they pose.  My aim is to enable Agile practitioners to recognize these more quickly, and respond more effectively to smooth the Agile adoption process.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2009/09/12/welcome-to-agile-adoption-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile performance: it&#8217;s about more than skills!</title>
		<link>http://scrum-masters.com/blog/2009/09/12/agile-performance-its-about-more-than-skills/</link>
		<comments>http://scrum-masters.com/blog/2009/09/12/agile-performance-its-about-more-than-skills/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 03:49:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile People Patterns]]></category>

		<guid isPermaLink="false">http://209.197.92.211/?p=2071</guid>
		<description><![CDATA[What makes a successful Agile team member? 
I&#8217;ve been asked this question numerous times by people assembling a Scrum or XP team, so I thought I would blog about it.  Simply put, attitude is everything.
Sure, you need to be competent at the right technical skills, but I will take 1 person with the right [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What makes a successful Agile team member? </strong></p>
<p>I&#8217;ve been asked this question numerous times by people assembling a Scrum or XP team, so I thought I would blog about it.  Simply put, attitude is everything.</p>
<p>Sure, you need to be competent at the right technical skills, but I will take 1 person with the right attitude and acceptable skills over 3 technical experts who do not exhibit the right attitudinal traits, every time. And I&#8217;ll get more value out of the average guy with the <em>right attitude</em> than I would out of the experts. In fact, I&#8217;d put money down that by the end of my project the so-called average guy will be performing at an expert level.</p>
<p>Agile methods value &#8220;People over process&#8221; and rely on people to come together as a team, self-organize, and be focused on the group result rather than their own individual skills to determine their success.</p>
<blockquote><p>But what does this mean? And how do I find people with the right attitude?</p></blockquote>
<p>To get a more specific answer, I&#8217;ve broken down the 4 major traits I have seen lead to high performance on agile teams:<br />
<strong>Sense of Urgency</strong></p>
<li> We want a sense of urgency about getting meaningful work done. This is different from the deadline-driven high-stress mindset that we see all over the place; this arises from a genuine passion for building good software that solves business problems. Such a person will be impatient with spending a day planning out work; he will want to dive in, do enough analysis &amp; design to make sure the concept is thought through, then focus on getting tests to pass while writing flexible, quality code. She will always be looking for ways to work more efficiently, and very likely introduce new tools and practices to the team.</li>
<p><strong>Commitment to team results</strong></p>
<li>One of the great things about Agile methods is that they shift attention from an individual&#8217;s work to the results of the team. Just like a good basketball team is focused on the team&#8217;s score and frowns on the glory-hound individual who hogs the ball or plays out of position, a Scrum team member is focused on makings sure he provides what the team needs to succeed, when the team needs it.Of course there is recognition and respect to be gained, but it comes from team members not management, and is earned based on contributions, not gained through achieving artificial objectives.<br />
This is true because the Agile feedback mechanisms such as velocity focus on the team&#8217;s ability to produce working software, rather than an individual&#8217;s ability to perform tasks. Both the team and the individual soon learn to value contributions that enhance the team&#8217;s success.</li>
<p><strong>Transparency</strong></p>
<li>A key stumbling block for Agile teams is the unwillingness of members to expose what they do not know, are struggling with, or do not like about the process or work. Instead of seeking help, individuals will tend to ignore problems, paper over roadblocks and try to work through issues by themselves before someone else notices.This reluctance to be vulnerable is understandable, and it stems from a lack of trust in either management or other team members. As leaders, we need to encourage people to ask for help, surface roadblocks, and give public recognition for those brave enough to do so. At the same time, we need to call attention to the time wasted and impact on the team when individuals sit on or ignore problems.  The visibility Scrum brings to results makes it easy to spot situations where this is occurring and provides clear examples that can be used to shift the behavior of the team.</li>
<p><strong>Willingness to take risks</strong></p>
<li>Most people in our society have learned to fear making mistakes. Everywhere from our schools to our homes to our workplaces, we have experienced that mistakes have negative consequences and that playing it safe is the best strategy to achieve stable success in the eyes of others.In an Agile team, this mentality quickly slows the team down. In order to avoid mistakes, people find themselves over-analyzing and over-planning their work. Work expands to fill the time allotted, and technical decisions that could quickly be tested are delayed.To overcome this, we need to invest substantial effort in ensuring that the team environment is one in which it is safe to make mistakes and learn from them. As leaders, we must reward people for acting on limited information, taking their best shot, and then correcting based on what occurs. This does not mean we need to encourage sloppiness or lack of discipline; on the contrary we need to empower our team members to act on their own initiative then share their learnings with the team. This empowerment is critical to forming a team that harnesses the talents and energies of all members. Such a team will quickly establish a culture of initiative, creativity and high performance.</li>
<p><strong>It&#8217;s about the Team, not the individual</strong></p>
<li>Taken together, the above traits combine to enable individuals to come together as high-performance teams producing a large volume of defect-free code without incident. This is the culture and behavior of a successful scrum team, and I have seen team after team achieve this after several months of adjustment to the concept that it is team results, not individual performance that creates success.The trouble is, traditional management practices tend to breed the opposite behaviors. We are an individualistic culture and while we give lip service to the concept of a team, most software development management practices focus on the individual&#8217;s performance and contribution to the project.  After a few years of professional experience, the average software developer learns to focus on his small piece of a project; set expectations that he can easily achieve, and make sure that management sees the intrinsic value he brings to a project.If she doesn&#8217;t succeed at this, she will not be rewarded. If she over-extends herself with optimistic commitments for the good of the project and then fails to deliver, she will earn a bad reputation. Success has been measured by her ability to make make and keep commitments, not her ability to achieve brilliant results. If there isn&#8217;t enough time or resource to achieve a specific result, then it is the fault of the manager for not planning properly. A good worker will make a strong effort to deliver anyway, but will make it clear that this is a stretch goal. Some people will seize these moments as an opportunity to save the day, and spotlight their dedication and abilities.The prevailing culture therefore tends to breed a combination of mediocrity in individuals punctuated by individual heroics. The heroics become necessary because of the problems that arise out of the mediocrity; a true high-performance team will not create nearly as many crises to solve.</li>
<p><strong>A recipe for success</strong></p>
<li>Creating a high performance Agile team involves much more than assembling the right technical skills. As we have seen in this article, we need to assess the soft skills and attitudes of the team members and also ensure our plans allow enough time to make any necessary adjustment in the team&#8217;s culture. Establishing the right culture requires experienced leadership, and it usually takes between 1 and 3 months for most teams to begin to demonstrate the level of performance we associate with Scrum teams.</li>
<p><code>&lt;<em>Here's a recipe to help you get started faster:</em></code></p>
<p>1. Build your team around a nucleus of bright individuals with 3-5 years of experience. Make sure they have the right attitude and soft attributes listed above, decent technical skills and that between them they cover the necessary technologies. Don&#8217;t expect everyone to be good at everything right off the bat; expect that the team is going to learn from each other.</p>
<p>2. Carefully add in one or two senior people covering critical technologies. It is very important that these people fit the culture of the team, and don&#8217;t come in with baggage such as insistence on specific practices or development process (unless that process is Agile). If you can&#8217;t find these people but still need the expertise then consider making them adjuncts to the team; consulting resources to review and support the team but not full team members.</p>
<p>3. If you can swing it, add one or two proven Agile superstars who embody all the attributes listed above. These individuals do not a record consisting solely of heroics or fire-fighting, but are the type of people who naturally take full responsibility for both preventing and solving problems. These natural leaders will act as catalyst to the above team, leading to a more rapid formation of the culture of team performance. Including these individuals is a good investment, as you will find that their presence will breed future leaders who can in turn catalyze other teams.</p>
]]></content:encoded>
			<wfw:commentRss>http://scrum-masters.com/blog/2009/09/12/agile-performance-its-about-more-than-skills/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
