Thursday, February 05, 2009

Estimation

One of the more misunderstood parts of the software life cycle is the estimate.  All methodologies have estimates, and it seems that all management mis-uses estimates.  The rough estimate asked for at the beginning of the project rapidly turns into the contracted-delivery-date-with-penalties used to justify 80+ hour weeks.

One difficulty is that information deteriorates upwards in an organization - no matter how clear you are to your boss that it will take 3-8 weeks, +/- 2 weeks, he will summarize that as 1-10 weeks, his boss will split the difference at 6 weeks, and his boss will think 3 weeks, "because everyone knows programmers pad their estimates", so you end up with and already compromised schedule.

One of my early colleagues in the industry said that the minimum estimate for anything was 2 weeks.  Bigger projects got longer estimates, but the floor meant that you always had some spare time to cover where management cut your times.

One brave tactic that I have used on occasion is to tacitly refuse overtime.  I had a task once where I was asked to estimate the time it would take.  I guessed 2 weeks (sic), and turned that estimate in to my boss on a Wednesday morning.  That Friday at a status meeting I was informed that I was already 2 days behind schedule; imagine my surprise, since I was not told that my estimate had become my deadline.  I was especially peeved because I was working on a customer issue, so I had no re-prioritization to let me know the new project was my primary task.

So I just worked M-F, 8 hour days.  I did not stay late unless there was more customer site interaction, which often required staying until their staff went home at their local 5pm.  I was lucky in that my estimate was only slightly above the real effort.  But had it required more effort, I was going to stick to my routine, since it was not I who made the mistake in scheduling and priorities.

If you are unlucky enough to be in a Death March shop, there may be little recourse but to risk failure.  If you can form a cadre of programmers who are willing to hold the line on estimates, you might get your bosses to stop ignoring the laws of physics.



Technorati Tags --
, , ,
HTTP

No comments: