<?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>Heather McLean</title>
	<atom:link href="http://heathermclean.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://heathermclean.net</link>
	<description>Thoughts on agile methodologies and leadership.</description>
	<lastBuildDate>Wed, 20 Jan 2010 15:48:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Participation, success, and failure</title>
		<link>http://heathermclean.net/2010/01/participation-success-and-failure/</link>
		<comments>http://heathermclean.net/2010/01/participation-success-and-failure/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 15:46:02 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=204</guid>
		<description><![CDATA[Successful software projects require participation and commitment from both the stakeholders and the development team. All too often, business owners like to brainstorm a list of requirements, which is typically an unprioritized jumble of &#8220;must-haves&#8221; and &#8220;nice-to-haves&#8221; with no direction, then throw those over the wall to the IT department to implement in a vacuum. [...]]]></description>
			<content:encoded><![CDATA[<p>Successful software projects require participation and commitment from both the stakeholders and the development team. All too often, business owners like to brainstorm a list of requirements, which is typically an unprioritized jumble of &#8220;must-haves&#8221; and &#8220;nice-to-haves&#8221; with no direction, then throw those over the wall to the IT department to implement in a vacuum. Without ongoing feedback to determine priorities and success, any team dealing with this situation is bound to fail. Sadly, <a href="http://dnicolet1.tripod.com/agile/index.blog?entry_id=1982221" target="_blank">most teams accept this state without argument</a>, since that&#8217;s &#8220;just how things are&#8221; in the IT world.</p>
<p>True success requires an ongoing conversation between business and IT at the very least. In an ideal scenario, we can break down the traditional barriers between business and IT that have been erected in most organizations and quash the &#8220;us versus them&#8221; attitude. This typically means having a full-time product owner on the team who can provide direction and timely decisions regarding the product. It&#8217;s actually quite disheartening to see how many teams try to plow through a project without this crucial guidance. Is it any wonder that the customers are often disappointed with the end result?</p>
<p>What demoralizes the team even more at this point is that they are often blamed for not fulfilling or understanding the requirements they were given, and the stakeholders are seen as inculpable for the failure since they are certain that they provided all that was needed. This is simply not true; no matter how good your requirements, design documents, and project plans are, nothing is a substitute for ongoing, active participation with the people who are actually delivering the software.</p>
<p>I believe that most of this stems from <a href="http://infoworld.com/print/108477" target="_blank">the misguided notion of running IT as a business</a>—in other words, an internal vendor completely separate from the rest of the organization. This furthers the disconnect between the stakeholders and the product team and reinforces the artificial barriers I mentioned earlier. Also, the notion of &#8220;chargebacks&#8221; pushes the stakeholders to treat IT as they would an external vendor: with little trust and without direct participation. To fix this, IT must be integrated with the rest of the business in such a way as to be part of the team rather than a separate entity unto itself. Likewise, they must be given a healthy budget to do both maintenance and growth, just as if they were any other division of the company, rather than relying on chargebacks to fuel projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2010/01/participation-success-and-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If you build it, they will come</title>
		<link>http://heathermclean.net/2009/11/if-you-build-it-they-will-come/</link>
		<comments>http://heathermclean.net/2009/11/if-you-build-it-they-will-come/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 15:43:16 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=201</guid>
		<description><![CDATA[A post from Adam Martin inspired today&#8217;s deep thought. In his post, he refers to a form of product management strategy (or rather, anti-strategy) known as &#8220;pure, blind, Hope.&#8221; I&#8217;ve also heard this espoused more romantically as the &#8220;if you build it, they will come&#8221; approach, though that generally applies to an earlier point in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://t-machine.org/index.php/2009/11/21/whats-wrong-with-ea-ea-mythic-and-the-fail-of-war/" target="_blank">A post from Adam Martin</a> inspired today&#8217;s deep thought. In his post, he refers to a form of product management strategy (or rather, anti-strategy) known as &#8220;pure, blind, Hope.&#8221; I&#8217;ve also heard this espoused more romantically as the &#8220;if you build it, they will come&#8221; approach, though that generally applies to an earlier point in the product lifecycle. It&#8217;s a form of hubris that appears frequently at executive-level product management, though people at all levels can be guilty of it.</p>
<p>Generally what happens is that someone comes up with the &#8220;killer product idea,&#8221; and then pitches it with lots of pizazz and hooplah (typically accompanied by flashy PowerPoint slides) that show how awesome it is and how people are just dying to use it&#8230; without actually doing any hard research or formulating an actual plan. They convince the people holding the purse strings to fork over unthinkable sums of money to bring the project to market. Even if it doesn&#8217;t flop outright, the lack of vision will eventually sent it into a death spiral, and all the while management will continue to shovel money into the sinking ship in the hopes that a miracle will occur. It&#8217;s a bizarre form of product management that I&#8217;ve never quite understood even though I see it all the time. To a degree, it contributes to a &#8220;muck flinging&#8221; approach as well: management will continue to throw products at the wall until one of them sticks.</p>
<p>All of this could be avoided with an actual strategy for building and sustaining the product. Unfortunately, that does require the expenditure of brainpower and legwork to do some research. Important things to know before you ever begin are:</p>
<ul>
<li>What is the product&#8217;s purpose? Why are we doing this? (&#8221;Because it&#8217;s cool&#8221; can sometimes be a valid answer, but it shouldn&#8217;t be the only one.)</li>
<li>Who is going to use this product? How can we excite them about it and target those potential users specifically without necessarily spending gobs of money to blanket the market with advertising?</li>
<li>How do we make money off the product at launch? Or, how do we position ourselves to turn a profit later (without relying on additional infusions of capital, preferably)?</li>
<li>What happens after launch? Where is the product headed in 1 year? 5 years? 10 years?</li>
</ul>
<p>If those in charge of product development would sit down and answer these basic questions about their products instead of focusing on glitz and glamor, it would go far to stop the habit of dumping money into something that will only wilt and die. Even then, the strategy you came up with at the beginning may not be applicable later; I recommend re-answering these questions from scratch periodically so that you can adjust as needed.</p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/11/if-you-build-it-they-will-come/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why there are few women in IT, redux</title>
		<link>http://heathermclean.net/2009/10/why-there-are-few-women-in-it-redux/</link>
		<comments>http://heathermclean.net/2009/10/why-there-are-few-women-in-it-redux/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 02:01:07 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Culture]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=199</guid>
		<description><![CDATA[(To see where this started, go back to the first post.)
Mostly I just wanted to post a couple of articles from Bruce Byfield, specifically referencing sexism in the FOSS movement, but I think it applies to all of IT, or any technical field for that matter. I thought his arguments were presented in a very [...]]]></description>
			<content:encoded><![CDATA[<p>(To see where this started, go back to the <a href="http://heathermclean.net/2009/07/why-there-are-few-women-in-it/" target="_self">first post</a>.)</p>
<p>Mostly I just wanted to post a couple of articles from Bruce Byfield, specifically referencing sexism in the FOSS movement, but I think it applies to all of IT, or any technical field for that matter. I thought his arguments were presented in a very professional, non-confrontational manner. It&#8217;s not surprising that a lot of men take it as a personal attack, however.</p>
<ul>
<li><a href="http://itmanagement.earthweb.com/osrc/article.php/3838186/" target="_blank">Sexism: Open Source Software&#8217;s Dirty Little Secret</a></li>
<li><a href="http://www.linux-magazine.com/content/view/full/40376" target="_blank">Writing about FOSS sexism</a></li>
</ul>
<p>The second one is actually about the fallout from the first one, and what a fallout it was. I won&#8217;t even bother talking about the comments this time (specifcally I&#8217;m looking at Slashdot, here), since it would cause one to despair on the future of the human race. And I thought the comments over at the Register were bad! It should come as no surprise that the article itself got tagged &#8220;troll&#8221; by the mysoginistic members of the audience.</p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/10/why-there-are-few-women-in-it-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code available for download</title>
		<link>http://heathermclean.net/2009/10/code-available-for-download/</link>
		<comments>http://heathermclean.net/2009/10/code-available-for-download/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 01:49:38 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=197</guid>
		<description><![CDATA[My new Code page is now online, where you can download some of my little project exercises. You&#8217;ll find the REST web services project I talked about a few weeks ago, as well as a lightweight inversion of control container. I&#8217;m releasing these projects as public domain since they were really just exercises and not [...]]]></description>
			<content:encoded><![CDATA[<p>My new <a href="http://heathermclean.net/code/" target="_self">Code</a> page is now online, where you can download some of my little project exercises. You&#8217;ll find the <a href="http://heathermclean.net/2009/09/rest-in-net/" target="_self">REST web services project</a> I talked about a few weeks ago, as well as a lightweight inversion of control container. I&#8217;m releasing these projects as public domain since they were really just exercises and not full-fledged usable codebases.</p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/10/code-available-for-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>People or resources?</title>
		<link>http://heathermclean.net/2009/09/people-or-resources/</link>
		<comments>http://heathermclean.net/2009/09/people-or-resources/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 13:25:08 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=185</guid>
		<description><![CDATA[I was recently re-reading Martin Fowler&#8217;s article The New Methodology when I came across a passage that stuck with me:
One of the aims of traditional methodologies is to develop a process where the people involved are replaceable parts.  With such a process you can treat people as resources who are available in various types. [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently re-reading Martin Fowler&#8217;s article <a href="http://martinfowler.com/articles/newMethodology.html" target="_blank">The New Methodology</a> when I came across a passage that stuck with me:</p>
<blockquote><p>One of the aims of traditional methodologies is to develop a process where the people involved are replaceable parts.  With such a process you can treat people as resources who are available in various types. You have an analyst, some coders, some testers, a manager. The individuals aren&#8217;t so important, only the roles are important. That way if you plan a project it doesn&#8217;t matter which analyst and which testers you get, just that you know how many you have so you know how the number of resources affects your plan.</p>
<p>But this raises a key question: are the people involved in software development replaceable parts? One of the key features of agile methods is that they reject this assumption.</p></blockquote>
<p>One of my biggest pet peeves is when managers and planners refer to people as &#8220;resources.&#8221; I get this visual of a bunch of managers sitting around a table and trading little chits that represent people until everyone is happy with what they have, but all the chits are the same&#8230; just commodities to be pushed around from project to project.</p>
<p>When you treat people as interchangeable cogs in a machine, you miss several important factors about your team members:</p>
<ul>
<li><strong>People are not equivalent pieces.</strong> I refer you of course to the ever-popular book <a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959" target="_blank">The Mythical Man-Month</a> by Frederick Brooks. If I have estimated<sup>1</sup> that two people can do the work in six months, increasing that to four people does not mean that we will get it done in three months. Team members all have differing levels of expertise and productivity, differing skills and motivations; you must know how to leverage these individual talents rather than lumping them together as a whole.</li>
<li><strong>People bring the greatest benefits and the biggest hindrances to the project. </strong>When you reduce them to a column on a spreadsheet, you are naïvely discounting their individual personalities and quirks. People can have breakthroughs that cut development time in half. They can also have a family emergency and lose you a week of production.<sup>2</sup></li>
<li><strong>People are perceptive.</strong> They know when they&#8217;re being treated as faceless automatons rather than real human beings, and they will resent you for it. Don&#8217;t ever believe that your team members aren&#8217;t keenly aware of how you talk about them behind closed doors.</li>
<li><strong>People have preferences and motivations.</strong> Assigning people to tasks that they may be good at but hate is counter-intuitive. Yes, Bob may be a database whiz, but if he hates the reporting engine, assigning him to fixing the reports isn&#8217;t going to be the best utilization. Assign people to tasks that they enjoy, even if it&#8217;s not their strong suit; they&#8217;ll be more productive and learn a broader range of skills. Conversely, don&#8217;t let people pigeon hole themselves—ask them to branch out every once in a while and leave their comfort zones.</li>
<li><strong>People have lives beyond work.</strong> Don&#8217;t plan for people to have 100% attendance. Don&#8217;t even plan for them to work 40 hours per week. As I mentioned above, people are perceptive, and if they feel you are treating their personal lives as secondary to work, they will resent you for it, and morale and productivity will plummet.</li>
</ul>
<hr /><span style="font-size:8pt"><sup>1</sup>I&#8217;ll skip past the obvious argument for the moment that I shouldn&#8217;t be estimating for the team anyways.<br />
<sup>2</sup>This of course also points out another problem—trying to estimate too much ahead of time. People can and will ruin your project plan the moment you publish it, for better or worse.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/09/people-or-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fort Worth APLN Chapter Meeting &#8211; October 13, 2009</title>
		<link>http://heathermclean.net/2009/09/fort-worth-apln-chapter-meeting-october-13-2009/</link>
		<comments>http://heathermclean.net/2009/09/fort-worth-apln-chapter-meeting-october-13-2009/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 21:00:47 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=183</guid>
		<description><![CDATA[




The next meeting of the Fort Worth chapter of the APLN is on Tuesday, October 13, 2009. The speakers will be Ken Howard and Barry Rogers of Improving Enterprises.
Abstract: This highly interactive and fun session takes a refreshing look at the human element with actionable techniques that targets individuals and their interactions. Many believe that [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl id="attachment_165" class="wp-caption alignright" style="width: 142px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-165" title="APLN Logo" src="http://heathermclean.net/wp-content/uploads/2009/07/APLNLogo.png" alt="Agile Project Leadership Network" width="132" height="177" /></dt>
</dl>
</div>
<p>The next meeting of the Fort Worth chapter of the APLN is on Tuesday, October 13, 2009. The speakers will be Ken Howard and Barry Rogers of Improving Enterprises.</p>
<p><strong>Abstract:</strong> This highly interactive and fun session takes a refreshing look at the human element with actionable techniques that targets individuals and their interactions. Many believe that Agile is less about specific processes and tools and more about effective teams and productive communication. The first value of the Agile Manifesto emphasizes individuals and interactions yet everywhere you look the focus seems to be on processes and tools. Topics range from enhancing interpersonal communication (Tango) to effectively leveraging the anatomy of your team (Square Dance).</p>
<p>For more information, contact Charles Seaman at <a href="mailto:fortworthapln@gmail.com">fortworthapln@gmail.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/09/fort-worth-apln-chapter-meeting-october-13-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Perils of Upgrading</title>
		<link>http://heathermclean.net/2009/09/the-perils-of-upgrading/</link>
		<comments>http://heathermclean.net/2009/09/the-perils-of-upgrading/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 00:33:27 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Meta]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=170</guid>
		<description><![CDATA[After a while of putting it off, I finally upgraded my Wordpress installation tonight to the latest version. Sadly, I had a moment of silliness and accidentally deleted my wp-content folder, which contains all of my uploaded images among other things. I&#8217;ve restored a couple of them, the rest are on a different computer that [...]]]></description>
			<content:encoded><![CDATA[<p>After a while of putting it off, I finally upgraded my Wordpress installation tonight to the latest version. Sadly, I had a moment of silliness and accidentally deleted my wp-content folder, which contains all of my uploaded images among other things. I&#8217;ve restored a couple of them, the rest are on a different computer that I&#8217;ll have to get later. Luckily my site doesn&#8217;t have many images.</p>
<p>Just further proof that even supposedly brilliant people can make really dumb mistakes from time to time.</p>
<p><strong>Updated 9/11/09:</strong> Okay, looks like everything should be back in order now&#8230; at least until next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/09/the-perils-of-upgrading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>REST in .NET</title>
		<link>http://heathermclean.net/2009/09/rest-in-net/</link>
		<comments>http://heathermclean.net/2009/09/rest-in-net/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 15:52:45 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Personal Development]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=159</guid>
		<description><![CDATA[After a discussion of the merits of various web service technologies with a colleague of mine, I decided to do a little programming exercise. I felt I hadn&#8217;t really gotten to do any seriously complex programming in a while, so it was nice to exercise my brain a bit and learn some new things. I [...]]]></description>
			<content:encoded><![CDATA[<p>After a discussion of the merits of various web service technologies with a colleague of mine, I decided to do a little programming exercise. I felt I hadn&#8217;t really gotten to do any seriously complex programming in a while, so it was nice to exercise my brain a bit and learn some new things. I basically implemented a REST web service stack in .NET. It has both a server and client model. For the client, it&#8217;s as simple as decorating an interface:</p>
<pre name="code" class="c#">
[RestWebClient(Url = "http://local.yahooapis.com/MapsService/V1")]
public interface IYahooTrafficService : IRestWebService
{
    [RestNoun("trafficData", Method = RestHttpMethod.GET)]
    [return: RestReturnType(RestReturnType.Xml)]
    XmlDocument GetTrafficData(string appid, string street, string city, string state);
}
</pre>
<p>The example here uses the <a href="http://developer.yahoo.com/traffic/rest/V1/index.html" target="_blank">Yahoo Traffic Data API</a>. Once the interface is created, I can get a concrete instance through the RestWebClient factory:</p>
<pre name="code" class="c#">
IYahooTrafficService svc = RestWebClient.Create&lt;IYahooTrafficService&gt;();
XmlDocument xdoc = svc.GetTrafficData("YdnDemo", "1771 LBJ Fwy", "Dallas", "TX");
</pre>
<p>And voila! Traffic data:</p>
<div id="attachment_172" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-172" title="Yahoo! Traffic Data" src="http://heathermclean.net/wp-content/uploads/2009/09/trafficdata-300x202.png" alt="Example of output from the Yahoo! Traffic Data API." width="300" height="202" /><p class="wp-caption-text">Example of output from the Yahoo! Traffic Data API.</p></div>
<p>Pretty simple, and it works with a variety of REST interfaces. It can also handle complex types through XML and binary serialization as well as straight binary streams, such as image files. The server piece works similar to the client; decorate a class with attributes to describe the service contract, and an HttpHandler does the rest.</p>
<p>This was particularly challenging on the client piece because I had to learn the <a href="http://msdn.microsoft.com/en-us/library/system.reflection.emit.aspx" target="_blank">System.Reflection.Emit</a> namespace, which I had never used before, and it requires an in-depth knowledge of <a href="http://en.wikipedia.org/wiki/Common_Intermediate_Language" target="_blank">MSIL</a>. So that was difficult at first, frustrating most of the time, and rewarding in the end.</p>
<p>At some point I would like to clean up the code and release it as open source. Some other folks might actually find it useful. It definitely needs some heavy refactoring first, though.</p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/09/rest-in-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Addition to the blogroll</title>
		<link>http://heathermclean.net/2009/08/addition-to-the-blogroll/</link>
		<comments>http://heathermclean.net/2009/08/addition-to-the-blogroll/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 14:06:19 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=157</guid>
		<description><![CDATA[Just wanted to point out a new addition to my blogroll: Viva la Scrumvolucion!!
This is the brand new blog of a great colleague of mine, Harry Long, one of the best Scrum Masters and Project Managers I&#8217;ve ever worked with. The blog is presented in both Spanish and English, so any of you out there [...]]]></description>
			<content:encoded><![CDATA[<p>Just wanted to point out a new addition to my blogroll: <a href="http://scrumvolucion.blogspot.com/" target="_blank">Viva la Scrumvolucion!!</a></p>
<p>This is the brand new blog of a great colleague of mine, Harry Long, one of the best Scrum Masters and Project Managers I&#8217;ve ever worked with. The blog is presented in both Spanish and English, so any of you out there that prefer Spanish as a primary language will be pleased to see agile discussion in your native tongue.</p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/08/addition-to-the-blogroll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Waste</title>
		<link>http://heathermclean.net/2009/07/waste/</link>
		<comments>http://heathermclean.net/2009/07/waste/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 14:00:18 +0000</pubDate>
		<dc:creator>Heather</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://heathermclean.net/?p=143</guid>
		<description><![CDATA[&#8220;Waste&#8221;—it&#8217;s an ominous word by itself, and in the world of Lean principles, it&#8217;s the one thing you&#8217;re striving to eliminate. Waste can be defined as that which adds no value to a project; i.e., those things that you are spending time and money doing, but they don&#8217;t move the project forward. Software projects are [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Waste&#8221;—it&#8217;s an ominous word by itself, and in the world of Lean principles, it&#8217;s the one thing you&#8217;re striving to eliminate. Waste can be defined as that which adds no value to a project; i.e., those things that you are spending time and money doing, but they don&#8217;t move the project forward. Software projects are often full of waste, and in such an imprecise discipline, it can be difficult to identify the sources of waste. In fact, a lot of times we end up running in circles, attempting to clean up the symptoms rather than the causes.</p>
<p>In my experience, the one largest source of waste that can be eliminated or reduced to add immediate benefit to a project is <strong>rework</strong><sup>1</sup>. Rework falls into two major categories:</p>
<ul>
<li>Technical debt</li>
<li>Defects</li>
</ul>
<p><span id="more-143"></span>Technical debt refers to those shortcomings in the design of the software that we accept that we will have to address at a later date. This often comes as a result of running out of time in any given iteration; as we cut corners, quality suffers, and technical debt mounts<sup>2</sup>. Defects, on the other hand, are unintended consequences or misunderstood requirements; that is, they are unforeseen problems with the software that must be addressed immediately. The ratio of the two varies from project to project, but since defects often require immediate consideration, they tend to have a disproportionate effect on the deliverable date.</p>
<p>Of course, the obvious solution is to write bug-free code. That&#8217;s what we want to do anyways, right? Admirable, yes, but not practical in the least. It is impossible to write code that is free of defects, as it would at its very base require a product owner and development team that are somehow psychically linked as well as infallible. However, it is possible to reduce the number of defects by following some very simple principles. This list is by no means comprehensive, but it should give you a starting point.</p>
<p><strong>Limit work in progress.</strong> Each developer should really not be working on more than one or two tasks simultaneously in most situations. Focus increases reliability.</p>
<p><strong>Reduce &#8220;crunch.&#8221;</strong> It should be obvious at this point to both developers and managers that there is a diminishing return on hours worked. Try to take on realistic commitments for each development iteration and avoid working large amounts of overtime if at all possible.</p>
<p><strong>Pair programming.</strong> This is a highly useful tool not only for developers to check each other but also a developer and a quality/business analyst to check each other. Your team will think you&#8217;re weird at first for asking for such an odd pairing, but I&#8217;ve done this before, and it can be highly valuable to have someone who understands the business and requirements working with the developer up front. This also increases utilization of QA resources that often sit idle until the end of an iteration.</p>
<p><strong>Engage QA earlier.</strong> Frequently in agile environments we fall into the trap of doing &#8220;mini-waterfall.&#8221;<sup>3</sup> That is, we do a design and specification phase during sprint planning, then the coders spend a bunch of time doing heads-down work to meet sprint objectives, and then they finally throw their deliverables over the wall to the QA team at the very last minute. If you find this to be a frequent problem, then break your tasks down into even smaller chunks that can be completed and delivered without utilizing the entire sprint for each one.</p>
<p><strong>Inclusive design.</strong> Always strive to include the entire team in design and specification meetings. It&#8217;s a simple fact that if more people are involved, more problems are likely to be uncovered before development even starts. The team as a whole should have a keen understanding of the entire project, even parts they may not be responsible for. If you find that this inclusiveness is eating up too much time, it&#8217;s most likely because your team is too large or your meetings are not staying focused.</p>
<p><strong>Daily updates.</strong> The daily status or &#8220;stand up&#8221; meeting is one of the core principles of Scrum. Even if you&#8217;re not practicing Scrum (or any agile methodology for that matter), I highly recommend daily updates. A focused, repeated meeting to keep everyone up-to-date on the team&#8217;s progress can help the team be aware of its progress as a whole as well as help identify and address problems mid-stream rather than at the end.</p>
<p><strong>Visibility.</strong> Another principle of Scrum, task boards and burn-down charts can also help the team with understanding where it is. Whatever the actual implementation, it should be a highly visible cue into everyone&#8217;s projects and the overall health of the project. Increased visibility reduces one of the most frustrating defects—items that we just plain forgot about.</p>
<hr /><span style="font-size:80%"><sup>1</sup><a href="http://itmanagement.earthweb.com/entdev/article.php/3830426" target="_blank">Software Development and The War on Muda</a><br />
<sup>2</sup><a href="http://www.noop.nl/2009/07/commit-to-sprint-planning-or-definition-of-done-not-both.html" target="_blank">Commit to Sprint Planning or Definition of Done, Not Both</a><br />
<sup>3</sup><a href="http://www.agilegamedevelopment.com/2009/02/how-long-should-sprint-be.html" target="_blank">How long should a sprint be?</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://heathermclean.net/2009/07/waste/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
