Bob, one of my co-workers, just forwarded me this article on "Why are software development task estimations regularly off by a factor of 2 or 3?" It's an extended but delightfully on-target metaphor, matching the reality of programming in almost every detail.
If you are involved with software in any way, and don't understand what this metaphor is talking about, I encourage you to sit down with your programmer friends -- most can explain in graphic detail (complete with war stories) why it is so right...
If you are involved with software in any way, and don't understand what this metaphor is talking about, I encourage you to sit down with your programmer friends -- most can explain in graphic detail (complete with war stories) why it is so right...
(no subject)
Date: 2012-01-31 03:09 pm (UTC)Tom DeMarco, in a lecture entitled "PeopleWare Revisited" had a really great slide, that asked the key questions: "We do QA on the software. Why don't we do QA on the software schedule?"
(no subject)
Date: 2012-01-31 06:42 pm (UTC)(no subject)
Date: 2012-01-31 04:27 pm (UTC)As the person who is typically on the Other side of the equation
Date: 2012-01-31 05:45 pm (UTC)Re: As the person who is typically on the Other side of the equation
Date: 2012-01-31 06:47 pm (UTC)Of course, his story doesn't involve his friends telling him that they really *need* him to get to LA by next Sunday, and encouraging him to not sweat the details too much before he commits. Sadly, the real world usually involves that as well...
Re: As the person who is typically on the Other side of the equation
Date: 2012-02-01 12:11 pm (UTC)Overall, with careful practice, I've gotten very good at estimates of my own work. (It took years of writing down an estimate for everything I did, and then reviewing whether I hit in the end or not.) Our team is also relatively good at estimates of our work. Unfortunately, we work within a larger group where estimation is not just not done well, it's often not done at all -- or done to exactly the same level as this analogy starts with.
What's the path to improve the situation?
Re: As the person who is typically on the Other side of the equation
Date: 2012-02-01 02:39 pm (UTC)The only approach I've ever found to work adequately is velocity-based estimation, within the context of a generally Agile-style environment. That is:
-- Every project is thought of as a story stack, decomposed to at least a moderate granularity before you start.
-- The team does abstract point-based estimates of those stories. These are just guesses, but they're consistent guesses by the same people.
-- You track how long it actually takes to get things done, coming up with a rough metrics of points/month for the team.
-- Once you've done that once or twice, you now have the velocity multiplier (that points/month value), so subsequent projects can use that number to come up with a vaguely-accurate estimate. Keep refining that on a regular basis.
None of this is easy, though: it requires a lot of discipline from *everyone* involved (management at least as much as engineering), it takes a good deal of time to bootstrap, and it doesn't trivially port across teams unless you make a company-wide effort to develop a consensus understanding of how to estimate points. It can be done, but you're talking a minimum of six months (and more likely a couple of years) to really get it humming.
(Memento started doing Agile in a really serious way just about a year ago, after a year or two of me forcing it for my project. True to the usual predictions, we're just about now at the point where it's working smoothly and starting to produce consistent metrics...)
(no subject)
Date: 2012-01-31 08:32 pm (UTC)(no subject)
Date: 2012-01-31 09:49 pm (UTC)(no subject)
Date: 2012-01-31 08:42 pm (UTC)it sounds like the vast majority of what my days are like....
(no subject)
Date: 2012-01-31 09:03 pm (UTC)