<?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>Building Better Software &#187; Estimation</title>
	<atom:link href="http://www.stellman-greene.com/category/estimation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stellman-greene.com</link>
	<description>because people want their software to work</description>
	<lastBuildDate>Sat, 05 Nov 2011 14:19:07 +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>It&#8217;ll take about three weeks&#8230;</title>
		<link>http://www.stellman-greene.com/2008/03/20/itll-take-about-three-weeks/</link>
		<comments>http://www.stellman-greene.com/2008/03/20/itll-take-about-three-weeks/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 20:06:10 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/2008/03/20/itll-take-about-three-weeks/</guid>
		<description><![CDATA[If you&#8217;ve been reading our posts here, you probably noticed that we like to give our &#8220;Why Projects Fail&#8221; talk. (If you&#8217;re curious, here&#8217;s a link to the slides [PDF].) One reason we really like it is that it seems to go over well with a lot of different audiences, from hard-core architects and programmers [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been reading our posts here, you probably noticed that we like to give our &#8220;Why Projects Fail&#8221; talk. (If you&#8217;re curious, <a href="http://www.stellman-greene.com/Why_Projects_Fail.pdf">here&#8217;s a link to the slides [PDF]</a>.) One reason we really like it is that it seems to go over well with a lot of different audiences, from hard-core architects and programmers to grey-haired project managers. It&#8217;s a pretty informal talk &#8212; we interrupt each other and go off on the occasional tangent, which keeps the mood pretty light. And that&#8217;s always a good thing, especially when you&#8217;re doing a talk to people at a PMI meeting or a user group who just spent the day at work and don&#8217;t need to sit through yet another boring slide presentation.</p>
<p>I was thinking about that presentation yesterday, after getting off the phone with a manager at a company that wants to hire us to do <a href="http://www.stellman-greene.com/training">software estimation training</a> for their programmers. One problem that they&#8217;re having is a pretty common one. Their programmers, testers, and even project managers seem reluctant to give estimates. That reminded me of this slide from the talk:</p>
<p><img src="http://www.stellman-greene.com/blog/wp-content/uploads/2008/03/why-projects-fail-team-slide.png" alt="Things the team should’ve done slide" /></p>
<p>When we get to this slide in the talk, I usually say something like this:</p>
<blockquote><p>There&#8217;s something we call the &#8220;about three weeks&#8221; problem. Have you ever noticed that when you ask a programmer how long it&#8217;ll take to do something, it&#8217;s always going to take &#8220;about three weeks&#8221;? I&#8217;ve done it myself many times over the last fifteen years or so. How long to build a simple website to do a few calculations? About three weeks. What about a utility that will automate some file operations and generate a few reports? About three weeks. A new feature for our core product? Sure, it&#8217;ll take about three weeks. See, the problem is that three weeks seems like a long enough time to get something significant done. And if you think for thirty seconds about pretty much any programming project, you can do enough hand-waving and ignore enough details so that it&#8217;ll seem to fit into about three weeks.</p></blockquote>
<p>What does this have to do with why programmers are so reluctant to give estimates?</p>
<p>There are many reasons for this, more than I&#8217;ll go into here. But a big one might just be because we&#8217;ve all quoted &#8220;about three weeks&#8221; for a programming project that ends up taking a whole lot longer than that, and we never want to be stuck in that situation again. So after we&#8217;ve been burned enough, we just stop giving estimates. I was at a job a few years ago, sitting at a full conference table with a dozen developers. The CTO &#8212; an abrasive guy who clearly went home every evening to lift <a href="http://www.willbeta.com/lose-weight-exercise/"><span style="display:none;">Lose </span>Weight<span style="display:none;"> Exercise</span></a>s, and spent most of his day yelling at the people who reported to him &#8212; growled an &#8220;order&#8221; at the team, demanding an estimate. Everyone at the table knew that they&#8217;d be yelled at individually, threatened with dismissal, and generally made miserable if they didn&#8217;t come up with an estimate. Yet nobody looked up and volunteered anything. Eventually a junior guy in the back cleared his throat, and in almost a whisper he said, &#8220;I&#8217;m not sure about the rest of it, but I think my piece will take about three weeks.&#8221;</p>
<p>And there it is. Nobody wants to go on the record and say how long they think it&#8217;ll take to do a job. We all know it&#8217;ll take as long as it takes. If the estimate is right, then there&#8217;s no great reward or recognition. But if the estimate is wrong, then we&#8217;re on the hook for it, and we get to look forward to status meetings where we get to take the blame for whatever terrible consequence happened because the project was late.</p>
<p>So what do we do about it?</p>
<p>Jenny and I put a lot of thought into this problem when we were working on our first book, <a href="http://www.stellman-greene.com/aspm" title="Applied Software Project Management">Applied Software Project Management</a>. It turns out that there&#8217;s a really effective way to get a good idea of how long the software will take <strong>without</strong> putting any one person on the hook, and it&#8217;s our favorite way of generating estimates. It&#8217;s called <a href="http://www.stellman-greene.com/delphi" title="Wideband Delphi">Wideband Delphi</a>, and we talk a lot about it in the Estimation chapter in the book (which you can <a href="http://www.stellman-greene.com/chapter3">download for free [PDF]</a>). It&#8217;s a straightforward technique &#8212; it just takes two two-hour meetings to nail down estimates for even a large project. It&#8217;s very iterative and highly interactive, which helps the team all come to a consensus and agree on the final result. It&#8217;s collaborative, so that no one person is solely responsible &#8212; usually, everyone ends up buying into the final numbers. And best of all, it doesn&#8217;t require any special expertise beyond what you need to actually do the project.</p>
<p>My favorite part about Wideband Delphi is that it&#8217;s really focused on assumptions. That&#8217;s another thing I like to talk about in the &#8220;Why Projects Fail&#8221; talk. If you think that building a particular program is going to take nine weeks, but I think it&#8217;s going to take four weeks, we usually aren&#8217;t disagreeing on how long it&#8217;ll take to do the task. Usually, we&#8217;re disagreeing on some basic assumption about the task. For example, you might think that we&#8217;ll be building a big GUI with printing support, while I might think that it&#8217;s just going to be a console application. That means that we can assume for the sake of the estimate that we&#8217;ll either build a GUI or build a console application, and we&#8217;ll write down that assumption. That way, if it turns out to be incorrect, we&#8217;ll know exactly why the estimate was wrong&#8230; and if someone in a meeting later wants to blame us, we can point to that assumption and give a good reason for the delay. (That&#8217;s why Delphi has two meetings: the first meeting is mostly taken up with a discussion of those assumptions.)</p>
<p>One nice thing about Delphi is that it&#8217;s not some esoteric, theoretical thing. Both Jenny and I have done this in the real world, many times, with all sorts of software teams. Delphi really does work, and it actually does a good job of helping team come up with numbers. And those numbers are pretty accurate, at least on the projects I&#8217;ve worked on. If you&#8217;re having trouble convincing your reluctant team to come up with an estimate, I definitely recommend giving Delphi a shot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2008/03/20/itll-take-about-three-weeks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

