Live data from Hacker News

What do you mean ‘we need more time’? Project schedule estimation in software

blogs.dropbox.com

91–100 of 152 posts

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#91
A pet peeve of mine:

Scenario: Finished requirements, analysis, design; completed development and testing; in UAT; Production deployment: 1 week away.

Customer: Hey this field name does not exactly represent what we want to convey. Can we change its name quickly before we go live?

Eager Novice (who is unfortunately in front of the customer at that moment): Oh yeah, that's just a small change in the Customer model. I think we an get this ready and unit tested in 2 hours.

Customer: Great. Lets git er done!

Project Manager (wary of customer and afraid to rock the boat on an already shaky project): Sure we can do that.

Grizzled Veteran/Grey Beard (who for some reason wasn't consulted on the change request): Hmmm....have we done an impact analysis of the change? What are the downstream impacts on code that references this field? What do we need to do to propagate the change to the db? What about the seven or so Web Services that are impacted by this field change? How long does it take to do a regression test? etc...

Net effect: 2 Hrs initial estimate given to customer; 4 Days worth of work in actuality; Production deployment moved down a week..

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#92
post #31

http://qr.ae/ROlwZp - I've found this answer on quora to be one of the best explanations as to why software estimates are so off.

Digging down into the details is one of the best responses to absurdly unrealistic schedules.

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#93
post #79

I'm about to being a rant here because this is a larger problem than anybody likes to admit. Developers are good at development. By and large, they are not good at task management, project management, and certainly not estimation. One of the primary reasons for this is that their plates are always overflowing and they work more efficiently than many people in other professions. They shift priorities on the fly when w…

Going to join you in this rant if you don't mind.

> Most can't tell their manager that it will take 2 weeks to parse a CSV because the source data is shit and they have too many other things they are working on. So they stay an extra 6 hours in the office and get called a rock-star until the day that they opt to go to their child's school play instead.

Ugh! For real! I had this happen to me recently. I have trouble telling people "No", and pushy PMs who also happen to be my friends means that I often bite off more than I can chew, and have to either "be a rockstar" (which you start to realize isn't such a compliment), or deliver late / fail to deliver.

So I just started being a dick about it, and it works for me. If I say no too politely, it's really easy to convince me to change to a yes. My turning point was when discussing a project that was much more complex than management assumed it would be (I'm compelled to link the relevant xkcd [0]), and I already felt overwhelmed on my current projects.

The discussion was something like "Ok, how about by this date? What about by this date? What if we dropped these features?", I thought for a moment and responded "Ok, look. I can promise you any date you want, and we can shake hands and leave this meeting. But I'm telling you the reality is I can't do it, and it won't be done. If you'd like to take some of my other projects and move them into the will not be done category, we can talk. I'm only saying this because I don't want to agree to a deadline and then be constantly thinking 'Oh well, that's the date I'm getting fired.'"

I'm very lucky that everyone here is really nice, and realized how stressed I must have been to react like that. So we've reprioritized some things and are beginning to outsource some of my more menial tasks that took up a lot of time.

Didn't really intend for that story to have a point, just venting something my non-dev friends don't relate to. I guess the point could be that the problem isn't just caused by bad managers, or bad dev estimates, or bad process, it's a little bit of everything, and the ratios are different for every company or person.

[0] http://xkcd.com/1425/

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#94
post #45
post #33

Analogies like "painting a room" are pretty useless because they are very misleading. Especially when it is an innovative product, a better analogy would be: "painting a room on Mars". With software development, there are a lot more "unknown attributes" that determine the main part of the effort estimation unless it is a repetitive task. So, a critical/skeptical engineer would always drive the customer nuts by asking…

Before NASA sent their first drone to Mars they made a lot of predictions, a lot of tests, guessed a lot of things that may get wrong, etc. Do some of their missions still fail? Sure. But the amount of success is much much larger because they didn't just sent a drone there and watched what happened. So even if all you say is correct it's still worth improving one's estimation skills.

Since Apollo, NASA has been suffering from too large projects. It's a spiral: once a project grows beyond a certain size, failing would be politically catastrophic. Hence the project must have even more tests and simulations, and the time table and cost move to the right, and it gets even more risk averse. The vicious cycle.

Instead if there were small enough missions and failure was tolerated as an unfortunate part of the process, progress would be a lot faster, and new technologies could be attempted etc.

This was the whole Faster Better Cheaper approach. Small teams of highly competent people, quick iteration, little bureaucracy...

Pathfinder/Sojourner was a FBC mission. It had a freaking webcam there. :) Opportunity/Spirit were somewhat bloated and the latest Curiosity rover was already a relatively traditional megaproject. Naturally there has been science instrument maturation etc as well, it's not a one sided story, but it is important to understand.

