"the thing I am not doing - coding it - is exactly the part that is missing for the estimate to be good: knowing what trouble I'll get into while coding. Usually this trouble comes from me not thinking it through carefully enough and I'm missing something that ends up giving me trouble, or some functionality I'll be reusing doesn't work just the way I think it does, and my approach is wrong. I can't know this without coding."