7

* break it into elementary steps, small enough to fit into your "estimation time unit", e.g. days or hours.
* estimate those steps for "developing at a leisurely pace" if nothing goes wrong.
* think about "what could go wrong" (list everything!) and adjust values accordingly.
* adjust total amount with experience values, like:
* times 1.2 for every manager
* times 1 to 4 based on which legacy projects i have to touch

and finally:
* multiply with `1+log(t/u,2)`, with `u` being the amount of useful data in the requirement description and `t` being the total amount of data in the requirement description
* sample: with our current "favourite" customer, about 90% of all tickets is garbage, so t/u = 100/10 = 10 => log(10,2) = 3.3 => multiply everything with 4.3

Comments
  • 4
    Enter project managers who bring a ready-made estimation sheet and declare that's the maximum limit to be spent on any task...

    Takeaway: fail fast, i.e. make trouble before it's too late and work has already started and everyone supposed that you're okay with the "estimates" as a developer.
  • 0
    @fraktalisman best advice I've read all day.
  • 2
    The value of estimates on prior similar tasks (despite unpredictability in software dev in general) can't really be understated. It's the essential value of experience that gives people the ability to make somewhat accurate ballpark estimates at all.

    Probably one of the real core values of having experienced devs is removing uncertainties in budget and timeline forecasting.
Add Comment