The Foundation & The Details
You can’t build the details without having a foundation and you can’t build a foundation without knowing which are details it will be used for.
When we are working on either the foundation or the details, it easy to keep our heads down and dismiss the other half of the project. That’s the reason every software project “last 10%” actually takes 90% of the time because it is actually the other critical half of the project.
The following sentences may affect you emotionally.
“I have all the foundation laid out, I just have to implement the details.”
“I have all the details figured out, I just have to lay the foundation.”
Now, it easy to dismiss this by saying “I have a reusable foundation” which is true if you are building the exact copy of a project which is never true because even the slightest change in the details will also affect the foundation. The same is true for the details, “I have all the details ready to use” is never true because the way you need to glue them together changes from case to case.
No matter the time available to you, nor the size of your task, split it in two: the foundation and the details and each one has to take the same amount of time. It is a way better alternative to “just estimate and then add 50% more time” because it focuses on how you spend your time not how much time is needed. Time is always available if is well spent.