I am the only developer for a nationwide company. Everyone else in this company has no idea about IT, from the owner down.

I have about a year of actual IT experience, so God knows how I got this role.

Fellow developers, especially .NET developers, how do you estimate the time required to complete tasks set by none technical people?

  • 11
    What you think is right *2.
  • 6
    I break the task down into steps until I get in a range of typically 1-5 days, then add up and allocate 20-50% buffer, depending on how familiar I am with whatever has to be done.

    When I have no precise idea, like when it's about bugs, it depends on how fucked up the bug is. Something easy like a business logic bug should take a day or two, something difficult like fixing a protocol stack or a race condition two weeks.

    Sometimes I don't even have an idea what it is about, then I request investigation time. That will be a compromise of what I think I need and what the customer will accept. I just fill in to-do items to make my time request plausible.

    But yeah, estimation is really difficult initially, I remember that from back then when I was a fresher.
  • 4
    @dotFuck for me its:

    actualTime = whateverIThink × 2.5 + x
    Where x is extra time to solve bugs and make things more readable for others
  • 1
    I guess you can't overestimate, so make it as ridiculous as possible while still being accepted by your boss or clients.

    If your task depends on other people give them a deadline that is much earlier!
  • 7
    Pi is a nice constant to multiply by.
    Tends to lead to overestimations for me, though, so I usually go with just doubling my initial estimate. I still use Pi when needing to wait on QA or other devs because they always take forever or let me down.
  • 0
    “it will take as long as it must to do it correctly”
  • 1
    @ryangurn "We will then pay you as much as we think we can afford" would be a valid answer.
  • 2
    Tell them whatever the hell you want, do the job faster, earn reputation. (And eventually a raise)
  • 0
    @dotFuck and if it still seems right multiply that by 2 again
Add Comment