<?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>Steve Bockman &#187; Examining Agile Practices</title>
	<atom:link href="http://stevebockman.com/blog/category/examining-agile-practices/feed/" rel="self" type="application/rss+xml" />
	<link>http://stevebockman.com/blog</link>
	<description>Agile Software Development, Training and Coaching</description>
	<lastBuildDate>Thu, 28 Jan 2010 02:30:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Why Satisfy the Customer?</title>
		<link>http://stevebockman.com/blog/2010/01/27/why-satisfy-the-customer/</link>
		<comments>http://stevebockman.com/blog/2010/01/27/why-satisfy-the-customer/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 02:30:29 +0000</pubDate>
		<dc:creator>stevebockman</dc:creator>
				<category><![CDATA[Examining Agile Practices]]></category>

		<guid isPermaLink="false">http://stevebockman.com/blog/?p=194</guid>
		<description><![CDATA[Should satisfying the customer be the number one goal of your business? Almost.
The first principle in the Agile Manifesto states:
&#8220;Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.&#8221;
Now, I don&#8217;t know anyone, nor have I ever heard of anyone, who spoke out against the concept of satisfying the customer. [...]]]></description>
			<content:encoded><![CDATA[<p>Should satisfying the customer be the number one goal of your business? Almost.</p>
<p>The first principle in the Agile Manifesto states:</p>
<p><em>&#8220;Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.&#8221;</em></p>
<p>Now, I don&#8217;t know anyone, nor have I ever heard of anyone, who spoke out against the concept of satisfying the customer. Look at any company&#8217;s mission statement and you&#8217;re likely to find a phrase in there like &#8220;the customer is our top priority&#8221; or &#8220;customer satisfaction is our number one goal.&#8221; Is there anyone who hasn&#8217;t heard the expression, &#8220;the customer is always right&#8221;?</p>
<p>And it&#8217;s a fine sentiment. Satisfying the customer is a good thing. But is satisfying the customer really the main goal of your business? I&#8217;d guess not. You could satisfy your customer by, for example, giving away your goods or services for free. Talk about satisfaction! (At least for your customer. You would probably not be quite as happy about it for very long.)</p>
<p>That&#8217;s not to say that satisfying the customer is not your top <em>personal</em> priority. It may very well be, as we tend to derive a lot of personal satisfaction from satisfying others.</p>
<p><em>But the main goal of a for-profit business is to make money</em>. For many the goal is not just to make money, but to make <em>more</em> money. Satisfying the customer is simply an effective means to that end.</p>
<p>I don&#8217;t mean this in a cynical way, mind you. I run a business, and I want it to make money. No apologies. And it really helps to remember that <em>if I want to make money, I must satisfy my customers</em>. That direct association is a lot more meaningful to me, especially when it comes to making business decisions.</p>
<p>So, then, how is it that satisfying the customer helps your business make money? Through repeat business and referrals. If a customer comes back, that&#8217;s more money for you. If a customer recommends you to someone else, and you get them as a customer, that&#8217;s more money for you. If this keeps up, you stay in business.</p>
<p>But disappoint your customer, and your customer goes away. Even if you&#8217;re currently a sole source for a customer, as soon as another, more satisfactory provider appears, you&#8217;ve lost a customer. And even while you&#8217;ve still got that captive customer, will that customer recommend you?  Would you?</p>
<p>So how can <em>early and continuous delivery of valuable software </em>satisfy your customer? By helping your customer make money. Remember, your customer is also running a business, and the goal of that business, just like yours, is to make money. Early delivery of valuable software to your customer can help them start earning sooner. Continuous delivery of valuable software to your customer can help them adapt to a changing market.</p>
<p>And what makes software valuable? Simply put, software is valuable if the cost of the software is substantially less than the cost of the problem it solves. So if you can provide your customer with a software solution that costs substantially less than the problem you&#8217;re solving, your customer makes money and is likely to be satisfied. The earlier and more often you do that, the more satisfied your customer will be.</p>
<p>So in addition to the first principle of the Agile Manifesto, you might also consider applying a business-oriented version of the &#8220;oxygen mask rule&#8221;:</p>
<p><em>&#8220;We take care of our business first, so that we can continue to provide valuable software to our customers.&#8221;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://stevebockman.com/blog/2010/01/27/why-satisfy-the-customer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why Estimate?</title>
		<link>http://stevebockman.com/blog/2009/07/11/why-estimate/</link>
		<comments>http://stevebockman.com/blog/2009/07/11/why-estimate/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 19:42:12 +0000</pubDate>
		<dc:creator>stevebockman</dc:creator>
				<category><![CDATA[Examining Agile Practices]]></category>

		<guid isPermaLink="false">http://stevebockman.com/blog/?p=104</guid>
		<description><![CDATA[Much has been written on the subject of how to estimate the effort involved in developing software products. Some Agile teams use Story Points as their estimation units. Others estimate in Ideal Days. Still others use one of these plus Task Hours to help refine their estimates. Planning Poker is a popular method for quickly arriving at [...]]]></description>
			<content:encoded><![CDATA[<p>Much has been written on the subject of <em>how</em> to estimate the effort involved in developing software products. Some Agile teams use Story Points as their estimation units. Others estimate in Ideal Days. Still others use one of these plus Task Hours to help refine their estimates. <a title="Planning Poker" href="http://en.wikipedia.org/wiki/Planning_poker" target="_blank">Planning Poker</a> is a popular method for quickly arriving at group consensus on estimates.</p>
<p>My own earliest attempts at estimating predate the Agile era by a couple of decades. In the beginning I used a technique that has probably been tried (with varying degrees of success) by many others:</p>
<ol>
<li>Break the development effort into as many small tasks as you can think of</li>
<li>Estimate each of the tasks in hours</li>
<li>Add all the estimates together</li>
<li>Apply sufficient &#8220;padding&#8221; for comfort</li>
<li>Hope the boss buys it</li>
</ol>
<p><strong>Estimation&#8217;s main purpose</strong></p>
<p>There&#8217;s no doubt that the more recent Agile estimating techniques are much better than what I started out with, and I&#8217;m glad that so much effort has been put into developing these methods. Even so, I believe it&#8217;s easy to lose sight of the <em>purpose</em> behind estimating, which can be summarized as follows:</p>
<p><em>The purpose of estimating is to provide the customer with a predictable development schedule.</em></p>
<p><em>Predictable</em> is the operative word here. With a truly predictable schedule, the customer can derive the information that is most important from his or her point of view. Given a predictable schedule, the customer can answer important questions, such as:</p>
<ul>
<li>How much will this development cost?</li>
<li>Will we be able to hit the market window?</li>
</ul>
<p>In other words, the customer is probably not interested in the accuracy or precision of your estimates in and of themselves. The customer is more likely interested in the predictive power of your estimates. Given that, you want to focus your estimating efforts on things that provide predictability.</p>
<p><strong>Duration should be derived, not estimated</strong></p>
<p>I like to encourage teams to focus on estimating User Stories in Story Points, and to discourage them from estimating tasks at all, largely because coming up with Task Hours doesn&#8217;t seem to contribute much to the goal of providing the customer with a predictable schedule. Admittedly, estimating Task Hours may help to inform the team about how good or bad it is at estimating duration, but that&#8217;s a metric that&#8217;s not directly useful to the customer.</p>
<p>What <em>is </em>directly useful is duration that is derived from a team&#8217;s demonstrated velocity. Given a velocity in units of Story Points per iteration, plus knowledge of how many Story Points remain in a development effort, the customer can quickly and easily predict the development schedule.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevebockman.com/blog/2009/07/11/why-estimate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is &#8220;The Simplest Thing That Could Possibly Work&#8221;?</title>
		<link>http://stevebockman.com/blog/2009/07/11/what-is-the-simplest-thing-that-could-possibly-work/</link>
		<comments>http://stevebockman.com/blog/2009/07/11/what-is-the-simplest-thing-that-could-possibly-work/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 19:39:27 +0000</pubDate>
		<dc:creator>stevebockman</dc:creator>
				<category><![CDATA[Examining Agile Practices]]></category>

		<guid isPermaLink="false">http://stevebockman.com/blog/?p=101</guid>
		<description><![CDATA[Anyone with even the slightest exposure to eXtreme Programming has heard the phrase &#8220;do the simplest thing that could possibly work.&#8221; While this precept is typically applied during the process of writing code, I&#8217;ve also heard it mentioned during design discussions. I bring it up myself during estimation sessions as a reminder to estimate the [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone with even the slightest exposure to eXtreme Programming has heard the phrase &#8220;do the simplest thing that could possibly work.&#8221; While this precept is typically applied during the process of writing code, I&#8217;ve also heard it mentioned during design discussions. I bring it up myself during estimation sessions as a reminder to estimate the simplest implementation of a user story one can imagine.</p>
<p>I&#8217;ve also heard it misquoted as &#8220;do the <em>easiest</em> thing that could possibly work&#8221; and even &#8220;do the <em>quickest</em> thing that could possibly work.&#8221;</p>
<h4>It&#8217;s not necessarily the easiest thing</h4>
<p>Although the <em>simplest</em> thing that could possibly work might sometimes also be the <em>easiest</em> thing, it often is not. For example, the easiest thing might be to copy and paste a section of code in order to duplicate its functionality in another part of a program. But is that the simplest thing? I believe it is not.</p>
<h4>It&#8217;s not necessarily the quickest thing</h4>
<p>The <em>simplest</em> thing that could possibly work might sometimes also be the <em>quickest</em> thing, but there aren&#8217;t any guarantees. The use of short variable and method names might be quicker (because it saves typing time) than the use of longer, more meaningful names, but is it simpler? Again, I don&#8217;t think so.</p>
<h4>What does simple mean?</h4>
<p>Here&#8217;s my working definition: Something that is simple is neither <em>complex </em>(meaning having more parts) nor <em>complicated</em> (meaning difficult to understand).</p>
<p>In the first example above, the easiest thing is not the simplest thing because doing the easiest thing (rubber-stamping the code) introduces <em>complexity</em>.</p>
<p>In the second example above, the quickest thing is not the simplest thing because doing the quickest thing (using short names) introduces <em>complication</em>.</p>
<h4>Conclusion</h4>
<p>If you want to do the simplest thing that could possibly work, look for a solution that is both <em>easy to understand</em> and <em>lacking in unnecessary complexity</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevebockman.com/blog/2009/07/11/what-is-the-simplest-thing-that-could-possibly-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
