Duplicate: http://stackoverflow.com/questions/14279/how-to-estimate-the-length-of-a-programming-task
I'll admit it up front: I'm Boris, I'm a junior programmer and I suck at estimating my develop time. I read a few books and was told by my professors how to plan my projects, but my core question never gets answered:
You never know the domain untill after the project. Even if you can ask all the questions you want and can contact the client as much as you could ever desire (let's pretend) I never know I don't know something untill it's too late. I can't ask questions about the domain untill I know I don't know things, right?
I think that's the main reason my estimations are always way off. That and the never ending urge to make things even better. :P
How do the seniors here handle it. Any real world techniques you use? Am I alone in being so much off? Articles suggestions are nice too, but usually they all tell me the things I know, but not my core question as mentioned above.