I’ve blogged before on the fallacies of software development estimates. I found this posting particularly well thought-out and illustrative of the problem at hand.
While I still engage in the “crap shoot” on smaller projects, I’m long done providing any kind of fixed-price bid on any project of significant size. I continue to estimate, but I’ve found the iterative approach so effective that I can’t imagine approaching things any other way.
I still have some customers that rely on me providing estimates, in which case I adhere to the “target budget” approach for development where specific features are taken into consideration but not promised. It requires a fair bit of explaining, which lengthens our proposals but so far this has worked well for me.
One thing I need to work on, based on feedback from a customer a few weeks back, was that my approach is very technical in nature. I need to get better at tying technical objectives to business objectives, providing better business focused milestones. Always something to be improved 🙂