<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:admin="http://webns.net/mvcb/"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
	<channel> 

	<title>Comments on: Comments on 12531</title>
	<link>http://www.metafilter.com/12531//</link>
	<description>Comments on MetaFilter post Comments on 12531</description>
	<pubDate>Wed, 21 Nov 2001 07:03:39 -0800</pubDate>
	<lastBuildDate>Wed, 21 Nov 2001 07:03:39 -0800</lastBuildDate>
	<language>en-us</language>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs>
	<ttl>60</ttl>

	<item>
		<title>Post number 12531</title>
		<link>http://www.metafilter.com/12531/</link>	
		<description>Software projects are notorious for time and budget overruns (examples that come to mind include &lt;a href=&quot;http://www.mozilla.org&quot;&gt;Mozilla&lt;/a&gt; and the &lt;a href=&quot;http://www.cds.caltech.edu/conferences/1997/vecs/tutorial/Examples/Cases/failures.htm&quot;&gt;Denver Airport baggage system&lt;/a&gt;). There are a large number of design methods, development processes, and programming methodologies that claim or hint at objective estimation of development schedules, project complexity, and programmer productivity. Unfortunately, &lt;a href=&quot;http://www.idiom.com/~zilla/Work/Softestim/kcsest.pdf&quot;&gt;they&apos;re all bunk.&lt;/a&gt;&lt;br&gt;&lt;br&gt;

&lt;i&gt;&quot;The creation of genuinely new software has far more in common with developing a new theory of physics than it does with producing cars or watches on an assembly line.&quot;&lt;/i&gt;&lt;br&gt;&lt;br&gt; 

Programmers, try telling that one to your next customer.</description>
		<guid isPermaLink="false">post:www.metafilter.com,2001:site.12531</guid>
		<pubDate>Wed, 21 Nov 2001 06:19:50 -0800</pubDate>
		<dc:creator>lagado</dc:creator>		<category>programmers</category>		<category>programming</category>		<category>denverairport</category>		<category>costoverruns</category>		<category>timeoverruns</category>		<category>mozilla</category>		<category>software</category>		<category>projects</category>		<category>creation</category>		<category>softwaredesign</category>		<category>programdesign</category>		<category>newsoftware</category>		<category>developmentprocess</category>
	</item>	<item>
		<title>By: Steven Den Beste</title>
		<link>http://www.metafilter.com/12531/#178412</link>	
		<description>All software professionals know this; one wag suggested that &quot;Computer Science&quot; really should have been named &quot;Computer Craft&quot;.

But it&apos;s also well known among software professionals that the primary source of overruns is feature creep. That&apos;s what we need to be communicating to everyone else, and so far we haven&apos;t done a good job of it. Software projects run a lot better when everyone agrees ahead of time what the goal should be, and then sticks to it. (One project I helped run came in 3 weeks ahead of schedule with a very low bug rate, precisely because the project manager was a software guy and didn&apos;t permit feature creep.)</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178412</guid>
		<pubDate>Wed, 21 Nov 2001 07:03:39 -0800</pubDate>
		<dc:creator>Steven Den Beste</dc:creator>
	</item>	<item>
		<title>By: mmarcos</title>
		<link>http://www.metafilter.com/12531/#178425</link>	
		<description>Man, do I agree with you, Steven. I had two truly outstanding, slam dunk projects where I last was. In both cases I managed to produce a highly detailed, pre-coding, requirements document that changed little over the course of the project. On time, on budget, satisfied team and satisfied clients.

lagado, one suggestion: if a link is to a PDF, I think it&apos;s worth noting so.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178425</guid>
		<pubDate>Wed, 21 Nov 2001 07:19:22 -0800</pubDate>
		<dc:creator>mmarcos</dc:creator>
	</item>	<item>
		<title>By: lescour</title>
		<link>http://www.metafilter.com/12531/#178429</link>	
		<description>mmarcos:  outstanding.  how did you keep the clients from throwing your document in the trash and giving you one written with crayons two weeks before it was due?</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178429</guid>
		<pubDate>Wed, 21 Nov 2001 07:21:55 -0800</pubDate>
		<dc:creator>lescour</dc:creator>
	</item>	<item>
		<title>By: plinth</title>
		<link>http://www.metafilter.com/12531/#178469</link>	
		<description>Project planning and estimation is an art.  After writing a vast amount of code and fixing a sea of bugs (yours and others), you start to get a feel for how long certain tasks will take and what sort of bugs will result.

What I end up doing is look at a design and break it into components and then estimate how much time each task will take me to do along with some SWAG (Silly Wild-Ass Guess) time.  If the tasks are well-defined, then the smallest unit of estimation is a 1/2 day.  The less well-defined the tasks, the larger the granularity.  Then for very large projects, you need to start adding in time for human problems.  In a year, you can expect to lose up to a month of productive time per engineer.  It can be for things like illness/infirmity, family issues, etc. 

Then I start estimating complexity and of the system and start guessing how many bugs will result from each in terms of simple, moderate, and bad.  A simple bug is easy to find, easy to fix.  A bad bug is a one that either takes a very long time to find, a very long time to fix (lots of ripple), or requires redesign or rearchitecture.  Moderate bugs are in the middle.

Then I scale the tasks and bugs by a factor related to the person who will be responsible for that task as well as their familiarity with the task.  If it&apos;s me, the factor is 1. For others, I get a sense of the factor through experience (eg, I work 10 times as fast as this person or 1/2 as fast as that person).

The estimates are hauntingly accurate for well-defined projects.

Where problems arise is when the project staff or executive staff doesn&apos;t pay attention.  The last place I worked, they had a date they needed to meet for a marketing event, and I gave them a time estimate for implementation and an estimate for when I absolutely positively had to have UI design in my hands.  UI design was late and the project was late by exactly the same amount.  This was consistent enough that when I was asked, &quot;How long will this take?&quot; I wanted to start answering &quot;Will you believe me this time?&quot;</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178469</guid>
		<pubDate>Wed, 21 Nov 2001 08:24:31 -0800</pubDate>
		<dc:creator>plinth</dc:creator>
	</item>	<item>
		<title>By: rexgregbr</title>
		<link>http://www.metafilter.com/12531/#178508</link>	
		<description>My manager&apos;s method is a bit more simple, but involves killing a goat and reading the fortune from its guts. :-)

