<?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>Transient Technology &#187; schedule</title>
	<atom:link href="http://martinaharris.com/tag/schedule/feed/" rel="self" type="application/rss+xml" />
	<link>http://martinaharris.com</link>
	<description>Next time you look it might be gone</description>
	<lastBuildDate>Tue, 24 Jan 2012 18:14:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estimates are not commitments!</title>
		<link>http://martinaharris.com/2010/02/esti-no-commit/</link>
		<comments>http://martinaharris.com/2010/02/esti-no-commit/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 05:00:28 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[scrum and agile]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[commitments]]></category>
		<category><![CDATA[cone-of-uncertanty]]></category>
		<category><![CDATA[estimation]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[peopleware]]></category>
		<category><![CDATA[phony-deadline]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[planning-poker]]></category>
		<category><![CDATA[points]]></category>
		<category><![CDATA[schedule]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[story]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=752</guid>
		<description><![CDATA[Probably one of the most common mistakes in Software Development is to allow Estimates to become Commitments.  This article looks at story point estimation in scrum, and how velocity is a better tool for monitoring progress through to delivery.  If your interested in the arguments that can be presented to the business for velocity metrics over estimation for setting delivery dates, read on.  <a href="http://martinaharris.com/2010/02/esti-no-commit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_771" class="wp-caption alignleft" style="width: 310px"><a href="http://martinaharris.com/wp-content/uploads/2010/02/velocity.png"><img class="size-full wp-image-771" title="velocity over estimates anyday" src="http://martinaharris.com/wp-content/uploads/2010/02/velocity.png" alt="Velocity, the new estimate" width="300" height="186" /></a><p class="wp-caption-text">Cambodia, Phnom Penn, the water festival: Martin Harris</p></div>
<p>Probably one of the most common mistakes in Software Development is to allow <a title="Estimates" href="http://en.wikipedia.org/wiki/Estimate" target="_blank">Estimates</a> to become <a title="Commitment" href="http://en.wikipedia.org/wiki/Commitment" target="_blank">Commitments</a>.  I am sure you know the following scenario all too well.  The development team is called into a meeting room and asked the following question.  <strong>We (the management team) have had a look at the estimates, and your tasks on average are taking longer.</strong> The insinuation is that the development team is, <strong>stupid</strong> or perhaps <strong>lazy</strong>.  Worse still, an individual is called in because the stats show their work is <strong>&#8220;Behind Schedule&#8221;</strong> as judged by the estimates.  The problem is none of this though, the problem is believing that estimates are anything other than an educated guess.</p>
<p><span id="more-752"></span>The most likely outcome of this is a dissatisfied manager requesting for more hours to be worked.  This pressure normally results in dissatisfied team members and a drop in morale.  Its likely outcome a drop in productivity.  Extreme cases result in high turnover of staff as they leave in search of more enlightened projects.  In addition developers drop quality to meet the deadline.  This code is unmaintainable in the future as corners have been cut just to get it working.  So the initial surge in productivity results in slower progress ongoing.  Watch the defect rates, your teams will spend more time fixing than producing new work.</p>
<p>In actual fact what does the business require of our Software Development services that has lead to the belief in estimates?  We need to know when something will be delivered.  In some cases we demand that at all cost something will be delivered.  The book <a title="Peopleware" href="http://en.wikipedia.org/wiki/Peopleware:_Productive_Projects_and_Teams" target="_blank">Peopleware</a> by DeMarco and Lister describes this as <strong>The Phony Deadline</strong>.  Poor delivery is the result of picking a phony deadline.  Yes you got something, but it might not work quite as expected.</p>
<h2>I still want that delivery date, what can be done?</h2>
<p>Have it you shall, but not straight away.  Now I have spent the last few paragraphs showing how estimates poison the team and reduce product quality.  In the next section lets look at the relationship between our team and the sponsors.</p>
<p>A collection of estimates can be used to provide the paying customer with an inaccurate delivery date.  So given that the average customer has problems with the definition lets re-brand estimates as guesses, educated or otherwise.  There are two important things that a software development team needs to provide the business.</p>
<ol>
<li>The contents of a delivery.</li>
<li>A delivery date.</li>
</ol>
<p>There are only three variables in delivery, time, cost and scope.  Cost is most often set in stone at this stage, scope can be negotiated and time has an awful habit of not sticking to the rules.  The trick is to use our guesses to address the content of the delivery instead of the go live date.  For delivery date we will record story velocity over the first few tasks and use that to extrapolate the delivery date.  We will carry on tracking velocity and the <a title="The Cone of Uncertanty explained" href="http://www.construx.com/Page.aspx?hid=1648" target="_blank">cone of uncertanty</a> will get tighter, leading in turn to a more accurate date.  Commitments can be made on that date once you move into the cone and the variance diminishes.  This can be problematic to the business at first because the date is non existent at the start, and as you begin to track reports will vary.  This will settle down, especially if you try to keep other variables consistent.  So stop mucking about with the team makeup and the iteration size, concentrate on tracking the work accurately.  Once you have a few releases over, you will find that velocity is a much better way to work out delivery dates.</p>
<p>The business I currently work in uses techniques like this in many financial metrics.  Take a look at how interest rates are set for a year.  Obviously its impossible to know what will happen to interest rates over the course of a year.  We might start at 2% and rise to 2.5% or perhaps not.  News on the economy gives some indication in the short term as to what might happen to the rates.  These news clips cause the market to react and the closer we get to the end of the year, the more likely we are to be able to guess the final rate across the year.</p>
<p>So what is so bad about using story velocity metrics to gain more accurate estimates of how many stories a team can complete in a delivery cycle?  To further improve things we might also consider smaller delivery cycles and standardizing story and task sizes as much as possible.</p>
<h2><span style="text-decoration: line-through;">Estimates</span> guesses still have value don&#8217;t they?</h2>
<p>So where do the guesses come in?  Lets use a relative estimation system instead of a time based one.  In scrum these are known as <a title="Story Points" href="http://en.wikipedia.org/wiki/Story_points" target="_blank">story points</a>.  Please do read that link it is probably the best description I have ever come across.  Many thanks to the authors.   The idea behind point-based estimation is to agree that at the beginning we have much uncertainty and ambiguity.  Even if we spent extra time on analysis of the problem, we would still be uncertain and much ambiguity would remain.  Points are relative to each other and are all about size of stories over time.  This is much easier to deal with as a developer.  People are comparators, we do that all the time.  This makes us much better at saying if one task is bigger than another.  Especially if we have done similar stories before.  So points are a weighted system to grade stories into a set of different sises.</p>
<p>Now we need some kind of system to help us standardize the size of the boxes.  In scrum a technique knows as <a title="Planning Poker" href="http://en.wikipedia.org/wiki/Planning_poker" target="_blank">planning poker</a> helps with this.  Planning poker gives us a set of cards representing the relative weight of a story.  Normally 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100.  When estimating your thinking goes something like,</p>
<blockquote><p>Mmm well I have done something a bit like this before, that was a 20 but this is a bit more complex, now is it a 40 well that&#8217;s double&#8230;and this feels a bit bigger but not double.  So I will plump for a 20.</p></blockquote>
<p>So as you see the numbers are important as the weighting is designed to help grade the story into standard size boxes.  The other important thing is the whole team takes part in the planning so you get a graded average.  This has a side effect, the team members start to appreciate the effort involved across the full spectrum of work.</p>
<h2>So then, that delivery date?</h2>
<p>If your able to try and run an iteration or two before giving a delivery date.  Track how many stories you can complete in an iteration and use that to project forward and arrive at a date.  Explain to the business that you will review this date with them on a regular basis and that it will get more accurate as velocity settles down.  A little like the speculation over the next interest rate announcement.  One problem is the initial project stories are often very different from latter ones.  Usually due to building and setting up initial architecture and development environment.</p>
<p>Another idea at the initial stage is to break out a random selection of stories into tasks and estimate / guess those.  Calculate an estimated velocity and explain to the business that you can&#8217;t commit to this date and once more accurate statistics come in you will review the new date with them.</p>
<p>So finally your left with no fixed date.  The honest thing to do is to explain how consistent velociy will ultimatly give a <a title="Story points consistent with task estimation" href="http://www.stateofflow.com/journal/51/estimation-xperiment" target="_blank">better reporting picture</a> This is going to be a sticking point I assure you.  In the past it might have been easy to just give a date to the business.  Chuck in some contingency for good measure.  This is a very bad practice indeed.  If you do miss that deadline you loose the customers confidence.  If you manage the politics better by de-scoping your just going to erode that confidence slower.  At first explaining your system will give them a date that gets more accurate the nearer you get might not go down that well.  I can assure you though that once you get more accurate velocity and that date moves around less the business will gain a profound confidence in the system.  After all soon your dates will be the best ones they have ever had.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F&amp;title=Estimates+are+not+commitments%21" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F&amp;title=Estimates+are+not+commitments%21" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F&amp;title=Estimates+are+not+commitments%21" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F&amp;headline=Estimates+are+not+commitments%21" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Estimates+are+not+commitments%21&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Estimates+are+not+commitments%21&amp;u=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Estimates+are+not+commitments%21&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Estimates+are+not+commitments%21&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Estimates+are+not+commitments%21&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F&amp;title=Estimates+are+not+commitments%21&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F02%2Festi-no-commit%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2010/02/esti-no-commit/';
var dzone_title = 'Estimates are not commitments!';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2010/02/esti-no-commit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

