There was a project manager that judiciously kept track of estimates and actual hours for every feature. Her goal was to eventually get perfect estimates. It was a pipe dream. No matter how many years you have been developing or managing information technology projects, there is no perfect formula for estimating hours. It follows that there is no correct project schedule either. How can you mitigate the risks?
No two software applications are exactly alike. Add extra hours if you have never built that type of application (web application, desktop application, mobile application, or service).
No two software developers have exactly the same productivity. To mitigate estimation risk, if possible the person doing the work should estimate the work. Maybe you are doing FDD and you don’t know who is doing the work, take estimates from the whole development team and take the highest estimate. If you don’t know who is going to be on a project, estimate for mid-level developers. I have found that junior developers are about half as productive as mid-level developers. I have also found that senior developers are about twice as productive as mid-level developers. However, if your development team is junior heavy, your senior developers may spend all their time mentoring. Take all these things into account.
No two technology stacks are exactly alike. For each new tool/library/API add the appropriate ramp up time depending upon the level of unfamiliarity and difficulty. If you are doing Agile, Scrum or Kanban, create a separate story card just for the ramp up time.
No two clients have exactly the same environment. On my current project it was estimated that the on boarding process would take five days. To our surprise it took five weeks for everyone to get PCs, development tools, and access. Research the on boarding history and if the client manager that is doing the on boarding has experience and access in their own on boarding process.
Measure based on the levels of thickness. A three tier architecture will take less time than an eight tier architecture with services.
Above all, remember to breathe. Unforeseen things will happen that are simply out of your control.