Actually, I&apos;ve been reading a lot about project management and specially software development projects.

There are some interesting ideas about it, such as &lt;a target=&apos;_self&apos; href=&quot;http://www.goldratt.com&quot;&gt;Eli Goldratt&apos;s Theory of Constraints&lt;/a&gt; applied to Project Management (more about it on some of his books, such as 
&lt;a target=&apos;_self&apos; href=&quot;http://www.amazon.com/exec/obidos/ASIN/0884270610/qid=1006361628/sr=2-1/ref=sr_2_11_1/107-2339011-0982124&quot;&gt;The Goal&lt;/a&gt; and &lt;a target=&apos;_self&apos; href=&quot;http://www.amazon.com/exec/obidos/ASIN/0884271536/qid=1006361628/sr=2-2/ref=sr_2_11_2/107-2339011-0982124&quot;&gt;Critical Chain&lt;/a&gt;).

Also, a friend of mine is managing a small team that is responsible for a big software development project and he told me they are using some ideas of &lt;a target=&apos;_self&apos; href=&quot;http://www.xprogramming.com/index.htm&quot;&gt;Extreme Programming&lt;/a&gt;.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178508</guid>
		<pubDate>Wed, 21 Nov 2001 09:07:59 -0800</pubDate>
		<dc:creator>rexgregbr</dc:creator>
	</item>	<item>
		<title>By: Steven Den Beste</title>
		<link>http://www.metafilter.com/12531/#178534</link>	
		<description>Plinth, SWAG stands for &quot;Scientific Wild Ass Guess&quot;.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178534</guid>
		<pubDate>Wed, 21 Nov 2001 09:37:12 -0800</pubDate>
		<dc:creator>Steven Den Beste</dc:creator>
	</item>	<item>
		<title>By: Mars Saxman</title>
		<link>http://www.metafilter.com/12531/#178537</link>	
		<description>Yeah, I can totally believe this. After a dozen years writing code I&apos;m pretty good at estimating the amount of time needed to write something similar to something I&apos;ve written before. I know the territory and have a reasonable idea what sorts of problems are likely to come up when traversing it. But if any significant amount of the problem involves systems or tasks I&apos;ve never encountered before, I pretty much just need to guess. This seems to be common - part of making an estimate seems to involve figuring out how much of the project is unknown, and tripling the amount of time it looks like it will require.

About three months ago I completed a project in 15% of the time I had estimated - this certainly isn&apos;t the first time in my career I&apos;ve been wrong by that much, but I think it will probably be the only time I&apos;ve ever been wrong by that much in that direction.

-Mars</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178537</guid>
		<pubDate>Wed, 21 Nov 2001 09:39:12 -0800</pubDate>
		<dc:creator>Mars Saxman</dc:creator>
	</item>	<item>
		<title>By: Steven Den Beste</title>
		<link>http://www.metafilter.com/12531/#178628</link>	
		<description>One rule of thumb I read one time, which is correct a scary amount of the time, is to ask the programmers how long something will take, double it, and raise it to the next higher unit of measure. If he says &quot;1 day&quot; it will take 2 weeks.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178628</guid>
		<pubDate>Wed, 21 Nov 2001 11:39:53 -0800</pubDate>
		<dc:creator>Steven Den Beste</dc:creator>
	</item>	<item>
		<title>By: owillis</title>
		<link>http://www.metafilter.com/12531/#178635</link>	
		<description>CEO: &quot;Ok, we&apos;ve agreed that the project will take 5 months to complete so we&apos;re going to estimate that we have 7 months&quot;
