News for hackers. Stuff that matters.
Re:Why software projects take longer than you think – a stat... by hnzix on Tuesday April 16, 2019 @03:41AM (#19671824)
My rule of thumb: take your estimate, double it, then add 20%. I'm not joking.
Re:Why software projects take longer than you think – a stat... by jspash on Tuesday April 16, 2019 @03:49AM (#19671863)
A professor of mine at university taught us the same thing. It's one of the most valuable things I learned and it is uncannily accurate. Even after 30 years in industry I still fall back on this formula with great results.

Sadly, managers want to believe that you put more effort into estimating deadlines so I'll just whip up a gannt chart retroactively based on the 2/20 rule and they're happy.

Re:Why software projects take longer than you think – a stat... by growtofill on Tuesday April 16, 2019 @04:26PM (#19677001)
> Even after 30 years in industry I still fall back on this formula with great results.

Isn't this Parkinson's law in action, i.e. work expands to fill the time available for its completion? That would mean you overestimate up to 2.4x each time.

Edit: math.

Re:Why software projects take longer than you think – a stat... by hnzix on Tuesday April 16, 2019 @11:44PM (#19679595)
> work expands to fill the time available for its completion

Oh, so if I estimate every task as 1 minute I'll finish really quickly?

The 2.4x is to overcome one's innate overoptimism (even if you see yourself as a pessimist), and to add contingency for unplanned complexity, bugs and general overhead.

It's a rule of thumb, not an immutable law, so if one has completed a similar task many times then less padding is needed.

Re:Why software projects take longer than you think – a stat... by thatoneuser on Tuesday April 16, 2019 @03:44AM (#19671844)
Eh. I've been successful adding 20% in. I feel like if you have to double first (meaning your end result is 220% of what you originally estimated) then you aren't learning from previous mistakes. Maybe 220 is appropriate for the first time you do work or work with a certain team tho.
Re:Why software projects take longer than you think – a stat... by crazygringo on Tuesday April 16, 2019 @09:29AM (#19673372)
> then you aren't learning from previous mistakes

???

The doubling-it is for when you build the whole component on top of a library, then discover that the library has a fatal bug you can't work around, and you have to rebuild the whole component on top of a different library, then discover that other library has another fatal bug, so now you need to include both libraries with logic around when to use which one, and then that seems to work but you add plenty of tests and documentation to make sure it works that way in prod too and not just on your dev machine.

I don't see what that has to do with learning from previous mistakes. Pretty much all but the most basic programming turns out to be like that -- dealing with unforeseeable and undocumented problems.

(The 20% is because you weren't planning for sick days, an unforeseen emergency bugfix on another project, nobody remembered about the afternoon retreat next week, etc.)

Re:Why software projects take longer than you think – a stat... by lostctown on Tuesday April 16, 2019 @10:13AM (#19673767)
Going through this now and boy is this true. Nothing like rewriting a 1k+ lib the day before a feature is supposed to be ready and then praying you didn't blow up some other lesser documented part of the code.
Re:Why software projects take longer than you think – a stat... by thatoneuser on Tuesday April 16, 2019 @07:36PM (#19678297)
Yeah and I've been pretty good at estimating what to expect. I mean you'll always find surprises but personally I'm more inclined to quote a lower estimate and come back explaining the situation than to overcharge. But if you know of any clients who are throwing money around like that I'll gladly accept your 220% estimate for a few referrals ;)
Re:Why software projects take longer than you think – a stat... by jdsully on Tuesday April 16, 2019 @09:21PM (#19678852)
Why not just fix the lib?
Re:Why software projects take longer than you think – a stat... by nnq on Tuesday April 16, 2019 @04:34AM (#19672065)
220% also works fine if each one of the projects is "practically unique" to you / the team... this happens >50% of the time in the real world, imo, because some fields have very little transferable skills/experience from project to project... a large percent of stuff is genuinely new every time and never repeats even if it's "basically the same thing as that other project"! (Or team composition changes.)

Problem is the fact that you can only justify with a straight-face 45% (100%/220%) of the estimate you give to the client... Then you need to get clever at "bluffing" your way at "inventing" another extra +35% of work that you can't imagine/explain, but you know for sure that will come out of the blue - you know there's this extra 35% work needed for sure, you just have no idea what this work will be. Then finally you can say with a straight face that 20% of estimated time is for unforseen circumstances. There's two ways to see the same math:

  (1) 45% + 35% + 20% = 100%
  (2) 100% + 100% + 20% = 220%
The world would be a much better place if clients / managers / project owners etc. would just accept that 55% of time & cost for software dev is unknown-unknowns type of unexplainable/unimaginable-at-project-start-stage-work. That's just how it is! If the problem was really clearly defined and understood, there would likely already be an off-the-shelf software solution for it that could be used instead of paying developers to build custom software!

If we could just be honest with people and show them formula (2) instead of a make-up-ladden version of (1). But people don't, so we get to play the damn elegant-bullshitting game over and over again...

Re:Why software projects take longer than you think – a stat... by Roark66 on Tuesday April 16, 2019 @11:36AM (#19674557)
>Then finally you can say with a straight face that 20% of estimated time is for unforseen circumstances.

This is how I always have done it across multiple jobs and I always called that extra contingency. Depending on the project I sometimes had to ask for over 50% of the total as contingency. If anyone queried it I would explain that it is very likely we'll need it based on my experience of many other projects.

Then the client would either accept it as is, or they would want to split the proposal into "what we will definitely pay for" and "what we will pay for only when it is actually needed" which is also fine for both sides if proper progress reporting has been agreed in advance.

Someone could think that no client would agree to such a contract as it would open them to be taken advantage of by an unscrupulous supplier, but at the end of the day what matters in business is trust. If a client doesn't trust the supplier they shouldn't hire them. And in all my previous projects I never met an engineer or developer that would deliberately use up the contingency time when it is not needed as everyone knows the availability of this extra time might come very important towards the end of the project.

Re:Why software projects take longer than you think – a stat... by thatoneuser on Tuesday April 16, 2019 @07:39PM (#19678323)
That's a smart way to do it. I used to put in ranges (basically contingency) of rate but I found myself consistently hitting a similar % of the higher estimate and just started quoting the higher estimate with the expectation that I'm not a God and there may be unknown factors which could add in more cost. Usually people are happy as you say if there's trust and you show progress.
Re:Why software projects take longer than you think – a stat... by hannasanarion on Tuesday April 16, 2019 @09:30AM (#19673382)
Wouldn't it be 240%?
Re:Why software projects take longer than you think – a stat... by thatoneuser on Tuesday April 16, 2019 @07:46PM (#19678358)
No he said double or (200) then add 20 (220). Unless there's ambiguity I'm not seeing.
Re:Why software projects take longer than you think – a stat... by kthejoker2 on Wednesday April 17, 2019 @07:36AM (#19681602)
Add 20% of the doubled estimate (eg .2 * 200%=40%) surely?
Re:Why software projects take longer than you think – a stat... by thatoneuser on Thursday April 18, 2019 @01:47AM (#19689005)
Ah I see your point.
Re:Why software projects take longer than you think – a stat... by ambicapter on Tuesday April 16, 2019 @01:08PM (#19675359)
It would.
Re:Why software projects take longer than you think – a stat... by dls2016 on Tuesday April 16, 2019 @01:25PM (#19675495)
ambiguous grammar
Re:Why software projects take longer than you think – a stat... by PeterisP on Tuesday April 16, 2019 @03:43AM (#19671834)
An approach that gives very similar results to yours but is more scientific is to multiply the initial estimates by e (2.718). Or, if you're conservative, then by pi.
Re:Why software projects take longer than you think – a stat... by leethargo on Tuesday April 16, 2019 @03:51AM (#19671875)
The above approach uses the factor 2.2. Why would your factors be any better?
Re:Why software projects take longer than you think – a stat... by anoncake on Tuesday April 16, 2019 @04:08AM (#19671947)
2.2 is just an arbitrary number.

e is also just an arbitrary number, but it looks like someone calculated it using sophisticated math.

Re:Why software projects take longer than you think – a stat... by alexgmcm on Tuesday April 16, 2019 @03:59AM (#19671912)
Wouldn't it be 2.4 as you are adding 20% of the already doubled estimate?
Re:Why software projects take longer than you think – a stat... by spurgu on Tuesday April 16, 2019 @04:54AM (#19672144)
Yes.
Re:Why software projects take longer than you think – a stat... by ajuc on Tuesday April 16, 2019 @03:55AM (#19671894)
Nitpick: x * 2 * 1.2 == x * 2.4, not 2.2
Re:Why software projects take longer than you think – a stat... by apaatsio on Tuesday April 16, 2019 @09:29AM (#19673374)
Extended nitpick: Technically, they only said "then add 20%". They didn't specify of what that 20% is. It's up to interpretation whether they mean 20% of the original value or the doubled value.
Re:Why software projects take longer than you think – a stat... by skrebbel on Tuesday April 16, 2019 @04:24AM (#19672022)
Because e is more scientific.
Re:Why software projects take longer than you think – a stat... by TheOtherHobbes on Tuesday April 16, 2019 @06:21AM (#19672417)
Semi-seriously, e is a number defined by recursive growth.

So if you estimate to Level 1, and then break down to Level 2 sub-tasks, then Level 3, your estimate will be out by the same amount each time. and your total error will be a multiplicative series.

If you have an infinite number of levels - which is reasonable for most real-world projects, although this may not be obvious in the planning stages - e will get you nicely in the ballpark.

Re:Why software projects take longer than you think – a stat... by neilwilson on Tuesday April 16, 2019 @04:19AM (#19671995)
I've worked on twice my gut feel for years. It's generally pretty near the mark.

Humans are optimistic by nature. Even somebody as pessimistic as me.

Re:Why software projects take longer than you think – a stat... by stronglikedan on Tuesday April 16, 2019 @12:16PM (#19674914)
If that 20% isn't for project management, then add another 10-20% for that, based on experience from previous projects for the same stakeholders. My similar rule of thumb is to multiply my estimate by 2.5, before adding the project management percentage. Of course, if it's something we've done before, it's more along the lines of 1.5 to 2.
Re:Why software projects take longer than you think – a stat... by JustSomeNobody on Tuesday April 16, 2019 @10:38AM (#19673968)
I close to double mine, but it also depends on the tasks. Some tasks I just know I'll complete in 1X my estimate. I do have a rule that nothing is ever estimated at less than 2 hours; no matter how small the task. Invariably, any time I have broken that rule, someone has checked in code that won't build (or something similar) and I have to spend time dealing with that.

I notice some devs like to underestimate to make them look more productive. Most of those tend to spend a lot of time fixing bugs that QA pushes back to them. They sometimes spend ever more time arguing that it's not their bug.

Re:Why software projects take longer than you think – a stat... by d--b on Tuesday April 16, 2019 @03:45AM (#19671846)
Or you could just multiply by 2.4 ...

I used to do 2.5, I read somewhere 2.5 was fairly common

Re:Why software projects take longer than you think – a stat... by maxxxxx on Tuesday April 16, 2019 @04:44AM (#19672105)
My number is 5. Maybe my estimates tend to be a little optimistic :-). But in general I can look at something for a few minutes, make a quick estimate (maybe ask somebody else), multiply by 5 and be pretty close to the eventual time it will take.
Re:Why software projects take longer than you think – a stat... by XorNot on Tuesday April 16, 2019 @03:48AM (#19671860)
Triple it. Then triple that if to do it you have to go across team boundaries.
Re:Why software projects take longer than you think – a stat... by bigiain on Tuesday April 16, 2019 @07:30AM (#19672724)
One of my funny-not-funny jokes is "Double it then change up to the next unit of measure" So "I can do that in 3 minutes!" becomes 6 hours. 2 hours become 4 days. 3 days becomes 6 weeks. 2 weeks becomes 4 months...
Re:Why software projects take longer than you think – a stat... by leethargo on Tuesday April 16, 2019 @03:52AM (#19671877)
I know it a little different, where you double it, but then a fixed offset, say 1 week, rather than 20%.
Re:Why software projects take longer than you think – a stat... by CraneWorm on Tuesday April 16, 2019 @06:24AM (#19672429)
I multiply my estimates by the number of people involved.
Re:Why software projects take longer than you think – a stat... by jsight on Tuesday April 16, 2019 @02:38PM (#19676131)
Oh, the Scotty Factor approach to estimating?
Re:Why software projects take longer than you think – a stat... by fouc on Tuesday April 16, 2019 @05:44AM (#19672307)
multiplying by 3 seems to cause the scenario of coming in under deadline and looking like a hero.
Re:Why software projects take longer than you think – a stat... by philpem on Tuesday April 16, 2019 @11:01AM (#19674208)
Your boss just called. They said to tell you to stop padding your estimates...