I tell my bosses that before I can give a solid estimate I need to have two things done first:
1) I've eliminated most (or all) of the unknowns
2) I know how I am going to do the thing I am supposed to do.
Sometimes I know the system and I know how to implement what's asked. But if I'm working in some of the legacy code we have the above 2 tasks easily take about 50% of the total time.
A project I'm currently involved with suffers from a few things... 1) the unknowns never end as teh client keeps changing the freaking requirements! 2) they don't like our estimates and keep asking us to find another implementation to meet their requirements that requires less time and 3) they basically are trying to get us to implement the various solutions while "estimating", so basically we are doing the actual work while "estimating"... the estimate is suppose to be used for determining how much and how the development is to be paid... so we are burning non-billable time estimating (doing "the work") in order to shorten the estimated billable implementation effort. So the calendar date of delivery really isn't changing but how much is going to get billed is decreasing. And, if we try after doing the work "estimating" to say the amount of billable hours is more than the time to now deliver, they're going to say that can't be. Then we'll either have to dig our heels in and saw we did billable work while estimating or not collect on billable effort. It's so messed up. If I was in charge, I'd have fired the customer by now.
If I was in charge, I'd have fired the customer by now.
Some people don't know what bad business is. I find myself worrying less and less about the experience level of developers I have to work with and worrying more about the experience level of clients as clients.
1) I've eliminated most (or all) of the unknowns 2) I know how I am going to do the thing I am supposed to do.
Sometimes I know the system and I know how to implement what's asked. But if I'm working in some of the legacy code we have the above 2 tasks easily take about 50% of the total time.