Engineering team: &quot;cool&quot;

6 months later...

Salesguy: &quot;I just promised our biggest client that the product will include ponies. I said we could do it. I didn&apos;t bother to ask anyone if we could, because I figure you guys are smart&quot;

CEO: &quot;You guys can add ponies, right?&quot;
Engineering Team: &quot;Well, we could but...&quot;
Salesguy: &quot;So we&apos;ll expect ponies. Bye, gotta go drink... er do research&quot;

8 months later

CEO: &quot;You guys are late and there aren&apos;t any ponies. In punishment for this, I&apos;m going to let go half of your team&quot;
Engineering Team - 1/2: &quot;But...&quot;
Salesguy: &quot;I just promised daffodils to another client&quot;
CEO: &quot;Well, the half of you will have to work twice as fast&quot;

Repeat ad infinitum...</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178635</guid>
		<pubDate>Wed, 21 Nov 2001 11:49:48 -0800</pubDate>
		<dc:creator>owillis</dc:creator>
	</item>	<item>
		<title>By: Steven Den Beste</title>
		<link>http://www.metafilter.com/12531/#178639</link>	
		<description>Oliver, I&apos;m getting nightmares...</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178639</guid>
		<pubDate>Wed, 21 Nov 2001 11:57:35 -0800</pubDate>
		<dc:creator>Steven Den Beste</dc:creator>
	</item>	<item>
		<title>By: owillis</title>
		<link>http://www.metafilter.com/12531/#178644</link>	
		<description>Nightmares? Hell, I didn&apos;t even add the client&apos;s request for modifications after delivery...</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178644</guid>
		<pubDate>Wed, 21 Nov 2001 12:02:44 -0800</pubDate>
		<dc:creator>owillis</dc:creator>
	</item>	<item>
		<title>By: mmarcos</title>
		<link>http://www.metafilter.com/12531/#178649</link>	
		<description>In the older project, it happened to be somewhat under the covers. My idea happened to cost very little to implement on existing software and infrastructure, found tremendous support from a key developer and key manager, and the requirements were accepted or denied by the manager who was a real toughy. I got everything from him before coding began because he knew exactly what he wanted and he wanted it quick with no fancy stuff.

For the later project, I worked on convincing the manager that the requirements would help for the obvious reasons, etc. and found a good partner there, too. In this case, the manager did ask for some later things, but they were more of the tweak nature or maybe a little more sometimes, but this was built into the project timeline.

In spite of the success, the organization did not change much in this respect, unfortunately.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178649</guid>
		<pubDate>Wed, 21 Nov 2001 12:11:12 -0800</pubDate>
		<dc:creator>mmarcos</dc:creator>
	</item>	<item>
		<title>By: lagado</title>
		<link>http://www.metafilter.com/12531/#178788</link>	
		<description>&lt;i&gt;But it&apos;s also well known among software professionals that the primary source of overruns is feature creep. &lt;/i&gt;

