3 ms·
The original question was "Why are developers expected to estimate tasks at all?" @benjaminwootton gave perfectly sane answer to that question. HOW developers
by SergeAx 4y ago
The original question was "Why are developers expected to estimate tasks at all?" @benjaminwootton gave perfectly sane answer to that question.
HOW developers should make their estimation is a totally different question, but it is not some arcane knowledge, and it should be an everyday craft for every mid-level engineer. First of all, we are doing those tasks by hundreds through our careers, so an easy way is to remember how long similar tasks took us last 10 times an produce a bracket, like in "from 5 to 8 working days, let's say 10 to be sure". Every business person will be happy with that answer.
OP says that every engineering task is unique as a piece of art. This is BS, IMO, except for the very junior engineer. Most of the time business wants some well-known and hundred times done things they see their competitors do. All the uniqness stems from particular codebase. If your codebase is a mess - you are in trouble, but it is you problem, not the general problem of software engineering.
In case I have some really unique task, what I should do is to say: "I cannot estimate this right now. Give me two days and I will get you an estimation". In those days I decompose the task into smaller, and divide those smaller tasks into "well known" and "unknown". Then I imagine (or even draw) a trivial Gantt chart and will have my estimation.
It is also totally normal to change your estimation during the work. You just should do that the moment you see a problem, not at the day of the deadline.