Look how many launchers SpaceX has developed and how much it has iterated, while NASA has worked on SLS. Sure, SpaceX has crashed and burned plenty of rockets and test vehicles on the way. It has changed directions dramatically. But looking as a whole, it has made large progress.

There is some kind of spectrum here. Of course if you launch deep space probes for 20 year missions, you test differently than for a launch test vehicle. But if you had many of those space probes as well, it wouldn't be so catastrophic if some of those failed.

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#95

Earlier quoted context omitted.

Not pay? Heh. For work performed? OK... That is why my contracts require payment up front.

Sounds like they should have negotiated for a base rate with bonus pay out on meeting QC targets. For heavens sake people, align your incentives!

Everyone, on both sides of this river, they need to grow up.

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#97
Estimates are a tricky thing. Ultimately, I don't think they work in software. We should be looking for a different solution.

Think of it this way - a physician can prescribe a medication and tell you how long you'll be on it, but can she estimate how long it will take before your blood pressure falls within normal parameters? She can tell you what has happened in the past, but suppose you take the medication and your blood pressure remains stubbornly high. Has she failed to meet her targets?

A lawyer may be able to tell you, roughly, how long litigation tends to take, but can your lawyer estimate how long a case will take, what it will cost, what the outcome will be, and the date it will all be wrapped up? If that doesn't happen, did the lawyer fail to meet targets?

Well, in both cases, sort of, yeah. You didn't get the outcome you wanted. But these professions, run by the people who staff them, understand what can be predicted and what can't.

This blog entry uses the task of estimating painting a room as an example, and focuses on breaking the task into subsections. Ultimately, I think the entire approach is deeply flawed, and it all starts by thinking that software development is similar to something like painting a room, just a more complicated version of it.

In my opinion, it's very different. Of course, it's very different from prescribing medication or litigating as well - in fact, I'd say that it's generally considerably less predictable than even these things. I'd say it's closer to writing a novel, creating a film, or recording an album, except that software needs to work, and can be much more mundane at times as well. Ultimately, I don't think the analogies are useful, we need to realize that software is its own thing, and steer clear of too much reasoning by analogy or example.

Unfortunately, the anxiety caused by making estimates under conditions of uncertainty (and possibly duress) is a source of stress and unhappiness for developers, and I do think it's one of the things that drives people out of the field. I actually think this may also be one of the reasons people love creating apps as a hobby but hate doing it for money.

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#98
post #3

Earlier quoted context omitted.

Why - has that led to a spate of projects completed early?

It leads to what I call "do it right syndrome". Since I have time, I'll do it right, with a factory class, and extendible configuration package (that I'll write myself so it will be just perfect) and, for optimal speed, I'll use Red-Black trees that I'll have to write my own implementation of since there isn't a standard library ...

What's wrong with separation of concerns, extendability, optimal speed, etc.?

More often than not, I observed doing it right the first time is actually a huge time saver compared to hacking some stupid prototype nobody can understand later.

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#99
post #17

Earlier quoted context omitted.

Except some of us make a living selling development of projects and solutions to customers that require pretty accurate (cost) estimates prior to even getting the contract. Crazy world, I know...

Absolutely this, clients need to know their costs upfront. Meanwhile, I've been on the other side, working with a shop that insisted they were agile, and so refused to give an upfront cost. That project ended up delivering a substandard project where key parts did not work well. Their answer was to tell us they would of course be happy to be paid for another 2 week sprint to fix those bugs... As a customer it wasn't…

The question is how this shop ended up getting the gig in the first place ;)

Re: What do you mean ‘we need more time’? Project schedule estimation in software

#100
post #79

I'm about to being a rant here because this is a larger problem than anybody likes to admit. Developers are good at development. By and large, they are not good at task management, project management, and certainly not estimation. One of the primary reasons for this is that their plates are always overflowing and they work more efficiently than many people in other professions. They shift priorities on the fly when w…

Which is why there are Solution Architects who are (hopefully) familiar enough with the technical and business side of things to provide a high level solution overview and maybe a POC that will play into the scoping of the SOW. Also helps if the same ppl who estimate (architects/PMs) then end up being in charge of the project delivery. This will keep them honest and prevent severe under-estimations while keeping them on the hook from over-estimating provided that there's an internal review process for the estimates.
Post reply on HN