If you say "I can do that in 8 days", but that 8 day estimate is just gut feel, why should the customer believe you? Why should YOU believe you? "Well, it'll be 2 days for this, 3 days for that, and 3 days for that". OK, now you're at three subestimates.
We beat down estimates into tasks that are no larger than 4 hours each. It's not absolute: Some 6 hour tasks may slip by, but just like a subroutine that's bigger than a screen is probably too long, tasks that are longer than 4 hours are probably too long.
Four hours is our sweet spot. Not too long, not too short. It also helps require that you don't forget a chunk of functionality. "I can do that in 20 hours." OK, so break it up. "A and B and C and D will each be 4 hours. Oh, and we need E for support, and F to modify infrastructure. 4 hours each." That's 6 tasks at 4 hours each. You're now at 24 hours. You haven't even started work and you're 20% over the original estimate. :)
Works fairly well for us, and by "fairly well" I mean "less disastrous."
xoxo, andy
-- Andy Lester => [EMAIL PROTECTED] => www.petdance.com => AIM:petdance