That&apos;s true, although the main point of the linked (PDF) paper was to point out that even with a complete functional specification, software estimation methods (i.e. algorithms) run into fundamental mathematical limits of computability and completeness (based on the work of &lt;a href=&quot;http://www.exploratorium.edu/complexity/CompLexicon/godel.html&quot;&gt;Godel Turing Chaitin&lt;/a&gt;). 

The crux is that any estimation methodology that claims to be objective rather than just a rule of thumb or a guesstimation is blowing smoke rings.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178788</guid>
		<pubDate>Wed, 21 Nov 2001 15:58:02 -0800</pubDate>
		<dc:creator>lagado</dc:creator>
	</item>	<item>
		<title>By: kindall</title>
		<link>http://www.metafilter.com/12531/#178799</link>	
		<description>&lt;i&gt;(based on the work of Godel Turing Chaitin)&lt;/i&gt;

God, imagine growing up with a name like that!</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178799</guid>
		<pubDate>Wed, 21 Nov 2001 16:39:32 -0800</pubDate>
		<dc:creator>kindall</dc:creator>
	</item>	<item>
		<title>By: lagado</title>
		<link>http://www.metafilter.com/12531/#178847</link>	
		<description>
ha! kindall ;-j sorry, forgot to comma delimit those.

Here&apos;s a brief &lt;a href=&quot;http://www.cs.auckland.ac.nz/CDMTCS/chaitin/casti.html&quot;&gt;introduction &lt;/a&gt;to the ideas behind Chaitin&apos;s Incompleteness theorem.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178847</guid>
		<pubDate>Wed, 21 Nov 2001 18:47:15 -0800</pubDate>
		<dc:creator>lagado</dc:creator>
	</item>	<item>
		<title>By: holgate</title>
		<link>http://www.metafilter.com/12531/#178870</link>	
		<description>My last big corporate job was as project manager for a web-mail app that needed customising, internationalising and rolling out across local affiliates with very different setups and very independent-minded sysadmins. It was quite an experience, ranging from reverse-engineering a badly coded Java engine, to documenting how to sweet-talk the most stubborn European office. (The Austrians. Always, always the Austrians.) It was the kind of project that had so many barely-tangible human elements that it defied even the most precise speccing, which meant I was squeezed on one side by my team&apos;s frustrations, and the other side by the ultra-efficient American MBAs upstairs with their nice little fictional plans as generated by Microsoft Project. Let&apos;s just say that &lt;a href=&quot;http://www.yourdon.com/books/coolbooks/notes/brooks.html&quot;&gt;Frederick Brooks&lt;/a&gt; became my hero.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178870</guid>
		<pubDate>Wed, 21 Nov 2001 20:07:18 -0800</pubDate>
		<dc:creator>holgate</dc:creator>
	</item>	<item>
		<title>By: mattpfeff</title>
		<link>http://www.metafilter.com/12531/#178880</link>	
		<description>&lt;i&gt;ultra-efficient American MBAs upstairs with their nice little fictional plans as generated by Microsoft Project&lt;/i&gt;

hey, those fictions are the only thing that gets money budgeted. I&apos;m sure they&apos;d let non-Americans play with MS Project, too, if there weren&apos;t money involved.... ;)</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178880</guid>
		<pubDate>Wed, 21 Nov 2001 21:06:14 -0800</pubDate>
		<dc:creator>mattpfeff</dc:creator>
	</item>	<item>
		<title>By: holgate</title>
		<link>http://www.metafilter.com/12531/#178954</link>	
		<description>I&apos;m actually with Joel Spolsky, though: &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000245.html&quot;&gt;MS Project is completely unsuited to software projects:&lt;/a&gt;

&lt;blockquote&gt;Don&apos;t use anything fancy like Microsoft Project. The trouble with Microsoft Project is that it assumes that you want to spend a lot of time worrying about dependencies. A dependency is when you have two tasks, one of which must be completed before the next one can begin. I&apos;ve found that with software, the dependencies are so obvious that it&apos;s just not worth the effort to formally keep track of them.&lt;/blockquote&gt;

So while wearing my &quot;talking to the MBAs&quot; hat, I&apos;d smile and adjust the fictional MS Project plan to keep them happy (and keep my team funded), while doing the real planning in Excel.</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178954</guid>
		<pubDate>Thu, 22 Nov 2001 06:56:43 -0800</pubDate>
		<dc:creator>holgate</dc:creator>
	</item>	<item>
		<title>By: walrus</title>
		<link>http://www.metafilter.com/12531/#178970</link>	
		<description>You mean you guys &lt;b&gt;plan&lt;/b&gt; your software? That makes it even worse ;)</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178970</guid>
		<pubDate>Thu, 22 Nov 2001 08:04:19 -0800</pubDate>
		<dc:creator>walrus</dc:creator>
	</item>	<item>
		<title>By: mattpfeff</title>
		<link>http://www.metafilter.com/12531/#178981</link>	
		<description>&lt;i&gt;real planning&lt;/i&gt;

heh. Who&apos;s talking about fictions now? ;)

(I can see it now, the MBAs saying, so while wearing my &quot;talking to the PM&quot; hat, I jus&apos; smile and tell &apos;em I&apos;ll adjust the MS Project plan, to keep &apos;em happy.... Of course, now that I think about it, that&apos;s why the MBAs (almost) all suck -- sometimes the PM actually knows wtf he&apos;s talking about.)</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-178981</guid>
		<pubDate>Thu, 22 Nov 2001 08:38:05 -0800</pubDate>
		<dc:creator>mattpfeff</dc:creator>
	</item>	<item>
		<title>By: lagado</title>
		<link>http://www.metafilter.com/12531/#179078</link>	
		<description>It&apos;s fictions all the way down. 
Imagine the porkies they tell holgate just to keep his spreadsheet happy
;-j</description>
		<guid isPermaLink="false">comment:www.metafilter.com,2001:site.12531-179078</guid>
		<pubDate>Thu, 22 Nov 2001 15:46:50 -0800</pubDate>
		<dc:creator>lagado</dc:creator>
	</item>
	</channel>
</rss>
