Estimating the required time for a task, is not an easy job to do, if you want to be precise! The main problem with estimating is that, most of the time it is wrong! Being wrong is not too bad for an estimation. But, being too wrong is a disaster for a project. For example if you estimate a task 2 days, but it takes 2 months it is something horrible for project managers.
Here, I want to introduce a mistake (the most common mistake), people make while estimating projects. In fact, I think this is the most expensive mistake during an estimation process. To understand this mistake, you should distinguish between two concepts: Time Estimation and Effort Estimation.
Time Estimation
This is something that project managers want to hear. When they ask about estimating a task, they are looking for a specific time in the timeline that the task will be considered as done, for example "It will be done at next Thursday". So, the expression "next Thursday" is a valid answer for a project manager asking for a time estimation.
Effort Estimation
This is something that developers want to tell! They want to say how much time does it take to finish such task. For example they want to answer it like "It takes one week to do it". When they say it takes one week, it doesn't mean that one week later the task will be done!!
Successful Estimation
Developers focus on the effort and the characteristics of a task itself. But from the project managers point of view, tasks are just some piece of work with a deadline! So if you want to have a good time estimation, you should clear these concepts in your meetings. Also, make sure to have a good mix of both Effort Estimators and Time Estimators people in your meetings to bring all aspects into your conversations.