<?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>Chris Spagnuolo's EdgeHopper &#187; Agile Practices</title>
	<atom:link href="http://edgehopper.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://edgehopper.com</link>
	<description>Tales from the Edge of Technology</description>
	<lastBuildDate>Wed, 28 Jul 2010 03:57:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Guest Post: Where there&#8217;s people, there&#8217;s problems</title>
		<link>http://edgehopper.com/guest-post-where-theres-people-theres-problems/</link>
		<comments>http://edgehopper.com/guest-post-where-theres-people-theres-problems/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 07:05:39 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>
		<category><![CDATA[Corporate Culture (or not)]]></category>
		<category><![CDATA[Guest Posts]]></category>

		<guid isPermaLink="false">http://edgehopper.com/?p=1346</guid>
		<description><![CDATA[Jurgen Appelo Guest Post by Jurgen Appelo: I once read that &#8220;managing is harder than programming, because making people do what is needed is far more difficult than making computers do what is needed&#8221;. (Don&#8217;t flame me if you don&#8217;t agree. I&#8217;m quoting from an unknown source here.) This quote kept running through my mind [...]]]></description>
			<content:encoded><![CDATA[<div class="floatleft"><img src="http://edgehopper.com/wp-content/uploads/2009/03/picture.jpg" alt="" width="116" height="160" /><br />
Jurgen Appelo</div>
<h3>Guest Post by Jurgen Appelo:</h3>
<p>I once read that &#8220;<strong>managing is harder than programming</strong>, because making people do what is needed is far more difficult than making computers do what is needed&#8221;. (Don&#8217;t flame me if you don&#8217;t agree. I&#8217;m quoting from an unknown source here.)</p>
<p>This quote kept running through my mind when I recently encountered a number of, well&#8230; let&#8217;s call them <strong>disciplinary challenges</strong>, like&#8230;</p>
<ul>
<li><em>Not being at a meeting, without notice, despite having accepted the request,</em></li>
<li><em>Not keeping systems or task boards up-to-date with latest task/story statuses,</em></li>
<li><em>Not linking code or time registration to issues or user story numbers,</em></li>
<li><em>Not actively checking if there&#8217;s overrun on a budget,</em></li>
<li><em>Not responding to a show stopper problem within promised response time,</em></li>
<li><em>Not storing project documents in the shared repository,</em></li>
<li><em>Etc&#8230;</em></li>
</ul>
<p>Is this a case of hanging out the <strong>dirty laundry</strong>? Not really. We&#8217;re all people, employees and managers alike. We&#8217;re not computers, we all make mistakes. If you don&#8217;t have similar problems in your organization then I will assume you&#8217;re working with robots, not with human beings.</p>
<p>Still, they are problems nonetheless. If my computers were this unreliable I would throw them out the window. No, actually I would carry them all the way up to the <a href="http://www.123bedrijfsfeest.nl/locatie-van-nelle-ontwerpfabriek.html" target="_blank">tea room in our office building</a>, and <em>then</em> throw them out the window. But we don&#8217;t do that with employees anymore these days. That&#8217;s because managers have discovered how to be humans themselves, and they can understand the reasons for people&#8217;s non-disciplined behavior, with excuses like: <em>I-Didn&#8217;t-Know-This-Was-A-Rule</em>, <em>Sorry-I-Forgot</em>, <em>There-Was-Too-Much-On-My-Mind</em>, <em>I-Was-Kept-Busy-With-Some-Major-Problem</em>, <em>I-Was-Sick</em>, <em>My-Dog-Was-Sick</em>, <em>My-Dog-Ate-My-Agenda</em>, <em>My-Dog-Ran-Away</em>, and of course <em>My-Dog-Died</em>.</p>
<p>So, we all understand being human. But what to do about the problems?</p>
<p>One solution that people often come up with is that some <strong>supervisor</strong><strong> </strong>should be made responsible to <strong>inspect</strong> everything. This is of course step 1 on <strong>The Road To Bureaucracy</strong>, and it is a direction that <em>agile </em>and <em>lean </em>people fervently argue against. However, other people argue that some of those steps are nevertheless very useful.</p>
<p>For example: <a href="http://www.poppendieck.com/" target="_blank">Mary and Tom Poppendieck</a>, famous for their books on <a href="http://www.amazon.com/gp/product/0321150783?ie=UTF8&amp;tag=noopnl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321150783" target="_blank">Lean Software Development</a>, argue that <a href="http://gojko.net/2007/05/09/the-poka-yoke-principle-and-how-to-write-better-software/" target="_blank">inspection to find defects is waste</a>, and they call for <strong>zero-inspection</strong>. They claim that resources should be spent on <em>preventing </em>problems instead of <em>fixing </em>them, because it&#8217;s cheaper.</p>
<p>On the other hand: <a href="http://www.gilb.com/" target="_blank">Tom and Kai Gilb</a>, famous for their work on <a href="http://www.amazon.com/gp/product/0201631814?ie=UTF8&amp;tag=noopnl-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0201631814" target="_blank">Software Inspection</a> (among other things), teach people how to inspect documents to <a href="http://www.gilb.com/Inspection" target="_blank">find and measure defects</a>. They even have <strong>certificates for inspection</strong>, like Inspection Leaders and Inspection Process Owners!</p>
<p><em>What&#8217;s going on here?</em></p>
<p>Can these different viewpoints be aligned? <em>Can I earn myself a certificate for doing zero inspections?</em> Or do we have a chance of witnessing <strong>a clash between</strong> <strong>the two most celebrated family duos in software development</strong>? An epic battle between father and son Gilb against husband and wife Poppendieck?</p>
<p>Well, I admit that would be a sight to see, but my guess is that their viewpoints are simply two sides of one and the same coin. Yes, preventing problems is cheaper than fixing problems, but only for 95% of the problems. In fact, it has been noted before that <a href="http://www.shmula.com/376/zero-defects-is-wrong-approach" target="_blank">zero defects is the wrong approach</a>, because <strong>preventing those last few problems is far too expensive</strong>. Which means that we have to allow <em>some </em>problems to flow to the next phase in the process, where detecting and fixing them can be cheaper. I discussed the staged approach to discipline in <a href="http://www.noop.nl/2009/01/how-to-make-people-behave-6-levels-of-disciplinary-action.html" target="_blank">one of my earlier articles</a>:</p>
<ol>
<li>People have to show a high level of self-discipline;</li>
<li>They have a coach to help them in becoming more disciplined;</li>
<li>Their discipline must be subjected to peer pressure;</li>
<li>There should be tools to assist in mistake-proofing the process;</li>
<li>Last of all, there might be some supervisor doing regular inspections;</li>
<li>And if everything fails, the dirt will land on the manager&#8217;s desk.</li>
</ol>
<p>It is almost always cheaper to solve problems higher up in this stack. Supervising and inspecting is the final gate where problems can be detected and prevented from ending up at the manager&#8217;s desk, or worse&#8230; the customer&#8217;s desk. Fewer inspections are better. But <strong>zero-inspection is like full code coverage</strong>. It is a <em>lofty goal </em>that, in practice, is unattainable because of its exponential costs. There will always be some work left for some supervisor to inspect, certified or not.</p>
<p>So, in solving the problems I mentioned earlier, before giving work to a supervisor, I will try and make sure that I have done all I can to prevent needing him in the first place!</p>
<p><em>And of course, the principles of discipline apply to my own work as a blog writer as well&#8230; juicy title: check&#8230; teasing opening paragraph: check&#8230; re-reading ten times: check&#8230; silly jokes: check&#8230; spell-checking: check&#8230; hyperlinks and mark-up: check&#8230; great pictures: check&#8230; making fun of celebrities: check&#8230; conclusion: check&#8230; OK, ready for the next phase&#8230; Chris, will you inspect this post please?</em></p>
<h3>About Jurgen Appelo</h3>
<p>Jurgen is the Chief Information Officer at <a href="http://www.ism.nl/pages/pageobjectpage/S2/mainportal.aspx">ISM eCompany</a>, rated (a while ago) as the #1 fastest growing technology company in The Netherlands. As a manager, he leads a horde of 100 software developers, development managers, project managers, business consultants, quality managers, service managers and kangaroos, some of which he hired accidentally.  He also write a blog called <a href="http://www.noop.nl">NOOP.NL: A Guide to Development, Management, Things &amp; Stuff</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/guest-post-where-theres-people-theres-problems/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Conformity, innovation, and progress</title>
		<link>http://edgehopper.com/conformity-innovation-and-progress/</link>
		<comments>http://edgehopper.com/conformity-innovation-and-progress/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 12:00:57 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>
		<category><![CDATA[Corporate Culture (or not)]]></category>

		<guid isPermaLink="false">http://edgehopper.com/conformity-innovation-and-progress/</guid>
		<description><![CDATA[In the 1950&#8242;s, Solomon Asch, conducted a series of experiments designed to understand the phenomenon we know as conformity. In his experiments, a group of participants were seated around a table and asked to examine a series of vertical lines. They were then asked to tell the group which vertical line, A, B, or C, [...]]]></description>
			<content:encoded><![CDATA[<p>In the 1950&#8242;s, <a href="http://en.wikipedia.org/wiki/Solomon_Asch">Solomon Asch</a>, conducted a series of experiments designed to understand the phenomenon we know as conformity. In his experiments, a group of participants were seated around a table and asked to examine a series of vertical lines. They were then asked to tell the group which vertical line, A, B, or C, matched the test line. The vertical line series looked very similar to these:</p>
<p><img src="http://edgehopper.com/wp-content/uploads/2008/12/asch-lines.jpg" width="270" height="221" alt="Asch_lines.jpg" /></p>
<p>The catch was that all of the participants except one were confederates of Dr. Asch. The confederates gave the correct answer for the first few trials, but then all began to give the incorrect answer in subsequent trials. Amazingly, the test subject began giving the same incorrect answers as the confederates. In fact, overall, after 18 trials, 36.8% of the answers given by the ‘real&#8217; participants were incorrect, effectively conforming to the wrong answers given by the unanimous confederates. Only 25% never gave a false answer, therefore showing that 75% conformed at least once. The results show a surprisingly strong tendency to conform under group pressure, even in cases when the answer is clear.</p>
<p><strong>How does this inform us?</strong> When we&#8217;re working on teams, we need to be cognizant of this study. We need to be vigilant against conformity and group steering. It can be extremely detrimental to continuous improvement. If one person on a team has an opinion that is different from every other team member, this tendency towards conformity may have a chilling effect on their ability to communicate a problem with the team. This applies to estimating as well. If teams estimate in an open manner, differing opinions can potentially be quashed. That&#8217;s why I believe <a href="http://www.planningpoker.com/detail.html">planning poker</a> is such an effective method for estimating with teams.</p>
<p><strong>But, there is hope</strong>. Asch was very disturbed by the results of his experiment. He said, &#8220;That we have found the tendency to conformity in our society so strong&#8230; is a matter of concern. It raises questions about our ways of education and about the values that guide our conduct.&#8221; Some time later, Asch conducted his experiments again. This time, when every one of the confederates voted for the wrong answer, one stood up and said &#8220;That&#8217;s wrong!&#8221;. The test subject then easily identified the correct answer. Adding one supporting partner greatly diminished the power of the majority. Hope!</p>
<p>One voice of dissent enabled another to be heard. Is that all it takes on our teams, in our society to make a difference? One voice to say &#8220;That&#8217;s wrong&#8221;? I believe so. But I also believe that on a deeper level, we need to create environments on our teams, in our organizations, and in our society where people do not have to feel pressured to conform. People should be able to think freely and express their views without being hindered by the majority rule. This freedom to disagree is where all progress, creativity, and innovation comes from. I love the fact that the results show that the 25% of subjects who never gave wrong answers were not susceptible to conformity. That makes me very happy. There is hope that not everyone around us is likely to conform to the majority opinion.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/conformity-innovation-and-progress/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Mid-week Iterations</title>
		<link>http://edgehopper.com/mid-week-iterations/</link>
		<comments>http://edgehopper.com/mid-week-iterations/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 16:57:46 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://edgehopper.com/mid-week-iterations/</guid>
		<description><![CDATA[A question I field frequently is &#8220;When should we start and end our iterations?&#8221; For a long time, I worked on teams that started our iterations on Monday and ended them two weeks later on Friday. We did our planning meetings on Mondays, and our review, demo and retrospectives on Fridays. But, the more I [...]]]></description>
			<content:encoded><![CDATA[<p>A question I field frequently is &#8220;When should we start and end our iterations?&#8221; For a long time, I worked on teams that started our iterations on Monday and ended them two weeks later on Friday. We did our planning meetings on Mondays, and our review, demo and retrospectives on Fridays. But, the more I think about it, the more I&#8217;m now inclined to answer that the best iteration start and end dates are midweek.</p>
<p>I would suggest that you start your iterations on Tuesdays or Wednesdays and end them on Wednesdays or Thursdays. The logic behind this is simple. Think about it: Monday morning, folks roll in from the weekend and are kind of groggy. They&#8217;re not 100% focused. Is this really the best time to be thinking about planning your next iteration? The planning meeting is the place for robust, intelligent conversations to happen when nailing down the details and tasking a user story. If your team is half asleep, or still getting over the weekend, this is probably not the optimal day for planning. By Tuesday or Wednesday, the team is awake and engaged, ready to think. This is probably closer to optimal for planning sessions.</p>
<p>On the flip side, the end of an iteration doesn&#8217;t fare very well on Fridays. First, if you have team members getting an early start on the weekend, you&#8217;re missing people for your reviews, demos and retrospectives. Not ideal. And, if you&#8217;re missing your product owner or stakeholders for your demo, definitely not ideal. But beyond that, Fridays usually present us with another case of lack-of-focus. You and your team could probably muddle through your review and demo even if you&#8217;re distracted by the impending weekend plans or tired from a long week of work. But for your retrospective, you not only want your team present physically, but mentally as well. <a href="http://edgehopper.com/retrospectives-you-live-you-learn/">The retrospective</a> is possibly one of the key practices for success in agile development. A team needs to be sharp to really consider what went right during an iteration, what went wrong, and most importantly, what they need to do to improve their practices in the future. If there is a lack of focus during the retrospective, your team could be missing out on some of the best benefits agile has to offer. So, to keep things focused, I would recommend ending your iterations on either Wednesdays or Thursdays. And try to schedule the review/demo/retrospective early in the day as opposed to later in the afternoon. Not only will this help keep folks focused, it&#8217;ll also cut down on last minute coding/fixing before the demo.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/mid-week-iterations/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>QA and Testing in an Agile Environment</title>
		<link>http://edgehopper.com/qatesting-in-an-agile-environment/</link>
		<comments>http://edgehopper.com/qatesting-in-an-agile-environment/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 12:00:15 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>
		<category><![CDATA[Quality and Your Customers]]></category>

		<guid isPermaLink="false">http://edgehopper.com/qatesting-in-an-agile-environment/</guid>
		<description><![CDATA[In the past few weeks I&#8217;ve been asked about and have been considering exactly how to fit QA and testing into a two week iteration. A primary concern of the folks I&#8217;ve been talking with is that QA&#8217;s and testers on an agile team have nothing to do at the start of an iteration. The [...]]]></description>
			<content:encoded><![CDATA[<p>In the past few weeks I&#8217;ve been asked about and have been considering exactly how to fit QA and testing into a two week iteration. A primary concern of the folks I&#8217;ve been talking with is that QA&#8217;s and testers on an agile team have nothing to do at the start of an iteration. The second concern is that we can&#8217;t keep writing new code up until the last minute of an iteration if QA is to adequately test the code, and as such, what do the developers do at the end of the iteration. Of course, the underlying concern in both of these cases is keeping the QA&#8217;s and the devlopers <a href="http://edgehopper.com/effectiveness-vs-efficiency/">effectively utilized</a> during an iteration. <a href="http://edgehopper.com/are-cios-indifferent-towards-quality-software/">Software quality</a> always seems to boil down to a utilization/cost equation doesn&#8217;t it? Well, after giving it some thought, I think I&#8217;ve come with a basic schedule for QA&#8217;s and developers over a two week iteration. Here&#8217;s the plan:</p>
<p><img src="http://edgehopper.com/wp-content/uploads/2008/11/slide1.jpg" alt="Slide1.jpg" width="500" height="271" /></p>
<p>So, let&#8217;s take a walk through the schedule. On the first two days of the iteration, the developers get busy coding the stories in their backlog while the QA&#8217;s start writing test cases/acceptance tests. The QA&#8217;s should also be running these tests against the existing code base. This validates that the test harness is working correctly and that the new tests do not mistakenly pass without requiring any new code. Obviously, the new tests should also fail for the expected reason. This tests the tests themselves, in the negative: it rules out the possibility that the new tests will always pass, and therefore be worthless. OK, so that&#8217;s day one and two.</p>
<p>Over the next five days, the QA&#8217;s begin testing any testable code that has been completed. At the same time, the developers continue coding and also start working on fixing any defects picked up in the testing. Pretty standard days. Code-test-fix.</p>
<p>OK, we&#8217;re deep into the iteration now. Days eight and nine see QA continuing to test all of the remaining code written during the iteration. Yes, <strong>ALL</strong> of the remaining code. At this point, the developers effectively stop writing &#8220;new&#8221; code and focus their energy on fixing all defects identified in testing. If the dev team has no defect work or find themselves with down-time while waiting for testing results, they can and should be helping the product owner develop and refine the user stories that are likely to be played in the next iteration. Additionally, developers can start considering the <a href="http://edgehopper.com/architecture-in-an-agile-project/">design aspects</a> of the immediate upcoming stories and coordinating design decisions with the <a href="http://edgehopper.com/architecture-in-an-agile-project/">project architect</a>.</p>
<p>Last day! Don&#8217;t start scrambling now, you&#8217;ve got a demo and review later today. So, on Friday, the developers focus on bashing any remaining defects and making the code bombproof. We&#8217;re shooting for zero defects here folks. The QA&#8217;s are spending most of their time doing some final acceptance testing (as is the product owner). That&#8217;s it. It&#8217;s noon and it&#8217;s time for your review and demo. You&#8217;ve tested and fixed everything so you and your team can demo with total confidence. No surprises for your team, you&#8217;ve built serious quality into your software!</p>
<p>So, there&#8217;s my idea for a basic schedule that completely integrates QA and testing into your iteration. Now, this is only one way I think QA can be integrated into an iteration. There are probably dozens of other ways to do this and I think ultimately, the way teams work QA into their iterations really needs to be assessed on a case-by-case basis. So, I&#8217;d like to pose the question to agile teams out there: How do you currently fit QA/testing into your iterations?</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/qatesting-in-an-agile-environment/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>The Garage-Sale Principle</title>
		<link>http://edgehopper.com/the-garage-sale-principle/</link>
		<comments>http://edgehopper.com/the-garage-sale-principle/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 11:00:14 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://edgehopper.com/the-garage-sale-principle/</guid>
		<description><![CDATA[Take a minute and think about your current backlog. Close your eyes and get a good mental picture of it. OK, got an image? Now open your eyes. Does it look something like this cluttered garage? Or, maybe you think it&#8217;s a little more organized and looks like this garage: Either way, all of your [...]]]></description>
			<content:encoded><![CDATA[<p>Take a minute and think about your current backlog. Close your eyes and get a good mental picture of it. OK, got an image? Now open your eyes. Does it look something like this cluttered garage?</p>
<p><img src="http://edgehopper.com/wp-content/uploads/2008/11/200811022153.jpg" alt="200811022153.jpg" width="480" height="360" /></p>
<p>Or, maybe you think it&#8217;s a little more organized and looks like this garage:</p>
<p><img src="http://edgehopper.com/wp-content/uploads/2008/11/2008110221531.jpg" alt="200811022153.jpg" width="480" height="360" /></p>
<p>Either way, all of your stuff, your requirements, your backlog items are stuffed away and it&#8217;s probably hard to figure out what you&#8217;ve actually got. You and your team probably spent a good amount of time in a planning session writing as many user stories as you could think of. And, that&#8217;s not a bad thing to do during the initial brainstorming sessions when you&#8217;re stocking your high level backlog. But, at this point, you haven&#8217;t pared it down to stories that fit the overall vision and roadmap for your product yet. The backlog at this point is cluttered. Because it&#8217;s so cluttered (or put into neat little boxes or files or binders), it&#8217;s really difficult to make connections between the stories. It&#8217;s hard to see the big picture. So, what do you do now?</p>
<p>Well, <a href="http://www.digitalroam.typepad.com/">Dan Roam</a>, author of <a href="http://www.amazon.com/Back-Napkin-Solving-Problems-Pictures/dp/1591841992/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1225690970&amp;sr=8-1">The Back of the Napkin</a> has a good solution. Have a garage sale. Well, sort of. Dan talks about the Garage-Sale Principle. He says:</p>
<blockquote><p>&#8220;Regardless of how well organized all the stuff in the garage may be, laying everything out on the tables in the light of day yields a completely new perspective on it all.&#8221;</p></blockquote>
<p>So, how can we do this with our backlog and our user stories? First, get all of your stories written on cards or really big sticky notes (preferably during your initial planning session). Now, get a conference room and stick all of those stories on the walls. Plaster the place with them . Next, let everyone on the delivery team, all of the stakeholders, the product owner&#8230;everyone&#8230;take a walk through the conference room. Leave the stories up for a day or two. Let people really get a good look at every story. Give the team a place to air their comments about the stories. And then, start performing story triage.</p>
<p>Start by grouping the stories based on two or more of the 6 W&#8217;s: Who, What, Where, When, Why, and (W)How. And I mean literally group them on the walls. Move the stories around. Let everyone move the stories to the groups they think they belong in. Got them grouped? Good. Now, go through the groups and the stories and start moving any stories (or entire groups) that don&#8217;t adhere to the product vision or roadmap into a parking lot area somewhere in the room (but don&#8217;t throw them away!). Be tough and cut any stories that don&#8217;t advance the product vision. By now, you should have user stories that are grouped by common themes <em>and</em> that are completely focused on achieving the product vision. You&#8217;ve cleaned your cluttered garage and now you can clearly see the value of all of the items that were in there. Now you&#8217;re ready to start moving stories into your backlog and get to work building focused, valuable software. And, because your team and product owner spent a little time living with their user stories, <a href="http://edgehopper.com/how-do-you-know-what-to-build/">prioritizing</a> and <a href="http://www.planningpoker.com/detail.html">sizing the stories</a> in the uncluttered backlog should be easier too.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/the-garage-sale-principle/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Know Your Users</title>
		<link>http://edgehopper.com/know-your-users/</link>
		<comments>http://edgehopper.com/know-your-users/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 11:00:21 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://edgehopper.com/know-your-users/</guid>
		<description><![CDATA[In agile software development, we create user stories as a way to communicate the requirements of our users in an easy to understand format. Usually, they take the following form: &#8220;As a &#60;user type&#62;, I want to &#60;function&#62; so that I can &#60;business value&#62;.&#8221; An example of a real user story looks like this: &#8220;As [...]]]></description>
			<content:encoded><![CDATA[<p>In agile software development, we create user stories as a way to communicate the requirements of our users in an easy to understand format. Usually, they take the following form:</p>
<blockquote><p>&#8220;As a &lt;<strong><em>user type</em></strong>&gt;, I want to &lt;<strong><em>function</em></strong>&gt; so that I can &lt;<strong><em>business value</em></strong>&gt;.&#8221;</p></blockquote>
<p>An example of a real user story looks like this:</p>
<blockquote><p>&#8220;As a frequent traveler, I want to rebook a past trip so that I can save time booking trips.&#8221;</p></blockquote>
<p>Good. Now we have <a href="http://edgehopper.com/get-smart-storyotypes-in-your-backlog/">a simple story</a> to put into our backlog. But what I&#8217;m curious about is, just who are these user types&#8230;these frequent travelers? We often give them generic names like product owner, frequent traveler, end user, customer, or just the user. There&#8217;s no meat on the bones of these generic user types. They have no personality. I firmly believe that as developers we need to focus intensely on our users and what they want if we want to create remarkable software and products. So if we focus so intently on our users in our marketing efforts and in our sales cycles, why do we make them an amorphous lump in our user stories? Why don&#8217;t we know more about them? Ultimately, we&#8217;re developing software for them. Shouldn&#8217;t we know them a little better?</p>
<p>Well, here&#8217;s a suggestion: Stop using generic user types and use personas instead. Give your users some life. Real lives. Consider creating an actor table to define the personas of each user type. It will connect you more with your end users and really help your delivery team focus on developing software that doesn&#8217;t speak to the generic masses. Here&#8217;s an example of an actor table for one user persona:</p>
<p><img src="http://edgehopper.com/wp-content/uploads/2008/10/slide12.jpg" alt="Slide1.jpg" width="480" height="259" /></p>
<p>If you create a persona for each one of your user types and start using their names in your user stories, you&#8217;ll start feeling more connected to your users. They won&#8217;t be a generic mass out there anymore. You&#8217;ll be developing software for <em>somebody</em>. You&#8217;ll start caring about what you develop and in the end this will improve your software and ultimately improve the satisfaction of your frequent traveler user type&#8230;or let&#8217;s just call him Jeff.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/know-your-users/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Get Smart: Storyotypes in your backlog</title>
		<link>http://edgehopper.com/get-smart-storyotypes-in-your-backlog/</link>
		<comments>http://edgehopper.com/get-smart-storyotypes-in-your-backlog/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 10:00:30 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://edgehopper.com/get-smart-storyotypes-in-your-backlog/</guid>
		<description><![CDATA[As I&#8217;ve been looking through backlogs from various organizations and teams, I&#8217;ve started to notice a trend. Well, less of a trend than finding numerous similarities. The similarities I&#8217;m seeing are in the user stories in the backlogs. Many of the backlogs I&#8217;ve seen have user stories that say something like &#8220;Get smart on the [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:left; margin-right:5px; margin-bottom:5px; margin-left:5px;" src="http://edgehopper.com/wp-content/uploads/2008/10/getsmart-shoephone.jpg" alt="getsmart-shoephone.jpg" width="158" height="187" />As I&#8217;ve been looking through <a href="http://edgehopper.com/whats-in-your-backlog/">backlogs</a> from various organizations and teams, I&#8217;ve started to notice a trend. Well, less of a trend than finding numerous similarities. The similarities I&#8217;m seeing are in the user stories in the backlogs. Many of the backlogs I&#8217;ve seen have user stories that say something like &#8220;<em>Get smart on the dojo toolkit</em>&#8221; or &#8220;<em>Find out more about the ASP.NET MVC</em>&#8220;. I call them the &#8220;Get Smart&#8221; stories. The Get Smart stories are stereotyped stories that contain little or no detail. <strong>Storyotypes</strong>. It&#8217;s not that I don&#8217;t believe in stories for research spikes. What I don&#8217;t like is that these stories don&#8217;t follow the simple <a href="http://agilesoftwaredevelopment.com/blog/vaibhav/good-user-story-invest">INVEST</a> rule of user stories. If you&#8217;ve never heard of the I<a href="http://agilesoftwaredevelopment.com/blog/vaibhav/good-user-story-invest">NVEST</a> rule, it basically says that user stories should be:</p>
<ul>
<li>Independent</li>
<li>Negotiable</li>
<li>Valuable</li>
<li>Estimable</li>
<li>Small</li>
<li>Testable</li>
</ul>
<p>Thinking back to the Get Smart stories, I think they are independent and valuable, but they fall short of being negotiable, estimable, sized appropriately, and especially testable. Now, I know that these stories generally are used to define research spikes and therefore are used to give better estimates for other user stories in the backlog. So, I can even let go of estimable, negotiable and small. What I want to focus on is the &#8220;T&#8221;: Testable. If all your story says is &#8220;<em>Get smart on the dojo toolkit</em>&#8220;, how does your team test if you &#8220;<em>Got smart</em>&#8220;? There are no specifics in the story about why your team needs to get smart. What is the reason for the research? As my colleague <a href="http://thesherpaproject.com">Ben Carey</a> has described it, the testable attribute ensures that our acceptance criteria are not ambiguous. To make something testable – we need to make it measurable and specific. And I believe this has to apply to the Get Smart stories as well.</p>
<p>So, instead of &#8220;<em>Get smart on the dojo toolkit</em>&#8220;, try to rewrite the story to maybe say something like &#8220;<em>In order to send complex data between the client and server as json, as a delivery team we want to research the dojo toolkit and the ASP.NET MVC</em>.&#8221; And, if you want to go with the traditional user story format, you could write it as &#8220;<em>As a delivery team, we want to research the dojo toolkit and the ASP.NET MVC so that we could figure out a way to send complex data between the client and server as json</em>&#8220;. These stories are much more testable because they&#8217;re specific and measurable. When the team completes one of these stories, they should be able to describe how to send complex data between the client and server as json using either or both the dojo toolkit and the ASP.NET MVC. In fact, they would probably be able to demo a prototype of the functionality based on the stories. And, because these stories are specific, they prevent the team from <a href="http://edgehopper.com/drift-happens/">wandering</a> through documentation, tutorials, and code samples without any aim or goal. The research in this story is confined only to understanding how to send data as json. Nothing else. So, be specific and avoid storyotypes&#8230;.do that and you and your team will get smart!</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/get-smart-storyotypes-in-your-backlog/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Embracing Change with Agile Practices</title>
		<link>http://edgehopper.com/embracing-change-with-agile-practices/</link>
		<comments>http://edgehopper.com/embracing-change-with-agile-practices/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 15:17:24 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://edgehopper.com/embracing-change-with-agile-practices/</guid>
		<description><![CDATA[Building software is complex. Every time you think have something nailed down, the requirements change. In fact, it reminds me of a quote from Al Gore&#8217;s &#8220;An Inconvenient Truth&#8220;: &#8220;It&#8217;s like beach combing. Every time the tide comes in and out, you find some more shells.&#8221; In software development, every time you show your progress [...]]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment--></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span style="font-family: Helvetica;">Building software is complex. Every time you think have something nailed down, <a href="http://edgehopper.com/against-the-wind/">the requirements change</a>. In fact, it reminds me of a quote from Al Gore&#8217;s &#8220;<a href="http://www.climatecrisis.net/"><span style="color: #0016e7;">An Inconvenient Truth</span></a>&#8220;:</span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span style="font-family: Helvetica;">&#8220;It&#8217;s like beach combing. Every time the tide comes in and out, you find some more shells.&#8221;</span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span style="font-family: Helvetica;">In software development, every time you show your progress to your end users or talk with your stakeholders, you get feedback&#8230;more shells. How can you respond to that feedback, that change? It&#8217;s a question I hear often and in my opinion, agile practices are the answer. But how do you describe agile and it&#8217;s ability to embrace change and complexity to someone who has never heard of agile? I spent many years in the <a href="http://www.gis.com/whatisgis/index.html"><span style="color: #0016e7;">geographic information systems</span></a> industry so my thoughts logically went back to mapping systems for an example of how agile embraces change. Let&#8217;s use the simple example of trying to drive to a meeting destination that you&#8217;ve never been to before. You need some directions.</span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span style="font-family: Helvetica;">Let&#8217;s start with <a href="http://www.mapquest.com/"><span style="color: #0016e7;">MapQuest</span></a>. In MapQuest, you start by entering a starting point and a destination. MapQuest assumes you know where you are starting from and where you are going. MapQuest returns a complete set of step-by-step directions from your origin to your destination. So, you print out your directions, get in your car and start driving, following the stepwise directions. Then, you encounter a problem. The highway is closed due to an unexpected accident. You exit the highway, look at your step-by-step directions from MapQuest and sigh. Now what? You don&#8217;t know where to go because you only have the original step-by-step directions. You&#8217;re in an unfamiliar place. There are no detour signs to guide you. You&#8217;re stuck. You try going one way, but that doesn&#8217;t work. You try another way and that doesn&#8217;t work either. Before you know it, you&#8217;re lost. You&#8217;re late. Your printed directions are no longer useful. You might never get to your destination now. MapQuest is <a href="http://en.wikipedia.org/wiki/Waterfall_model"><span style="color: #0016e7;">waterfall</span></a>. MapQuest is how we traditionally developed software. Have an origin, an end point and a set of step-by-step directions to guide us from origin to destination. It doesn&#8217;t allow feedback into the system. It doesn&#8217;t allow for deviation from the plan.</span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;mso-pagination:none;mso-layout-grid-align: none;text-autospace:none"><span style="font-family: Helvetica;">Next, we try out <a href="http://maps.google.com/"><span style="color: #0016e7;">Google Maps</span></a>. In Google Maps, you do the same thing you did in MapQuest. Enter a starting point and a destination. But Google Maps is a little different. If we know ahead of time that there is a construction project or an accident on the highway, you can dynamically drag the route Google Maps provided and &#8220;draw&#8221; a route that avoids these problem areas. Google Maps reroutes you on the fly and provides you with a revised set of directions. So we print out our &#8220;smarter&#8221; directions, get in our car and start driving. But if we hit any <em>unexpected</em> obstacle, we&#8217;re in the same situation as we were in with our MapQuest directions. Google Maps is a little more agile, but it requires prior knowledge of the problems you might face to avoid getting slowed down or lost on your way to your destination.</span></p>
<p class="MsoNormal"><span style="font-family: Helvetica;">Finally, we get a <a href="http://www.garmin.com/garmin/cms/site/us/ontheroad/"><span style="color: #0016e7;">GPS unit</span></a> in our car. We get into our car without any printed directions. We turn on the GPS and all it asks is &#8220;<strong>Where to?</strong>&#8220;. It already knows where we are; it just needs to know where we&#8217;re going. The GPS unit maps out the shortest path from our current location to our destination. It presents us with a general overview map of the route, but provides us with detailed directions only as we need them. It only gives us enough information to make the next turn. It doesn&#8217;t present us with complete step-by-step directions. And, the GPS constantly inspects our current position in relation to our destination. If we encounter obstacles on our way and need to deviate from the route, it adapts the route on the fly and provides us with new directions to reach our destination. And maybe while we&#8217;re on the highway, our client calls and tells us they changed the location of our meeting entirely. Our destination has changed. So, in mid-course, we can tell the GPS unit our new destination. Without hesitation, it provides a new set of directions to our new destination. GPS allows feedback into the system and it adjusts course based on this feedback. GPS is dynamic. GPS doesn&#8217;t mind if you find some new shells. <strong>GPS is agile</strong>.</span></p>
<p><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/embracing-change-with-agile-practices/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>I Can Live with That</title>
		<link>http://edgehopper.com/i-can-live-with-that/</link>
		<comments>http://edgehopper.com/i-can-live-with-that/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 18:17:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://edgehopper.com/?p=410</guid>
		<description><![CDATA[A lot of the success of agile development teams relies heavily on consensus based decision making. In fact, the success of most teams in general, agile or not, is based on the same thing. However, I think there is a big misconception out there about what consensus is. In short, consensus doesn&#8217;t mean that everyone [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of the success of agile development teams relies heavily on consensus based decision making.  In fact, the success of most teams in general, agile or not, is based on the same thing.  However, I think there is a big misconception out there about what consensus is.  In short, consensus doesn&#8217;t mean that everyone is in agreement.  What it means is that everyone can live with something and support it.  And if you&#8217;re doing agile and keeping your iterations to two weeks, it means you can live with and support the decision for the next two weeks.  Then it can be revisited.</p>
<p>An easy way to arrive at a consensus is using the Fist of Five Rule.  When trying to reach consensus, each team member holds up 1 to 5 fingers to show their level of agreement and support.  Here&#8217;s the scale:</p>
<p><strong>Fist</strong>: A no vote &#8211; a way to block consensus.</p>
<p><strong>1 Finger</strong>: I am very opposed; we shouldn’t move forward (and yes, it should always be the index finger).</p>
<p><strong>2 Fingers</strong>: I have reservations I’d like to think about.</p>
<p><strong>3 Fingers</strong>: I can live with that and support it.</p>
<p><strong>4 Fingers</strong>: I think it’s a great idea, I wish I thought of it.</p>
<p><strong>5 Fingers</strong>: Wild unbridled support.</p>
<p>Try to get everyone to at least 3 fingers or better.  That&#8217;s consensus.  I can live with that.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/i-can-live-with-that/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Podcast: Global Avian Influenza Mapping and Agile</title>
		<link>http://edgehopper.com/podcast-global-avian-influenza-mapping-and-agile/</link>
		<comments>http://edgehopper.com/podcast-global-avian-influenza-mapping-and-agile/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 13:35:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>
		<category><![CDATA[Get the Goods]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,fd7f9cdb-995e-4a3b-9dd2-b363aeaefc12.aspx</guid>
		<description><![CDATA[While at Where 2.0, Dave Bouwman and I did a podcast with Jesse and Sue over at Very Spatial.  We spoke about a recent project we completed for the Wildlife Conservation Society for their Global Avian Influenza Network for Surveillance (GAINS) project.  The mapping application was a Virtual Earth implementation which showed locations and information [...]]]></description>
			<content:encoded><![CDATA[<p>While at <a href="http://en.oreilly.com/where2008/public/content/home">Where 2.0</a>, Dave Bouwman and I did a podcast with Jesse and Sue over at <a href="http://veryspatial.com/?p=2156">Very Spatial</a>.  We spoke about a recent project we completed for the <a href="http://www.wcs.org/">Wildlife Conservation Society</a> for their <a href="http://www.gains.org">Global Avian Influenza Network for Surveillance</a> (GAINS) project.  The mapping application was a Virtual Earth implementation which showed locations and information of bird flu cases around the world, as well as related flyways for those species.  We also talked a little bit about how we used agile practices to deliver the application very quickly and with complete customer satisfaction.  If you want to check out the podcast, head over to <a href="http://veryspatial.com/?p=2156">Very Spatial</a>.  If you&#8217;d like to take a look at the application, check it out the <a href="http://www.gains.org/DataSoftwareandWebsiteUserAgreement/tabid/471/RTN/547/DCL/36/language/en-US/Default.aspx">WCS GAINS</a> website.  And, if you&#8217;re interested in more of the technical details, check out <a href="http://blog.davebouwman.net/2008/05/30/MappingBirdFluData.aspx">Dave&#8217;s recent post</a> about building the application.</p>
<p><a href="http://www.gains.org/DataSoftwareandWebsiteUserAgreement/tabid/471/RTN/547/DCL/36/language/en-US/Default.aspx"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/PodcastGlobalAvianInfluenzaMappingandAgi_6AD2/image_3.png" border="0" alt="image" width="753" height="394" /></a></p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/podcast-global-avian-influenza-mapping-and-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scaling agile success</title>
		<link>http://edgehopper.com/scaling-agile-success/</link>
		<comments>http://edgehopper.com/scaling-agile-success/#comments</comments>
		<pubDate>Thu, 29 May 2008 18:21:32 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,eb67e192-c9fa-4ea3-818a-f1f90dc23a9e.aspx</guid>
		<description><![CDATA[I recently had someone pose a question to me that got me thinking about the scalability of agile success.  Here was the question: &#8220;I&#8217;m part of large organization of over 1,000 people.  Our small team of 40 has been using agile with a great deal of success.  Now our company wants to me to extrapolate [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Scalingagilesuccess_ADBE/image_2.png"></a><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Scalingagilesuccess_ADBE/image_2.png"></a><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Scalingagilesuccess_ADBE/image_4.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 5px 0px 0px; border-left: 0px; border-bottom: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Scalingagilesuccess_ADBE/image_thumb_1.png" border="0" alt="image" width="207" height="160" align="left" /></a> I recently had someone pose a question to me that got me thinking about the scalability of agile success.  Here was the question: &#8220;I&#8217;m part of large organization of over 1,000 people.  Our <em>small</em> team of 40 has been using agile with a great deal of success.  Now our company wants to me to extrapolate the successes we&#8217;ve enjoyed from agile (efficiency, value, profitability) to the rest of the company.  Do you think the agile success of 40 people can be extrapolated to over 1,000 people?”</p>
<p>It&#8217;s a great question and I don&#8217;t think there is an easy answer to it.  Speaking from my own personal experience, it&#8217;s been difficult extrapolating the success our small team of five developers had in the past to our larger organization of about 35 people.  There are many challenges as you scale agile up.  Agile practices depend heavily on <a href="http://www.chrisspagnuolo.com/TheCaseForCollocation.aspx">collocated teams</a> that are <a href="http://www.chrisspagnuolo.com/TheUltimateCrossfunctionalTeam.aspx">cross-functional</a> in nature.  When you start scaling agile up, you need to consider geographic dispersion of much larger project teams that may not be as cross-functional as you&#8217;d like them to be.  This is just the nature of large organizations.  This can have an impact on <a href="http://www.chrisspagnuolo.com/DistributedCommunicationsMediums.aspx">communications</a> and coordination of work across dispersed teams.  Another success factor that&#8217;s related to this in larger organizations is the use of matrix management.  Teams in large organizations are usually composed of a mélange of team members who, because of matrix management, report to and are managed by different parts of the organization.  This can lead to the <a href="http://www.chrisspagnuolo.com/FightingFiresTheAgileWay.aspx">fire drill mentality</a> and &#8220;resource ownership&#8221; issues.  This can quickly degrade the level of commitment and the quality/value of functionality that the teams deliver.</p>
<p>Other obvious factors that can be relevant when scaling up are the development and testing environments.  Teams need to be able to continuously integrate their work and have a common infrastructure that supports this across a large organization.  Teams need to know quickly whether or not the work they&#8217;ve done is negatively impacting the rest of the codebase.  This is no small matter and can really improve or decrease the effectiveness and efficiency of agile development teams.</p>
<p>There are probably many more factors that are related to scaling agile up, but to me, the ones mentioned above seem critical.  Personally I don&#8217;t think you can simply extrapolate the success of smaller agile adoptions to larger organization-wide adoptions.  I think that each has its own distinct set of challenges that make it difficult to draw a line and say we had X amount of success here, so that means we&#8217;ll have 10X success when we scale this up.  However, that is not to say that large organizations cannot enjoy the benefits and successes agile practices offer.  They just have to approach it with a different mindset than smaller teams or organizations.  In fact, many large organizations have really recognized tremendous gains using agile practices.  If you&#8217;re interested, there is a great case study available about BMC Software adopting and scaling agile practices throughout a very large organization.  It&#8217;s available <a href="http://www.rallydev.com/documents/Case_Study_BMC10.pdf">here</a>.  It&#8217;s well worth the read and gives some great insights into how large companies adapt to make agile work for them.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/scaling-agile-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile adoption: Why isn&#8217;t this stuff working?</title>
		<link>http://edgehopper.com/agile-adoption-why-isnt-this-stuff-working/</link>
		<comments>http://edgehopper.com/agile-adoption-why-isnt-this-stuff-working/#comments</comments>
		<pubDate>Wed, 28 May 2008 15:15:49 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,b89679e9-0a58-47ee-aeea-0dc10b8c1380.aspx</guid>
		<description><![CDATA[Lately I&#8217;ve been hearing feedback from lots of different people that they&#8217;ve &#8220;adopted&#8221; agile and it&#8217;s just not working for them.  This always causes me to pause, step back and ask a few questions.  Here&#8217;s the list that usually runs through my head:  How did your company adopt agile: top down mandate or grown organically?  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/AgileadoptionWhyisntthisstuffworking_937D/image_2.png"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 10px 0px 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/AgileadoptionWhyisntthisstuffworking_937D/image_thumb.png" border="0" alt="image" width="226" height="220" align="left" /></a> Lately I&#8217;ve been hearing feedback from lots of different people that they&#8217;ve &#8220;adopted&#8221; agile and it&#8217;s just not working for them.  This always causes me to pause, step back and ask a few questions.  Here&#8217;s the list that usually runs through my head:  How did your company adopt agile: top down mandate or grown organically?  Was your adoption done in stealth mode or full fledged &#8220;Hello world, we&#8217;re going agile&#8221;? Do you have real executive support for your agile adoption? What kind of projects have you implemented agile on: fixed price, fixed scope, fixed schedule? Has your staff received any kind of agile training? How many projects have you run in an agile manner? How long ago did you start doing agile?</p>
<p>I run through these questions because I think each one represents a potential failure point for agile adoptions.  Let&#8217;s take a look at each one.</p>
<ol>
<li> <strong><em>How did your company adopt agile: top down mandate or grown organically?</em></strong> This is really important.  In the teams I&#8217;ve talked to and worked with, it always seemed that agile was adopted better when it was grown organically not when it was mandated.  The mandate approach assumes command and control and never leads anywhere good.  People need to want to do agile.  So how do you get people to want to do agile?  Show them small successes.  Let a single team or a few small teams start doing agile.  Then, as they show successes and learn some of the lessons, other teams pick up on it and want to do the same.  The teams that went first, help the teams that followed adopt agile and they pass on the lessons they&#8217;ve learned. In other words, you can&#8217;t just throw the agile switch and voila&#8230;everything is good.  Mandated adoptions often fail because there <em>is</em> no magic switch.  People resist change when it&#8217;s mandated.  They embrace it much better when it&#8217;s grown out of proven success.</li>
<li> <strong><em>Was your adoption done in stealth mode or full fledged &#8220;Hello world, we&#8217;re going agile&#8221;? </em></strong>The CEO or COO stands up and proudly announces &#8220;Hello world, we&#8217;re going agile&#8221; and then thinks in the back of his mind <em>&#8220;I hope this voodoo works&#8221;.</em> And, because there was such a public announcement of the company&#8217;s intent, there is extreme pressure to &#8220;make it work&#8221;.  This pressure leads again to command and control thinking of &#8220;make this stuff work&#8221; or we&#8217;re going to be embarrassed.  On the flip side, if you start in stealth mode, you work projects internally using agile practices but say nothing of it until the project is over.  When you client asks &#8220;How were you able to deliver value in a timely manner?&#8221; you can answer &#8220;With agile practices&#8221;.  Because there is no external pressure to live up to some expectation, stealth agile teams have an internal commitment to making agile work for their own good without being forced to do so to meet some external expectation.  Once they gain the successes on stealth projects, they&#8217;ll be more comfortable with announcing that they develop in an agile manner to the world.</li>
<li> <strong><em>Do you have real executive support for your agile adoption? </em></strong>Lot&#8217;s of executives have &#8220;heard&#8221; about agile and want to do it because everyone else is.  But, they don&#8217;t really understand the level and type of commitment an organization must make to truly adopt agile.  If you haven&#8217;t already noticed, one of the key things an organization needs to let go of when they adopt agile is the command and control structure.  It&#8217;s a very hard hard thing for most executives to let go of, and many never fully commit to and support a more servant leader approach to management.  Failure in agile adoptions occur when lip service is paid to &#8220;supporting&#8221; agile practices, but business goes on as usual: The command and control structure remains, long winded requirements documents are requested to support the inevitable scope disagreements we&#8217;ll have with our clients, deliverables-based contracts and project tracking remain, and percent complete and earned revenue calculations are the only important project metrics.  If organizations can&#8217;t come around to supporting agile practices and drop their old &#8220;bad&#8221; management habits, agile adoptions are doomed to failure.</li>
<li> <strong><em>What kind of projects have you implemented agile on: fixed price, fixed scope, fixed schedule?</em></strong> If you&#8217;re going to adopt agile, you need to consider the types of projects you&#8217;re going to run agile on.  That means thinking about contracting in a whole new light.  If you&#8217;re trying to use agile practices on a fixed scope project, expect to fail outright.  Fixed scope is the antithesis if agility.  If you&#8217;re running on a fixed-price project, better chance of success, but only if scope is not fixed.  Fix your price <em>and</em> your scope:  FAIL.  And fixed-schedule, another bad option.  So, if you&#8217;re trying out agile on a project that has not truly been contracted to run agile, expect failure.  The answer is to work with your clients to educate them and develop agile contracts that both you and them can work with and live with.</li>
<li> <strong><em>Has your staff received any kind of agile training?</em></strong> &#8220;OK, so we&#8217;re going agile.  Here&#8217;s the 2-hour overview.  Go out and be agile!&#8221;.  One month later: Fail.  Why?  Agile is not easy.  It sounds easy and can be explained quickly.  But, there are many subtleties and nuances to agile.  For teams to really grock the whole agile thing, you need to invest some time and money for training.  An agile team needs to learn <em>how</em> to plan in a whole new way, how to develop user stories, how to develop tasks, how to assess themselves and their practices.  And, they need to learn about the heart of agile: commitment.  Unless teams deeply understand what makes agile tick, they&#8217;re going to have a difficult time being successful at it.  A two-hour &#8220;Welcome to Agile&#8221; powerpoint ain&#8217;t gonna do the trick.  Sending teams to something like scrum master training is well worth the time and money you&#8217;ll spend on it.</li>
<li> <strong><em>How many projects have you run in an agile manner and how long ago did you start doing agile?</em></strong> My advice here: give it room to breath.  It takes a few turns around the block to get agile running smoothly.  Teams need time to gel, get to understand agile and learn about themselves (see <a href="http://www.chrisspagnuolo.com/ShortDurationTeams.aspx">recent post</a> on this topic).  Like I said before, there is no magic agile switch.  It takes time for agile teams to become successful.  The more time you allow it to run, the more likely it will be successful in the long run.  Too many teams hit the first agile bumps and hurdles and instead of trying to learn from them, they pull the plug and declare their adoption of agile a failure.  There are many stages an agile adoption goes through and some can be painful from many points of view.  Slow down, take a deep breath, and keep trying.</li>
</ol>
<p>So, what should you do if your agile adoption is &#8220;failing&#8221;? Here&#8217;s a hint: Agile is HARD.  Ask yourself some of the questions above and see what might be causing the failure.  I believe that too many organizations only half-heartedly adopt agile and pull the plug far too early before it has a chance to prove itself.  Give agile a try, give it some time, and think hard about the six questions posed above before you pass judgement on your agile adoption.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/agile-adoption-why-isnt-this-stuff-working/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ScrumMasters: Don&#8217;t be a fixer</title>
		<link>http://edgehopper.com/scrummasters-dont-be-a-fixer/</link>
		<comments>http://edgehopper.com/scrummasters-dont-be-a-fixer/#comments</comments>
		<pubDate>Wed, 07 May 2008 14:23:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,265da178-8e86-4153-a096-4e62b0a0b121.aspx</guid>
		<description><![CDATA[I think one of the best aspects of agile development is the ability for a team to frequently learn from their mistakes.  It&#8217;s especially crucial that this happens in a blame free environment.  When something goes wrong during an iteration, it&#8217;s important that no team member is singled out.  The entire team accepts responsibility for [...]]]></description>
			<content:encoded><![CDATA[<p>I think one of the best aspects of agile development is the ability for a team to frequently learn from their mistakes.  It&#8217;s especially crucial that this happens in a blame free environment.  When something goes wrong during an iteration, it&#8217;s important that no team member is singled out.  The entire team accepts responsibility for their failures and successes together.  And when a team makes mistakes, they need to learn from them.  The key components for in a team&#8217;s ability to learn from their mistakes are the attitude and interactions of the ScrumMaster.</p>
<p>There are a few things a ScrumMaster must do to help their teams learn from their mistakes.  First and foremost, the ScrumMaster cannot be a fixer.  When things are broken or not working the team, not the ScrumMaster, must figure out how to fix things.  If the ScrumMaster continually steps in to fix the problem, the team never learns how to fix a problem for themselves.  This leads back to the old command and control structure of more traditional development approaches.  Instead of being a fixer, the ScrumMaster needs to be an enabler.  The ScrumMaster needs to be aware of any problems the team may be having and provide them with whatever resources they need to solve the problem on their own.  It could be something as simple as a phone number for a key client contact.  Whatever it is that is keeping the team from solving their problem, the ScrumMaster is there to provide it&#8230;except for the solution itself.</p>
<p>The other thing I think a ScrumMaster must do is allow teams to make mistakes.  Because Scrum is, at its core, an empirical process, we expect certain things not to work&#8230;and we expect to inspect and adapt our practices to make them work better.  That means letting teams fail sometimes.  If a ScrumMaster always steps in and prevent a team from making mistakes, the team never get the chance to learn from them.  If a team doesn&#8217;t get that chance, they become inefficient at self-management, another key tenet of Scrum.  And again, this leads back to the old command and control structures of traditional project management.</p>
<p>So, my two pieces of advice for ScrumMasters: Let your teams make mistakes&#8230;and don&#8217;t be a fixer, be an enabler.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/scrummasters-dont-be-a-fixer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who&#8217;s driving the bus?</title>
		<link>http://edgehopper.com/whos-driving-the-bus/</link>
		<comments>http://edgehopper.com/whos-driving-the-bus/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 18:24:53 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,cb4e452f-da26-43c2-a86c-35b7bd02b179.aspx</guid>
		<description><![CDATA[Here at DTS, we&#8217;re very focused on consulting-type software development.  As such, we have very direct access to our end users and customers.  Our work is &#8220;clearly&#8221; defined and prioritized by our customers and we receive direct customer feedback every two weeks.  We do not have a dispersed customer base, it&#8217;s usually a single organization.  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Whosdrivingthebus_AE8F/image_4.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 5px 0px 0px; border-left: 0px; border-bottom: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Whosdrivingthebus_AE8F/image_thumb_1.png" border="0" alt="image" width="130" height="162" align="left" /></a>Here at <a href="http://www.edats.com">DTS</a>, we&#8217;re very focused on consulting-type software development.  As such, we have very direct access to our end users and customers.  Our work is &#8220;clearly&#8221; defined and prioritized by our customers and we receive direct customer feedback every two weeks.  We do not have a dispersed customer base, it&#8217;s usually a single organization.  However, last week I had lunch with a friend who does more &#8220;shrink-wrap&#8221; development.  His customers and end-users never define or prioritize their needs.  In fact, unless it&#8217;s by pure happenstance, the developers never meet or know their customers.  The functionality and feature set for the software is defined by an internal customer proxy who has his &#8220;finger on the pulse of the customer&#8221;.</p>
<p>Now a disclaimer:  I&#8217;ve never worked on a shrink-wrap team, I&#8217;ve always been on consulting development teams.  Given that little disclaimer, I don&#8217;t understand how a customer proxy can really define what an entire unseen, unknown customer base really needs.  I know that some organizations do prototype or &#8220;focus-group&#8221; type testing to gauge what their customers want.  But my friend&#8217;s team develops on a gut instinct of what their customer base needs. I&#8217;m not sure this ever can truly deliver quality and value to a wider audience.  I think it leads to Microsoft Word-type deals, with tons of functionality that only a few people actually use.  Don&#8217;t get me wrong, I think a lot of good things come out of gut instincts.  I think there is a lot of value to anticipating user needs.  It&#8217;s part of innovation.</p>
<p>The other point my friend made was that in the shrink-wrap world of DVD-based delivery systems, organizations are hard pressed to keep up with the rapidly changing demands of large customer bases.  Their release schedules and update maintenance schedules must be horrendous.  They can&#8217;t respond rapidly to changing or evolving customer needs.  The best they can do is provide patches and updates via the web.  New functionality is released on the next release&#8230;on DVD&#8230;every 9 to 12 months.</p>
<p>I do see a solution to this problem and I think the folks at <a href="http://www.rallydev.com">Rally</a> really embrace the ever evolving needs of their dispersed customer base.  It&#8217;s how they gather and prioritize their customer&#8217;s needs that impresses me the most.  Rally has a community website where users can enter feature requests.  The other users in the community can vote on the usefulness of the feature requested and provide additional feedback and comments on the feature request.  Based on these entries and their associated popularity, Rally is able to understand their user needs and prioritize them.  Many of the features requested by their user community show up in very frequent releases of their web-based solution. No DVD&#8217;s or anything.  Just a quick release and instant functionality to their customers.  Speaking from personal experience, I&#8217;ve seen functionality we&#8217;ve asked for implemented within a single 7-week release from when we requested the feature.</p>
<p>To me, this is as close as you can get to your customers if you&#8217;re doing &#8220;shrink wrap&#8221; software development.  For those of you out there doing shrink-wrap development in an agile manner, how do you engage your customer base to deliver high value, quality software?  I&#8217;m very curious how customer proxies work in agile organizations?  How do you define and prioritize your customer needs if you never get to interact with your customers?  When I think of these types of questions, it makes me very happy to be on a consulting development team.  Sometimes I think I take the close relationships we have with our customers for granted.  After this conversation with my friend, I think I&#8217;ll value the collaborative nature of our relationship with our customers a whole lot more.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/whos-driving-the-bus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Against the wind</title>
		<link>http://edgehopper.com/against-the-wind/</link>
		<comments>http://edgehopper.com/against-the-wind/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 19:56:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,468708a9-691f-4f19-bb59-73a905d5e26b.aspx</guid>
		<description><![CDATA[OK, don&#8217;t be too concerned, I&#8217;m not going to break into some bad Bob Seger karaoke.  Here&#8217;s the deal:  Today over lunch I planned on doing a quick 20 mile bike ride to refactor my wetware.  Based on my usual average speeds over flat terrain, I figured on about a 1 hour ride.  Before I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Againstthewind_C428/image_4.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 5px 0px 0px; border-left: 0px; border-bottom: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Againstthewind_C428/image_thumb_1.png" border="0" alt="image" width="163" height="130" align="left" /></a> OK, don&#8217;t be too concerned, I&#8217;m not going to break into some bad Bob Seger karaoke.  Here&#8217;s the deal:  Today over lunch I planned on doing a quick 20 mile bike ride to <a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">refactor my wetware</a>.  Based on my usual average speeds over flat terrain, I figured on about a 1 hour ride.  Before I headed out, I checked the weather and the wind speed was about 2 mph (not much at all).  So, out I go and I&#8217;m cranking all the way out toward the foothills of the Rocky Mountains.  I get to my turnaround point and I&#8217;m right on my usual average velocity.  I&#8217;m thinking, I&#8217;m getting back to the office right on time.  So, about a mile in on the return leg, the wind decides it&#8217;s time to blow.  And it really starts blowing a strong headwind.  I can&#8217;t get over 14 mph!  I get back to the office and it took me 75 minutes instead of 60!</p>
<p>So, what does this have to do with anything (except that now you know that I ride my bike at lunch)?  While I was riding back, I thought, this is a lot like a big software development project.  A lot of development teams start out thinking &#8220;This is a 20-mile ride, I usually do it in 60 minutes&#8221;.  They try to figure out all the dependencies (i.e., the terrain, the wind speed), and feel really confident that they&#8217;ll get the job done in time.  Then they start building the software.  The wind is at their back&#8230;they&#8217;re cranking through the work.  Then, one day, the wind starts blowing.  This project has complexities we didn&#8217;t think of.  We didn&#8217;t know it was going to be this difficult.  But we still need to finish the job (we still need to get back to the office).  We can&#8217;t work or pedal any faster.  We know we&#8217;re going to be late.  What do we do?  The project goes into panic mode.  Do we sacrifice quality to get it done?  Do we sacrifice schedule?  Do we go over budget?  The reality is, most traditional development teams do all three at one point or another.</p>
<p>In agile, we don&#8217;t let the wind worry us.  Agile embraces changing conditions.  An agile team simply says, OK, it&#8217;s windy.  How do we work in the wind?  How do we work <strong><em>with</em></strong> the wind?  Do we <em>have</em> to make it back to the office?  In other words, agile teams can easily adapt to new conditions, new requests, new requirements, unknown complexities. And because we use prioritized backlogs with our customers, we don&#8217;t have to sacrifice quality (or value), schedule, or budget.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/against-the-wind/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Tale of Two Teams Flash Video</title>
		<link>http://edgehopper.com/a-tale-of-two-teams-flash-video/</link>
		<comments>http://edgehopper.com/a-tale-of-two-teams-flash-video/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 06:02:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>
		<category><![CDATA[Tech Fun]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,d7383cdd-1aae-43a7-a6ca-b5a54e234252.aspx</guid>
		<description><![CDATA[I&#8217;ve been messing around a bit with Flash tonight building 3D cubes, globes, and carousels for site navigation and data presentation with Papervision 3D (very cool stuff and open source&#8230;read as FREE&#8230;check it out if you&#8217;ve never heard of it before). I&#8217;ll be posting more stuff about Papervision as I get into it a little [...]]]></description>
			<content:encoded><![CDATA[<div>
<div id="scid:B3E14793-948F-49af-A347-D19C374A7C4F:db387295-62dd-4c8e-97c5-94d06e94ed84" class="wlWriterSmartContent" style="PADDING-RIGHT: 7px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"><script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script></div>
</div>
<div>I&#8217;ve been messing around a bit with Flash tonight building 3D cubes, globes, and carousels for site navigation and data presentation with <a href="http://www.papervision3d.org/showreel/publicbeta/">Papervision 3D</a> (very cool stuff and open source&#8230;read as <strong>FREE</strong>&#8230;check it out if you&#8217;ve never heard of it before). I&#8217;ll be posting more stuff about Papervision as I get into it a little deeper.  I also wanted to stick something on the blog to test out this little Flash video and viewer I did for <a href="http://www.dtsagile.com">DTS Agile</a> using <a href="http://www.techsmith.com/camtasia.asp">Camtasia Studio</a> just to see if <a href="http://www.dasblog.info/">DasBlog</a> could handle it.  It&#8217;s called A Tale of Two Teams and is a presentation I put together about a waterfall team and an agile team.  The video is also available on our main site <a href="http://www.dtsagile.com">www.dtsagile.com</a>.  <strong>UPDATE: </strong>Seems like some aggregators can&#8217;t read the Flash video.  If you can&#8217;t see the video, please visit <a href="http://www.chrisspagnuolo.com/ATaleOfTwoTeamsFlashVideo.aspx">http://www.chrisspagnuolo.com/ATaleOfTwoTeamsFlashVideo.aspx</a>.  Here it is, hope you like it:</div>
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="318" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="id" value="csSWF" /><param name="_cx" value="10583" /><param name="_cy" value="8414" /><param name="FlashVars" /><param name="Movie" value="http://www.chrisspagnuolo.com/media/TOT.swf" /><param name="Src" value="http://www.chrisspagnuolo.com/media/TOT.swf" /><param name="WMode" value="Window" /><param name="Play" value="0" /><param name="Loop" value="-1" /><param name="Quality" value="High" /><param name="SAlign" /><param name="Menu" value="-1" /><param name="Base" /><param name="AllowScriptAccess" value="always" /><param name="Scale" value="ShowAll" /><param name="DeviceFont" value="0" /><param name="EmbedMovie" value="0" /><param name="BGColor" value="1A1A1A" /><param name="SWRemote" /><param name="MovieData" /><param name="SeamlessTabbing" value="1" /><param name="Profile" value="0" /><param name="ProfileAddress" /><param name="ProfilePort" value="0" /><param name="AllowNetworking" value="all" /><param name="AllowFullScreen" value="true" /><embed id="csSWF" type="application/x-shockwave-flash" width="400" height="318" src="http://www.chrisspagnuolo.com/media/TOT.swf" allowfullscreen="true" allownetworking="all" profileport="0" profile="0" seamlesstabbing="1" bgcolor="1A1A1A" embedmovie="0" devicefont="0" scale="ShowAll" allowscriptaccess="always" menu="-1" quality="High" loop="-1" play="0" wmode="Window" movie="http://www.chrisspagnuolo.com/media/TOT.swf" _cy="8414" _cx="10583"></embed></object></div>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/a-tale-of-two-teams-flash-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My Dad was a ScrumMaster</title>
		<link>http://edgehopper.com/my-dad-was-a-scrummaster/</link>
		<comments>http://edgehopper.com/my-dad-was-a-scrummaster/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 15:49:56 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,46ed3d85-de3d-4ed0-8326-a5122e964e87.aspx</guid>
		<description><![CDATA[In light of the recent news about American Airline&#8217;s maintenance problems, I sat down and talked with my Dad about aircraft maintenance.  You see, my Dad was a maintenance Crew Chief for Pan American Airlines for nearly 30 years and I wanted to understand how things got so bad for American.  My Dad explained the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/MyDadwasaScrumMaster_8A40/PanAm_3.jpg"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 5px 0px 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/MyDadwasaScrumMaster_8A40/PanAm_thumb_3.jpg" border="0" alt="PanAm" width="277" height="191" align="left" /></a> In light of the recent news about American Airline&#8217;s maintenance problems, I sat down and talked with my Dad about aircraft maintenance.  You see, my Dad was a maintenance Crew Chief for Pan American Airlines for nearly 30 years and I wanted to understand how things got so bad for American.  My Dad explained the inner workings of Pan Am&#8217;s maintenance program to me.  The program dated back to late 1960&#8242;s and early 1970&#8242;s and was remarkably agile-sounding.  Here&#8217;s the program in a nutshell.</p>
<p>Aircraft are regularly called in for routine servicing.  The servicing was usually scheduled for about 3 days.  A QA specialist (or several QA specialists) examined the aircraft and used a set of cards to write up work orders for each item that required servicing.  The QA specialist then sorted the cards by theme (interior, engines, avionics, etc.), estimated how many items could be completed in 3 days based on historical data, and slotted them on a task board.  The crew chief for each &#8220;theme&#8221; area would pick up the cards for his team.  The crew chief and his team would triage the work items and prioritize them.  Then, the team members would select the work items they would work on and provided the crew chief with time estimates to complete each of the tasks they selected.  This allowed the mechanics doing the work to actually estimate the duration of their tasks.  The team would then commit to completing the tasks within the 3 day service period.  Each day, they&#8217;d check in with each other to make sure things were on track.  During the service period, the crew chief worked on some maintenance tasks, but he also made sure that everyone on his team had what they needed to get their job done.  At the completion of the service period, the QA specialist would come back and inspect each maintenance item and either accept or reject them (and FAA inspectors checked things as well). Team members were also encouraged to think about how they did their job and suggested new or better ways to do things (in fact, they received monetary incentives for coming up with innovative ideas).</p>
<p>Now, I don&#8217;t know about you, but this sounds very much like Scrum to me.  If you think about it, we have a highly complex piece of equipment with multiple integrated systems.  We have a mission critical maintenance program.  We have high priority items that need to be completed&#8230;you know, done done&#8230;to keep the aircraft safe and airworthy (and others that are lower piority like a reading lamp that isn&#8217;t working).  You can&#8217;t mess up here.  So how do you do it effectively and efficiently: Scrum.  Here&#8217;s how I see it:</p>
<p>We have a time boxed iteration (the 3-day service period).  We have a product owner (the QA specialist), a ScrumMaster (the Crew Chief) and a team (the mechanics).  We have a prioritized backlog (the task board and task cards) and team members selecting their tasks, providing task estimates, and committing to a team goal of having the aircraft ready to roll in 3 days.  We have a daily stand up (checking in to make sure they&#8217;re on track).  We have a servant leader ensuring his team has what it needs to meet their goal and we have a product owner review at the end of an iteration.  And most importantly, we have retrospection and continuous improvement.  Seems like Scrum to me.</p>
<p>So, maybe Scrum is just a repackaging of things we already knew that worked well.  It&#8217;s just being applied to software development now instead of aircraft.  Toyota picked up on much of this and Taichi Ohno implemented lean manufacturing there in the early 90&#8242;s with a lot of similar tactics.  Maybe we shouldn&#8217;t be too proud of ourselves for discovering something new&#8230;we really just rediscovered something old that worked and there&#8217;s nothing wrong with that.  So, let&#8217;s file this one under &#8220;Nothing New Under the Sun&#8221;.  Or better yet, let&#8217;s file it under &#8220;My Dad Was a ScrumMaster&#8221;, he just didn&#8217;t know it.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/my-dad-was-a-scrummaster/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interview with Ryan Martens, CTO Rally Software Development</title>
		<link>http://edgehopper.com/interview-with-ryan-martens-cto-rally-software-development/</link>
		<comments>http://edgehopper.com/interview-with-ryan-martens-cto-rally-software-development/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 14:08:15 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,5e3d6335-473f-4c82-9a2a-64e6ab34b5f5.aspx</guid>
		<description><![CDATA[As part of my continuing interview series with thought leaders in the agile industry, here is an interview with Ryan Martens, CTO of Rally Software Development.  Ryan is a devout member of the software industry since the early 1980’s. In the mid-90’s, Ryan moved into consulting and re-engineering using Internet technologies with two different companies [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/InterviewwithRyanMartensCTORallySoftware_DFDF/image_6.png"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px 10px 0px 0px; BORDER-RIGHT-WIDTH: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/InterviewwithRyanMartensCTORallySoftware_DFDF/image_thumb_2.png" border="0" alt="image" width="178" height="267" align="left" /></a> As part of my continuing interview series with thought leaders in the agile industry, here is an interview with Ryan Martens, CTO of <a href="http://www.rallydev.com">Rally Software Development</a>.  Ryan is a devout member of the software industry since the early 1980’s. In the mid-90’s, Ryan moved into consulting and re-engineering using Internet technologies with two different companies and numerous clients. His last start-up was acquired by BEA Systems where Ryan directed product management for BEA’s Portal. Since 2002, Ryan has focused his efforts on changing the software industry through <a href="http://www.rallydev.com">Rally Software</a>. Every day, Ryan drives Rally toward becoming a sustainable business, while working to help customers realize the benefits of software agility. Ryan is a board member on the <a href="http://agilealliance.org/">Agile Alliance</a>, <a href="www.coloradoconservationtrust.org">Colorado Conservation Trust</a>, <a href="www.efcolorado.org/ ">Entrepreneurs’ Foundation of Colorado</a> and the <a href="www.knightfoundation.org/">Knight Foundation</a>, as well as being a husband, father and farmer in Boulder, Colorado.</p>
<p>Aside from all of this goodness, Ryan is just a flat out great guy, a good friend, and very approachable.  Our team works closely with him and his folks at Rally to bring agile practices to the forefront of our company&#8217;s development activities.  I&#8217;d like to offer my thanks to Ryan for all the help he&#8217;s given us and for taking the time out of his busy schedule to share his insights about agile software development.</p>
<p><strong>Q.</strong> <em>You have had the opportunity to work with many software development teams in your career.  Is there something special that seems to define or set apart high-performance agile teams?</em></p>
<p><strong>A.</strong> Cool tools/technologies, cool customers, trust and collaboration have made for fun, high performing teams in my career at 9 software companies and two consulting firms. Being successful enough to be able to continue to play the fun game was the reward. With regards to the special things that set apart high-performance teams, I do not claim to be the expert. Like most, I knew it when I was in it. But thanks to an <a href="www.agileuniversity.org/">Agile University</a> instructor and friend, <a href="http://www.cutter.com/meet-our-experts/averyc.html">Christopher Avery</a>, we have the research to really put our finger on answers to that question. His research (see <a href="http://great-teams.com/">great-teams.com</a>) points to three top things that I would totally concur with:</p>
<ul>
<li> <strong>Trust</strong></li>
<li> <strong>Goodwill/Collaboration</strong></li>
<li> <strong>Clarity in Purpose</strong></li>
</ul>
<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/InterviewwithRyanMartensCTORallySoftware_DFDF/clip_image002_2.jpg"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/InterviewwithRyanMartensCTORallySoftware_DFDF/clip_image002_thumb.jpg" border="0" alt="clip_image002" width="600" height="421" /></a></p>
<p><strong>Q.</strong> <em>The flip side of that coin is equally important.  What would say are the common pitfalls that cause agile teams to fail or be ineffective?</em></p>
<p><strong>A.</strong> I assume you can plot teams on a normal distribution curve, and the great ones and the ones that fail make up the tip and tail of the curve. The ones that fail violate the things that make a great team. Another friend <a href="http://www.lukehohmann.com/">Luke Hohmann</a>, <a href="http://www.enthiosys.com/">Enthiosys.com</a>, describes the anti-pattern as a “J-O-B.” Whenever it just feels like work, stuff-for-money, or you’re working with people who are painful, it becomes a J-O-B. When it becomes a JOB, you lose the determination to inspect and adapt agile, and you plateau as an agile amateur and ultimately fall back and typically apart.</p>
<p><strong>Q.</strong> <em>There are many agile tools in the market place today.  What are your thoughts on the necessity and value of tooling for agile teams?</em></p>
<p><strong>A. </strong>All teams need agile tools, techniques and methods to reinforce the structure and discipline of agile. In <a href="http://www.agile2007.org/index.php%3Fpage=sub%252F&amp;id=981.html">the talk</a> that Ron Jefferies and I gave at <a href="http://www.agile2007.org/index.php%3Fpage=sub%252F&amp;id=981.html">Agile 2007</a>, we talked about three types of “tools.” There are tools that help you reduce the cost of iterating, tools that help increase your visibility within and across teams, and role-specific tools that help accomplish specific tasks. Of course, there is a continuum of low to high tech in all of these categories.</p>
<ul>
<li> Tools that help you reduce the cost of iterating a check-in, a story, or an entire increment include testing tools, mock-up tools, development frameworks, refactoring IDE’s, and testing frameworks that help you reduce your batch sizes. As your batch sizes of running tested features decrease, your agility level increases.</li>
<li> Tools that help you increase your visibility across the lifecycle like task boards, agile project management and integrated build tools increase in value as the project grows larger. These tools build collaboration, measurement, discipline and trust to make performance more objective.</li>
<li> Role-specific tools like backlog prioritization, specific types of test tools, and modeling tools help make steps in the agile process more effective. The need for these is varied based on the people in those roles and the technology in use of the project.</li>
</ul>
<p>You have to think of the tools, techniques and methods as working to support building trust, collaboration and clarity in purpose as well agility.</p>
<p><strong>Q.</strong> <em>Your company actively promotes agile practices for software development.  How has Rally adopted agile practices and what value have you recognized from it?</em></p>
<p><strong>A. </strong>As we have grown, we have matured our agile practices and disciplines to manage the growth in development, the business and our customer base. We followed an incremental adoption approach to agile, and the value we’ve recognized has steadily increased. Here are the rough descriptions of the transitions that our team went through.</p>
<p><strong><em>Step 1 Started Out Iterating</em></strong> – Pull together a new team of 8 into a state of iteration “flow.” We set a two week iteration cycle and worked to stabilize the process so that we could deliver a consistent level of iteration acceptance. We used internal demos to steer our iterations and we gained increasing alignment, component-level quality and company-level visibility. However, we had little feedback that we were building something that was “really” valuable and our testing practices were not good enough to achieve 100% iteration acceptance.</p>
<p><strong><em>Step 2 Increased our Agility to “Pull”</em></strong> – This came after we had a handful of customers and we moved the single team into a “pull” state. This included roadmap planning based on feedback, release planning to steer iterations and better acceptance testing tools and techniques. We used customer feedback to help prioritize and shape our backlog and better automation to reduce the size of defect pile we had to clean-up before release. We worked hard at this state to get to a zero-defect mentality both inside the iteration and with regards to overall technical debt. As a result, we achieved a consistent level of 90% iteration and 100% release acceptance levels.</p>
<p><strong><em>Step 3 Scaled to Multiple Scrum Teams</em></strong> &#8211; We split the 20 person team that was working in a state of “pull” into multiple scrum teams to make meetings and communication more effective. We instituted scrum-of-scrum and product council meetings and built out the integrated build management system. We also instituted a stop-the-line philosophy with regard to broken builds. Set a goal of 90% successful fully integrated builds. We gained velocity in the individual teams, but struggled with the new hierarchy to steer a multi-team program. We broadened our product portfolio to include two products.</p>
<p><strong><em>Step 4 Extended Agility Outside the Dev Team</em></strong> – We extended agility out to support and closed the loop with regard to feedback and defect management. By using our Agility Suite to link <a href="http://www.salesforce.com/">Salesforce.com</a> and Rally, we tracked the lifecycle and cycle time of customer request. As a result, we gained customer intimacy and trust through increased communication and visibility into our backlog.</p>
<p><strong><em>Step 5 Vision and Roadmapping</em></strong> – We then extended agility up to synchronize vision and roadmap across the company. Increased our discipline in business planning to help guide and synchronize our product vision and roadmap planning efforts. Also baked hack-a-thons into our regular release calendar on the last week of every release. We gained better alignment across the company and better day-to-day decision making across a distributed company of 75+ employees.</p>
<p><strong><em>Step 6 Pull System Testing Forward into the Nightly Build</em></strong> &#8211; Working to move performance and security suites into the nightly process for all product editions and deployment options. Refactoring acceptance test regression suites to run in parallel and reduce run time by a factor of 10. Increasing the quality of the system and reducing cost of iterating with a faster regression suite.</p>
<p><strong>Q.</strong> <em>How does Rally gather and prioritize user stories or requirements from their large user community?</em></p>
<p><strong>A.</strong> We prioritize at multiple levels and with multiple tools:</p>
<p>Daily tasks based on stand-up and any issues in production</p>
<ul>
<li> Iteration stories, every 2 weeks, based on iteration rank of ready items from the current release and any patch releases</li>
<li> Release epics, every 8 weeks, based on value rank from roadmap, critical deals, market pressures, feature request voting by customers, hack-a-thon efforts and technical debt</li>
<li> Product roadmap themes, every 6 months, based on strategic rank from market rhythms, market threats, market opportunities and the stage of each individual product in its lifecycle</li>
<li> Product line resource allocation, every 6 months, based on vision, profit and loss, core purpose and business SWOT across the portfolio</li>
</ul>
<p><strong>Q. </strong><em>In terms of the scalability of Scrum and agile, what major differences have you observed between small-team scrum implementations and large distributed multi-team Scrum implementations?</em></p>
<p><strong>A. </strong>The major difference between small teams and large distributed teams is the forced level of discipline. Many small teams can implement agile somewhat. With limited complexities, these teams can run with less discipline and fewer skilled “craftsmen” and still regularly ship quality software.</p>
<p>Large teams must increase their agile disciplines to manage the scale and distribution complexities or risk falling back to old ways. As a result, the level of tooling to manage cross-team communication, dependencies and signaling teams is a big difference.</p>
<p><strong>Q.</strong> <em>For organizations that are just starting out on their agile journey, what advice can you give in terms of cultural shifts they may need to make to support their agile teams?</em></p>
<p><strong>A.</strong> <a href="http://www.chrisspagnuolo.com/2008/01/28/BabyStepsIntoAgile.aspx">Your blog post</a> from mid-January said it best &#8211; <a href="http://www.chrisspagnuolo.com/2008/01/28/BabyStepsIntoAgile.aspx">take baby steps</a>, celebrate the success and don’t bank all your savings from agile successes. Make sure to reinvest parts of your savings back into a continuous quest to learn and get better. This is a game of regular and continuous improvement.</p>
<p>Internally, we’ve seen great success by adopting agile practices using agile techniques (incremental, iterative, fully inclusive, guided by inspection and adaptation). Don’t try to bite off too much too fast.</p>
<p><strong>Q.</strong> <em>Your organization actively engages in and promotes Green IT practices.  Can you briefly discuss simple things every IT organization can do to green their business?</em></p>
<p><strong>A. </strong>I think greening is just like adopting agile. We need to get our linear business process to become more feedback driven and sustainable. In this regard, the simplest things are not necessarily the right things. To green, you must get on a curve of incremental adoption. The right thing to do is to get folks from around the company to volunteer, set regular meetings, charter the group, baseline your issues and start picking off the visible, impactful and easy items. You need to build success and demonstrate value. It is really easy to “greenwash,” just like it is easy to “agilewash.”</p>
<p>Some easy things all of us can do:</p>
<ul>
<li> CF bulbs</li>
<li> Motion lights</li>
<li> HVAC timers</li>
<li> PC power management software</li>
<li> Building upgrades with the help of owner and city zoning</li>
<li> Purchase Renewable Energy Credits for your server farm or travel</li>
<li> Flex hours to support car pooling</li>
<li> Work at home solutions</li>
</ul>
<p><strong>Q.</strong> <em>How do you see agile practices contributing to the greening effort?</em></p>
<p><strong>A. </strong>As I stated above, adopting agile and greening are both incremental improvement journeys, so teams that are on the expert curve to agility are in a good place to be successful in greening. The driving principles behind agile are the Lean principles of:</p>
<ul>
<li> Eliminate waste</li>
<li> Empower teams</li>
<li> Amplify learning</li>
<li> Build integrity in</li>
<li> See the whole</li>
<li> Deliver fast</li>
<li> Delay decisions</li>
</ul>
<p>These are the same driving principles necessary to really create a sustainable company or industry. Fundamentally, I believe we have two perceptions wrong in the high-technology world.</p>
<ul>
<li>
<ul>
<li>
<ol>
<li> We have product mentality that drives us to follow a linear product lifecycle of taking materials, making products, transferring ownership and having customers discard them as waste. By moving software to a service model driven by agile, we can shift the power to software service providers and begin to change the entire high-technology industry to a more sustainable service model.</li>
<li> We believe building software is a deterministic process and should be managed with traditional critical path methods of project management.</li>
</ol>
</li>
</ul>
</li>
</ul>
<p>I have submitted this as a topic to Agile 2008. If you want to hear it, please jump in and add a comment here &#8211; <a href="http://submissions.agile2008.org/node/2100">http://submissions.agile2008.org/node/2100</a>.</p>
<p><strong>Q. </strong><em>In general terms, what do you think the future holds for agile software development?</em></p>
<p><strong>A. </strong>Huge growth! This approach to software development is critical in a world with:</p>
<ul>
<li> Higher customer expectations for immediate action and quality</li>
<li> Embedded computing everywhere</li>
<li> The computer as collaboration environment</li>
<li> Sustainable businesses networks</li>
<li> More employees in software/IT because it is a sustainable and globally distributed market</li>
</ul>
<p>A look beyond agile at the program level and into business agility and reliable innovation</p>
<ul>
<li> Closer connection to “the customer” through <a href="http://en.wikipedia.org/wiki/Web_2">Web 2.0</a> communities</li>
<li> Better tools to get the cost of iterating and current set-based development down</li>
<li> Extended into other knowledge work areas</li>
</ul>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/interview-with-ryan-martens-cto-rally-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Believe nothing</title>
		<link>http://edgehopper.com/believe-nothing/</link>
		<comments>http://edgehopper.com/believe-nothing/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 17:02:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,ee433632-7ec2-4a4f-8874-84b0f69f58cd.aspx</guid>
		<description><![CDATA[Whenever I describe agile practices to people for the first time, the response is usually something along the lines of &#8220;Seems like common sense to me.&#8221;  I agree completely.  I think that the more people approach agile with the common sense approach and avoid the dogmatic side of any methodology adoption, the better off they&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever I describe agile practices to people for the first time, the response is usually something along the lines of &#8220;Seems like common sense to me.&#8221;  I agree completely.  I think that the more people approach agile with the common sense approach and avoid the dogmatic side of any methodology adoption, the better off they&#8217;ll be.  I recently found this quote from Buddha that really speaks to both the common sense theme of agile practices and the anti-dogmatic view of methodologies that <a href="http://www.dtsagile.com">we</a> have been promoting at <a href="http://www.dtsagile.com/">DTS Agile</a>:</p>
<blockquote><p>Believe nothing, no matter where you read it<br />
or who has said it,<br />
not even if I have said it,<br />
unless it agrees with your own reason<br />
and your own common sense.</p></blockquote>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/believe-nothing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Contracting Discussions at the Dev Summit</title>
		<link>http://edgehopper.com/agile-contracting-discussions-at-the-dev-summit/</link>
		<comments>http://edgehopper.com/agile-contracting-discussions-at-the-dev-summit/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 17:42:09 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>
		<category><![CDATA[Conference Reports]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,cf03d337-40a6-4b16-9f8b-05c3b01111ff.aspx</guid>
		<description><![CDATA[This week, we had the opportunity to talk with lots of people at the ESRI Developers Summit about agile practices.  One of the popular questions we&#8217;ve been fielding has been about contracting in an agile environment.  At the risk of double posting the topic, check out Brian Noyle&#8217;s recent post about some of the conversations [...]]]></description>
			<content:encoded><![CDATA[<p>This week, we had the opportunity to talk with lots of people at the <a href="http://www.esri.com/events/devsummit/index.html">ESRI Developers Summit</a> about agile practices.  One of the popular questions we&#8217;ve been fielding has been about contracting in an agile environment.  At the risk of double posting the topic, check out <a href="http://briannoyle.wordpress.com/2008/03/19/agile-conversations-at-the-dev-summit/">Brian Noyle&#8217;s</a> recent post about some of the conversations we&#8217;ve been having.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/agile-contracting-discussions-at-the-dev-summit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What are CIO&#8217;s thinking&#8230;or are they?</title>
		<link>http://edgehopper.com/what-are-cios-thinking-or-are-they-thinking/</link>
		<comments>http://edgehopper.com/what-are-cios-thinking-or-are-they-thinking/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 16:47:23 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,fde5110d-ac07-41a0-a447-9a55ccb11331.aspx</guid>
		<description><![CDATA[OK, maybe it&#8217;s just me that finds this funny, but a recent survey by Stelligent of CIO&#8217;s found the following: &#8211; 72% of CIO&#8217;s said that NO, they did not have a solid understanding of Agile Development Methodologies. &#8211; 72% of CIO&#8217;s said YES, they are open to adopting agile methods. Now I don&#8217;t know [...]]]></description>
			<content:encoded><![CDATA[<p>OK, maybe it&#8217;s just me that finds this funny, but a <a href="http://www.stelligent.com/pdf/BostonRoundtableSurvey.pdf">recent survey</a> by <a href="http://www.stelligent.com">Stelligent</a> of CIO&#8217;s found the following:</p>
<ul>
<li> &#8211; 72% of CIO&#8217;s said that <strong><span style="font-size: small;">NO</span></strong>, they did not have a solid understanding of Agile Development Methodologies.</li>
<li> &#8211; 72% of CIO&#8217;s said <strong><span style="font-size: small;">YES</span></strong>, they are open to adopting agile methods.</li>
</ul>
<p>Now I don&#8217;t know about you, but if I don&#8217;t have a &#8220;solid understanding&#8221; of something, I&#8217;m generally not inclined to be open to adopting it!  I think I&#8217;d do a bit more research first.  Could this be the buzzword effect: &#8220;We have to adopt agile&#8230;it&#8217;s the latest and greatest&#8221; while in their head they&#8217;re thinking &#8220;What is agile anyway? I keep hearing about it&#8221;.</p>
<p>These same CIO&#8217;s went on to add their opinions on the importance for organizations to adopt agile methods:</p>
<ul>
<li> &#8211; 29% said extremely important, 50% said important, and 14% said somewhat important.</li>
</ul>
<p>Hmmm&#8230;&#8221;It&#8217;s very important that we adopt something I don&#8217;t really understand.&#8221;  Again, maybe it&#8217;s just me, but I find these results rather funny&#8230;or scary depending on your point of view!</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/what-are-cios-thinking-or-are-they-thinking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If scrum only had a heart</title>
		<link>http://edgehopper.com/if-scrum-only-had-a-heart/</link>
		<comments>http://edgehopper.com/if-scrum-only-had-a-heart/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 15:46:25 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,daae7979-d5f0-4436-bbbe-a302e9e6cdb9.aspx</guid>
		<description><![CDATA[I&#8217;ve heard people say that scrum teams don&#8217;t have a heart.  We plow through backlogs with our heads down.  We finish a project.  We start another and plow through the next backlog.  Story, plan, task, sprint, demo, retrospect, repeat.  Story, plan, task, sprint, demo, retrospect, repeat.  Where&#8217;s the heart?  When do scrum teams look beyond [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve heard people say that scrum teams don&#8217;t have a heart.  We plow through backlogs with our heads down.  We finish a project.  We start another and plow through the next backlog.  Story, plan, task, sprint, demo, retrospect, repeat.  Story, plan, task, sprint, demo, retrospect, repeat.  Where&#8217;s the heart?  When do scrum teams look beyond these super focused iteration based tasks and think about innovation.  I agree with this assessment.  I think that agile and scrum teams can get stuck in this rut.  Well, we&#8217;ve all heard about the Google 20%&#8230;20% of time spent working on innovation.  I like that, but can most organizations really afford 20% of our time to do free thinking?  Probably not, we&#8217;re not all making billions of dollars like Google.  But that doesn&#8217;t mean we can&#8217;t do something about this dilemma.  Personally, I like something like a hackfest or hackathon.  Maybe after 6 weeks of focused development, your team gets a week to do some focused play.  A one week iteration&#8230;tell us what you&#8217;re going to work on&#8230;be innovative, do something cool and commit to it.  At the end of the week, same old same old&#8230;do a review.  Everyone DEMONSTRATES their cool idea.  Not a diagram, not a slideshow&#8230;demo something you can show us.</p>
<p>I think that unless you&#8217;re completely dominant in your market space, you need to be doing something like this to keep you innovative and on the competitive edge.  It&#8217;s the old innovation curves again.  You want to always be anticipating or defining what the next thing is.  If you don&#8217;t, you slide down the laggard side of the innovation curve and risk becoming irrelevant.  If you slide down that curve, it&#8217;s very difficult to get back up to that next innovation curve.  So, give your teams time to innovate&#8230;it&#8217;s good for your organization&#8217;s future, it&#8217;s good for your customers, and it&#8217;s good for the professional growth and health of your development teams.</p>
<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Ifscrumonlyhadaheart_12C27/image_4.png"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Ifscrumonlyhadaheart_12C27/image_thumb_1.png" border="0" alt="image" width="500" height="342" /></a></p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/if-scrum-only-had-a-heart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Got impediments?</title>
		<link>http://edgehopper.com/got-impediments/</link>
		<comments>http://edgehopper.com/got-impediments/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 15:08:14 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,bf4e4dbb-8c8f-4691-a520-3a0353e10735.aspx</guid>
		<description><![CDATA[On a daily basis, agile teams should be answering three basic questions: (1) What did you work on yesterday? (2) What are you working on today? and (3) Do you have any impediments to accomplishing your tasks?  That third one is a key question, and one that is answered differently depending on the maturity of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Gotimpediments_94DA/image_2.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Gotimpediments_94DA/image_thumb.png" border="0" alt="image" width="244" height="212" align="left" /></a> On a daily basis, agile teams should be answering three basic questions: (1) What did you work on yesterday? (2) What are you working on today? and (3) Do you have any impediments to accomplishing your tasks?  That third one is a key question, and one that is answered differently depending on the maturity of your team.  What is an impediment anyway?  It can be a multitude of things, from organizational issues to technical resources, from physical impediments to technical ones.  But how good is your team at identifying impediments and voicing them?  I think that depends on the maturity of the team.  There are always the easy impediments that are surfaced when you first start doing agile.  It&#8217;s the subtle impediments that are tougher to identify.</p>
<p>I heard something recently from one of our agile teams when I listened in on a few of their daily stand-up meetings. For three meetings in a row, the same developer reported that he worked the same task all three days and was planning on working on it again.  One of the other developers picked up on this and said, &#8220;You only estimated 6 hours for that thing.  Are you having trouble with it?  Is there something we can do to help you out?&#8221;  There are two things I really liked about this comment.  First it showed concern about the estimate, but there was no blame attached.  It wasn&#8217;t &#8220;Hey, you said it was going to take 6 hours and now you&#8217;re 3 days in.  Are you really working or are you playing around?&#8221;  It expressed real concern.  And secondly, it asked the right question: &#8220;Are you having a problem with accomplishing your task?&#8221;.  Even though the first developer wasn&#8217;t reporting an impediment, the second was making sure than there wasn&#8217;t an impediment.  This led to a discussion between the developers about why this task was taking so long.  It turned out that the first developer was waiting on live data (not staged) from one of our clients and couldn&#8217;t make much progress without the live data.  I was really glad to hear this conversation take place between the developers.  It clearly illustrated the maturity of the team members to work collaboratively to identify impediments to reaching their iteration goal.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/got-impediments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More about agile meetings</title>
		<link>http://edgehopper.com/more-about-agile-meetings/</link>
		<comments>http://edgehopper.com/more-about-agile-meetings/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 15:25:20 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,18dc7ca9-662c-4147-beea-bd1936c55544.aspx</guid>
		<description><![CDATA[I received several e-mail comments on my last post on agile meetings.  The most common was not about the cost of the meeting time, but about the inability of people to make all of the meetings.  Some of the comments suggested having a wiki or something similar to share the results of each meeting with [...]]]></description>
			<content:encoded><![CDATA[<p>I received several e-mail comments on my last post on <a href="http://www.chrisspagnuolo.com/2008/02/27/TheAgileMeetingDilemma.aspx">agile meetings</a>.  The most common was not about the cost of the meeting time, but about the inability of people to make all of the meetings.  Some of the comments suggested having a wiki or something similar to share the results of each meeting with team members who could not attend the daily stand ups etc.  Others suggested recording the meetings using conference calls or Webex-type recordings.  I would have to voice my opinion that I don&#8217;t think either of these are good ideas.  The daily stand up is an essential synchronization point for the team and should be attended by everyone everyday&#8230;unless there are really extenuating circumstances.  Planning meetings, reviews and retrospectives are equally important and demand the attendance of all team members.</p>
<p>There are three key points I&#8217;d like to make about documenting agile meeting minutes.  First, I believe that the more you enable people to not attend agile meetings the more you encourage the behavior.  If team members have no place to read about the meeting or hear a recording, they&#8217;re forced to attend the live meetings.  If team members can simply miss a meeting and read a wiki entry about the meeting, while adding their own update to the wiki, you&#8217;ve enabled and encouraged the behavior of missing meetings.</p>
<p>Secondly, in agile development, we focus on developing working software, not creating documentation.  I believe this extends to meeting minutes.  If we time-box a daily stand-up to 15 minutes, that should be all we spend on the meeting.  If we&#8217;re required to document the meeting for those that missed it, we&#8217;re spending valuable development time writing up the meeting minutes.</p>
<p>My final point is in regards to a collaborative, tight knit team.  If we enable people to miss meetings, we begin to degrade the collaborative team environment that agile practices thrive upon.  The daily stand-ups and other meetings are a chance for the team to communicate with each other.  It encourages a collaborative team environment.  If team members are enabled to regularly miss meetings, they&#8217;re less likely to feel a part of the team and less likely to commit to the team goal each iteration.</p>
<p>So, to wrap this up&#8230;.don&#8217;t enable people to miss meetings.  These meetings are crucial to the success or failure of your agile practices.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/more-about-agile-meetings/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The agile meeting dilemma</title>
		<link>http://edgehopper.com/the-agile-meeting-dilemma/</link>
		<comments>http://edgehopper.com/the-agile-meeting-dilemma/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 14:15:02 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,bacdcaac-4ef3-4b02-864b-d951f134044b.aspx</guid>
		<description><![CDATA[If you&#8217;ve been doing agile, and especially Scrum, you&#8217;re well aware of the meetings that are required to keep things running smoothly:  (1) the iteration planning session, (2) the daily stand ups, (3) the iteration review session, and (4) the iteration retrospective.  If you follow scrum by the book, a two-week iteration would include 18 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Theagilemeetingdilemma_12B07/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 5px 0px; border-right-width: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Theagilemeetingdilemma_12B07/image_thumb.png" border="0" alt="image" width="161" height="244" align="left" /></a> If you&#8217;ve been doing agile, and especially Scrum, you&#8217;re well aware of the meetings that are required to keep things running smoothly:  (1) the iteration planning session, (2) the daily stand ups, (3) the iteration review session, and (4) the iteration retrospective.  If you follow scrum by the book, a two-week iteration would include 18 hours of meeting time (8 hours for planning, 15 minute daily stand ups, 4 hours for review and 4 hours for a retrospective).  That&#8217;s 22.5% of an 80-hour schedule for an iteration that is consumed by meetings.  Many people argue that this is too much time spent in meetings over the lifetime of a project, especially if it&#8217;s an overhead or operational expense.  I don&#8217;t necessarily disagree.  However, these meetings are <strong><em>essential</em></strong> to effectively delivering value to clients and to the continuous improvement of a team&#8217;s agile practices.  So, how do you handle this dilemma of balancing meetings that enable practices with project budgets, etc.?  The answer: Use the scrum mantra &#8220;Inspect and Adapt&#8221;.</p>
<p>Our agile teams have examined our meetings and have effectively reduced our meeting time to the following: 2 hours for iteration planning, 15 minute daily stand-ups (and they&#8217;re usually shorter than that), 1 hour for our iteration review (usually shorter) and 1 hour for a retrospective (again, usually shorter).  This amounts to only 6 hours (or less) of meetings for every two week iteration or 7.5% of the iteration spent in meetings.  We think this is a manageable amount of time to dedicate to the various necessary activities of scrum to be both efficient and effective.   I think that anything shorter than these times would probably start affecting the value of these agile practices.  We are still planning without any problems and we are able to review two weeks worth of work in 1 hour or less with our clients.  We have also found that 1 hour is more than enough for our retrospectives.  Currently, we include these meetings in our project costs because we bid our projects as agile projects.  Our clients are aware of the value these meetings provide their final product.</p>
<p>So, based on our experience, I would suggest really examining the value of the meetings you use to keep your agile practices running.  If you and your team find that you are merely filling up time-boxes to do scrum by the book, inspect and adapt.  And remember, if you adapt your meeting times to be shorter and you are finding that you need more time for a review or for your planning session&#8230;inspect and adapt.  Scrum is an imperical &#8220;process&#8221;&#8230;keep experimenting with your meeting times until it feels right for you, your team and your product owner.  And, if you can agree with your client that these are project related costs that provide value and not overhead or operational costs, all the better for you and your client.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/the-agile-meeting-dilemma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In team we trust</title>
		<link>http://edgehopper.com/in-team-we-trust/</link>
		<comments>http://edgehopper.com/in-team-we-trust/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 14:06:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,1d94b7ab-6e6d-45e7-bda3-ae299faba453.aspx</guid>
		<description><![CDATA[I&#8217;ve been spending some time at the ESRI Petroleum User Group meeting this week in Houston.  I had the opportunity to speak with several people who were interested in agile practices.  One of them posed this question to me: &#8220;If you had to use one word to describe why your team found success with scrum, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been spending some time at the <a href="http://www.esri.com">ESRI</a> <a href="http://www.esri.com/industries/petroleum/community/pug.html">Petroleum User Group</a> meeting this week in Houston.  I had the opportunity to speak with several people who were interested in agile practices.  One of them posed this question to me: &#8220;If you had to use one word to describe why your team found success with scrum, what would it be?&#8221;.  I thought for a minute.  Hmmm&#8230;discipline sounds good, and that was almost my answer.  Then the right word popped into my head&#8230;trust.  On our team, there is a complete level of trust amongst all of our team members.</p>
<p>Trust works on several levels within our team.  There is the general trust in each other that when we commit to a backlog for an iteration, we will all work as hard as possible to complete those backlog items by the end of the iteration.  There also a level of trust that the scrum master and other team members will not judge team members at the daily stand up meeting or the retrospective.  This encourages an open communication of project successes and any impediments we are facing.  We report impediments not with the expectation of being looked at with suspicion, but being viewed as good.  If we can express our impediments openly, we all get better together&#8230;and that&#8217;s our key to success&#8230;trusting each other to raise issues and problems so that we can continually improve.  This also creates an atmosphere that is very conducive to true collaboration.</p>
<p>Although it sounds easy, trust is difficult to establish.  I shouldn&#8217;t really say difficult.  It&#8217;s that trust is not something you can just implement.  It grows over time and requires a mature team.  It also requires an organization that is willing to allow individuals to raise issues and problems in a judgement-free environment.  This is perhaps the biggest hurdle to trust.  Many organizations may be unwilling or unable to allow team members to express problems they uncover in the way a team works, etc., without a penalty.  True agile teams and organizations find ways to look at problems, issues, and dysfunctions as opportunities to grow and improve.  So, if I can give you one word to work towards as an agile team, it is TRUST.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/in-team-we-trust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s in your backlog?</title>
		<link>http://edgehopper.com/whats-in-your-backlog/</link>
		<comments>http://edgehopper.com/whats-in-your-backlog/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 16:43:47 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,becf6685-df21-4755-847f-04de4c0e04ca.aspx</guid>
		<description><![CDATA[This morning I was looking over several of our project backlogs and noticed something that really caught my attention.  In addition to user stories that addressed the functionality we are developing, our project teams have been adding stories to the backlog that have nothing to do with project tasks (or maybe they have everything to [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I was looking over several of our project backlogs and noticed something that really caught my attention.  In addition to user stories that addressed the functionality we are developing, our project teams have been adding stories to the backlog that have nothing to do with project tasks (or maybe they have everything to do with project tasks).  The stories are about improving processes and practices, organizational issues, team matters, and even the project structure.</p>
<p>I was really happy to see this.  It proved beyond a shadow of a doubt that our project teams are becoming mature agile practitioners.  They&#8217;ve realized that the issues uncovered in their retrospectives are important enough to warrant being put into a backlog.  This ensures that they won&#8217;t be ignored or forgotten about when the retrospective is over.  It puts the issues front and center and on par with development tasks.  And, it makes sure that we are actually going to do something about them within a time-boxed period.</p>
<p>So, what&#8217;s in your backlog?  Is your backlog filled with only development tasks or does it include stories about improving your team and your practices?  Take a look today and consider if you need to elevate these non-development stories to a higher level.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/whats-in-your-backlog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile market penetration</title>
		<link>http://edgehopper.com/agile-market-penetration/</link>
		<comments>http://edgehopper.com/agile-market-penetration/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 06:36:19 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,7776be6d-6fd4-44da-a942-782b04effdd1.aspx</guid>
		<description><![CDATA[I&#8217;ve been spending the past few days working in Cupertino in the heart of Silicon Valley.  As I look out my hotel room window, I can see below me the headquarters of Apple and Symantec.  This evening, I took a short drive to see the headquarters of Adobe, Google, HP, Intel, Yahoo and a few [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Agilemarketpenetration_147FF/image_14.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Agilemarketpenetration_147FF/image_thumb_6.png" border="0" alt="image" width="225" height="244" align="left" /></a> I&#8217;ve been spending the past few days working in Cupertino in the heart of <a href="http://en.wikipedia.org/wiki/Silicon_Valley">Silicon Valley</a>.  As I look out my hotel room window, I can see below me the headquarters of Apple and Symantec.  This evening, I took a short drive to see the headquarters of Adobe, Google, HP, Intel, Yahoo and a few others (OK, I was bored and a little geeked out by being here).  Spending time at the epicenter of the tech community had me asking the question, &#8220;<em>If agile has really gone mainstream, how many of these tech companies are using agile practices, and if they are using agile, how are they doing?&#8221;</em> When I got back to my hotel room, I Googled &#8220;agile adoption rates&#8221; and came across a <a href="http://www.ambysoft.com/surveys/agileMarch2007.html">survey</a> that <a href="http://www.ambysoft.com">Scott Ambler</a> did in March 2007 about the rate of agile adoption.  Scott received 781 responses to his interview and published his findings on his <a href="http://www.ambysoft.com">website</a> and in <a href="http://www.ddj.com/architect/200001986?cid=Ambysoft">Dr. Dobb&#8217;s</a>.  According to Scott, his key findings were:</p>
<ol>
<li> 69% of respondents indicated that their organizations are doing one or more agile projects.  Of those that hadn&#8217;t yet started, 24% believed their organizations would do so within the next year.</li>
<li> 44% indicated a 90%+ success rate at agile projects, 33% indicated between 75% and 90%.  It appears that agile seems to be working out.</li>
<li> Co-located agile projects are more successful on average than non-co-located, which in turn are more successful than projects involving offshoring.</li>
<li> 98.6% of agile teams worked adopted iterations, and 83% had iteration lengths between 1 and 4 weeks.</li>
<li> Smaller teams had higher success rates than larger teams.</li>
<li> 85% of organizations doing agile had more than one project completed, so it&#8217;s gone beyond the pilot project stage in most organizations.</li>
</ol>
<p>Of course, this led me to my inevitable question that has been dogging me for some time.  If the adoption rates are so high amongst the mainstream development community, why hasn&#8217;t the <a href="http://www.chrisspagnuolo.com/2007/12/19/AgileAdoptionInTheGISIndustry.aspx">GIS development</a> community gravitated toward <a href="http://www.chrisspagnuolo.com/2007/12/19/AgileAdoptionInTheGISIndustry.aspx">agile practices</a>?  I know I keep asking this, but it really worth exploring.  To those of you out there in the GIS community, I ask you: should we conduct a similar survey to Scott&#8217;s and find out just what the state of GIS development looks like?  I&#8217;d like to hear your thoughts on this as I am seriously considering undertaking a survey like this for the GIS community.</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/agile-market-penetration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baby steps into agile</title>
		<link>http://edgehopper.com/baby-steps-into-agile/</link>
		<comments>http://edgehopper.com/baby-steps-into-agile/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 06:22:12 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,a5c7f9a7-73a2-43ce-839a-aab9c3e65115.aspx</guid>
		<description><![CDATA[I was watching an old movie last night that I think is hysterical called &#8220;What About Bob?&#8221; starring Richard Dreyfus and Bill Murray.  Bill Murray plays a guy with tons of phobias.  Richard Dreyfus plays his doctor who is teaching him about taking baby steps to overcome his fears.  Bill Murray has one particular phobia [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/What-About-Bob-Bill-Murray/dp/B00004RJ73/ref=pd_bbs_sr_1?ie=UTF8&amp;s=dvd&amp;qid=1201500818&amp;sr=8-1"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 10px 0px 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/Babystepsintoagile_1489B/image_3.png" border="0" alt="image" width="96" height="147" align="left" /></a> I was watching an old movie last night that I think is hysterical called &#8220;<em><a href="http://www.amazon.com/What-About-Bob-Bill-Murray/dp/B00004RJ73/ref=pd_bbs_sr_1?ie=UTF8&amp;s=dvd&amp;qid=1201500818&amp;sr=8-1">What About Bob?</a></em>&#8221; starring <a href="http://www.imdb.com/name/nm0000377/">Richard Dreyfus</a> and <a href="http://www.imdb.com/name/nm0000195/">Bill Murray</a>.  Bill Murray plays a guy with tons of phobias.  Richard Dreyfus plays his doctor who is teaching him about taking baby steps to overcome his fears.  Bill Murray has one particular phobia about riding in elevators.  At one point in the movie, he decides to finally try getting on an elevator and says &#8220;Baby steps onto the elevator&#8230;baby steps into the elevator&#8230;I&#8217;m in the elevator&#8221; (the doors close) &#8220;HELLLLLLLLLLP!!!!!&#8221;.</p>
<p>Seeing that movie was the perfect impetus for me to write this post.  I&#8217;ve been doing a lot of thinking lately on how to take our company through the agile adoption process.  I&#8217;m thinking baby steps (minus the &#8220;Help!&#8221; scream hopefully).  Over the past few weeks I&#8217;ve spoken with a number of <a href="http://www.chrisspagnuolo.com/2008/01/17/AgileMindsJamesCoplienInterviewPartI.aspx">leading agile proponents</a> about what they would do to adopt agile in an enterprise and the answer has been a resounding &#8220;baby steps&#8221;.  I&#8217;m glad to hear that because that&#8217;s how our small development team first adopted agile ourselves.  I don&#8217;t believe that an organization can just throw the magic agile switch and change things overnight.  I think that agile has to be grown organically in a series of steps that help organizations successfully adopt and accept agile practices.</p>
<p>The first step our team took was just getting into the agile &#8220;flow&#8221;.  We instituted some basic practices to get our team into a good rhythm and to introduce agile concepts.  We decided to begin two-week iterations on a single project.  We already had some half-way decent requirements definitions for the work.  But, we didn&#8217;t start prioritizing, building user stories, assigning story points, playing planning poker or anything else.  We just started with a simple, two-week iteration in which we tried to decide what we could complete during that iteration.  We planned the iteration collaboratively and really committed to completing everything we bit off for that iteration.  We also started the practice of a daily stand-up, an iteration review, and a retrospective.  That&#8217;s it.  We did that for quite some time until the team was comfortable with the flow of an agile, iterative development style.  It was working well, and it seemed to fit for our team.</p>
<p>Once we became comfortable with our new agile practices, we started to slowly introduce others into the mix.  We began re-writing our requirements as user stories.  We started playing planning poker to estimate story points.  And, we began to track our velocity.  As the ScrumMaster, I started to really protect the team from distractions and did everything I could to remove impediments for them.  Again, that was it for quite some time.  When we were feeling good about those, we introduced our client to the idea of prioritizing his backlog of user stories (it was a fixed-scope fixed-price contract, but we thought this was a good exercise to learn from anyway).  We also started to really emphasize acceptance testing.  Once we were alright with this set of practices, we took a look at what we should be doing on the actual development side to become more agile.  We introduced continuous integration, daily builds, lite versions of paired programming.  Again, just a few small practices that helped us slowly become more agile.  Our next step was release planning.  Around that time, we introduced some <a href="http://www.chrisspagnuolo.com/2007/08/30/TearingUpTheSpreadsheetsourMoveToRallySoftware.aspx">tooling</a> for managing the projects (<a href="http://www.rallydev.com">Rally</a>) and we also began doing serious defect tracking and fixes with some tooling as well.  We had also decided to start implementing agile practices on some other projects that our team was responsible for.</p>
<p>When we felt that we had a handle on our own team, we started to evangelize to our peers and our organization.  The organization caught on after some convincing and started sending other project managers to <a href="http://www.agileuniversity.org/">Certified ScrumMaster training</a>.  We were going to start sending members of our team out onto other project teams to help coach and guide them in their adoption of agile practices.  However, we left our old organization before we got to realize the full enterprise adoption of agile, but we were well on our way to getting them there.</p>
<p>Now, with <a href="http://www.edats.com">our new company</a>, we get to do it again&#8230;and we&#8217;re much smarter from our previous efforts.  And our new company has an organizational culture which is very supportive of agile practices.  As we move through our adoption process, I&#8217;ll keep you posted on our progress, but I&#8217;m pretty sure we&#8217;ll be taking baby steps first.  Baby step into the flow&#8230;baby step into agile practices&#8230;we&#8217;re doing agile development!!!</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/baby-steps-into-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retrospectives: You live, you learn</title>
		<link>http://edgehopper.com/retrospectives-you-live-you-learn/</link>
		<comments>http://edgehopper.com/retrospectives-you-live-you-learn/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 15:17:23 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Agile Practices]]></category>

		<guid isPermaLink="false">http://www.chrisspagnuolo.com/PermaLink,guid,ec04e3be-4fc4-4d21-b4a0-6975c8a8c948.aspx</guid>
		<description><![CDATA[I recently came across a quote from one of my favorite authors, Pearl S. Buck.  She said: “One faces the future with one&#8217;s past.” Short, sweet and to the point.  The quote really struck a chord with me because our development team recently learned this lesson the agile way.  Last Friday, we completed the second [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/RetrospectivesYouliveyoulearn_D579/rear_view_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" src="http://www.chrisspagnuolo.com/content/binary/WindowsLiveWriter/RetrospectivesYouliveyoulearn_D579/rear_view_thumb.jpg" border="0" alt="rear_view" width="244" height="184" align="left" /></a>I recently came across a quote from one of my favorite authors, <a href="http://en.wikipedia.org/wiki/Pearl_S._Buck">Pearl S. Buck</a>.  She said:</p>
<p><em>“One faces the future with one&#8217;s past.”</em></p>
<p>Short, sweet and to the point.  The quote really struck a chord with me because our development team recently learned this lesson the agile way.  Last Friday, we completed the second iteration of an enterprise GIS development project and conducted a sprint review with our client.  To our dismay, we seemed to have been off the mark in terms of what the client was expecting.  The client seemed disappointed and our team was as well.</p>
<p>After the review, we conducted a team retrospective and the main topic was &#8220;Why did we miss the mark so badly?&#8221;.  It was the right question to ask and sparked a very open discussion.  We discovered that we had not adequately uncovered the business cases behind the user stories, that we had a communications gap with our client, and that we didn&#8217;t do a thorough review of the client&#8217;s existing application.  We then asked the question &#8220;What do we do to fix this?&#8221;.  We decided that at the following sprint planning session, we would discuss the user stories with our client again.  We decided to hit the problem head on and increase our communications with the client and thoroughly review the existing application.</p>
<p>On Tuesday, we held our scheduled sprint planning session with the client.  We gave our apologies for our missteps, emphasized the value of agile for helping catch this issue quickly and initiated a great, open, and collaborative planning session.  To our pleasure, the client had identified the same set of issues as our development team had  and came prepared to give a demo of the existing application.  They were also very patient answering the questions our developers had about the user stories. In the end, everyone walked away from the sprint planning meeting feeling that we were back on track.</p>
<p>We also walked away with the feeling that our agile practices had done their job.  They helped us raise any dysfunction to a visible level very quickly, and also allowed us to resolve those issues very quickly.   If we had been developing in a traditional waterfall fashion, we could have been 6 months into development along the wrong track before anyone realized there was a problem&#8230;and by then it would have been too late.  We would have had angry clients, a discouraged development team, and a failing project.  Instead, we face our future with the full understanding of our past mistakes, a satisfied client, and a motivated development team.  You live, you learn&#8230;</p>
<hr />© Copyright 2007, ChrisSpagnuolo.com GeoScrum! by Chris Spagnuolo is licensed under a Creative Commons Attribution 3.0 United States License.</p>
]]></content:encoded>
			<wfw:commentRss>http://edgehopper.com/retrospectives-you-live-you-learn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
