Slashdot Mirror


How Do You Accurately Estimate Programming Time?

itwbennett writes "It can take a fairly stable team of programmers as long as six months to get to a point where they're estimating programming time fairly close to actuals, says Suvro Upadhyaya, a Senior Software Engineer at Oracle. Accurately estimating programming time is a process of defining limitations, he says. The programmers' experience, domain knowledge, and speed vs. quality all come into play, and it is highly dependent upon the culture of the team/organization. Upadhyaya uses Scrum to estimate programming time. How do you do it?"

6 of 483 comments (clear)

  1. Simply, no software required. by loftwyr · · Score: 5, Funny

    I take the amount of time I think it will take, double it and move it up a time unit.

    So, if I think it will take two days, I estimate 4 weeks. If I think it will take a week, I estimate two months and so on.

  2. W.A.G. by ipb · · Score: 5, Insightful

    After 40+ years of programming it's still a Wild Assed Guess.

    You're never given enough time to prepare your estimate, marketing has already
    determined the delivery date, and management doesn't know what it is you're
    supposed to create anyway.,

  3. It's Easy by BabyDuckHat · · Score: 5, Funny

    I just ask my manager how long he's already told the client it's going to take.

    1. Re:It's Easy by VoxMagis · · Score: 5, Insightful

      I wish I had mod points for this - it's the most realistic answer yet!

      --
      -- I really need to bleed off some of this /. karma.
  4. Quid pro quo by HangingChad · · Score: 5, Insightful

    The programmers' experience, domain knowledge, and speed vs. quality all come into play, and it is highly dependent upon the culture of the team/organization.

    My time estimates will be as accurate as your specs. You stick to the specs, I'll stick to the estimate.

    --
    That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
  5. Uhh, Scrum is not an estimation method by pclminion · · Score: 5, Interesting

    Scrum is a way of chunking development into well-defined portions. The idea of using Scrum to estimate time just doesn't make sense. Everything in Scrum takes the same amount of time. Two weeks. (Or one week, or whatever your sprint length is.) The difference is that long projects are implemented over multiple sprints, since obviously, not everything can be done in two weeks. So the estimate is not of how long it will take, but how many backlog items will be required in order to reach some known endpoint. Once the backlogs have been created and agreed upon by the team, estimating the necessary time becomes a matter of multiplication: 12 backlogs * 2 weeks = 24 weeks to finish this product.

    This makes you shift your thinking from "how long will it take to do all these things" to "how can I break this product development into chunks which each fit into a two-week period?" That's much easier than making wild-ass guesses about the time it takes to do something.