Many of the projects I see companies start never get done within their timeline. I've often wondered why this is and after some thought I've come to some conclusions. So I'd like to present the reasons I've seen projects just shoot right past their timelines like there was no tomorrow. I can't cover all of them, and some of the reasons I list below may not apply to your company, but this may still be a good place to start.
1. Failure to involve all the technical people. I've seen this one quite a bit. The managers will all have meetings to decide what they need done, discuss timelines and budgets and write up charts and graphs and then approve the project. Then the managers talk to the technical people who are actually going to do the work to then have a bomb dropped on them. In some cases the bomb is dropped right away. In other cases, the technical people get to work knowing the timeline is utterly unachievable and the budget not enough. Once the timeline is come and gone then the bomb is dropped. It is very important to get the technical people involved FIRST. Not last. Since they are the ones that will be doing the work they know what needs to be done.
2. Failure to take into account holidays. I can't count the number of times I've seen managers try to go live on major projects during the week of major holidays such as Christmas or Independence day. Of course, the project falls apart because most of the people needed to get things underway are all on vacation - or wishing they were on vacation. In point of fact, I even watched a small business owner actually make the decision to go live with a significant change to her business on January 1. The rule of thumb I've seen work is to add two to three weeks to the timeline of any project per major holiday that it runs over.
3. Failure to account for planned vacations. If your company doesn't have a vacation calendar then I highly recommend getting one. If you have a SharePoint site, you already have one. People who are on vacation aren't getting their part of the project done and that time must be accounted for. Ignoring vacation time it doesn't make it go away. If you can't assign the work of the person on vacation to someone else, the timeline will need to be extended.
4. Failure to account for other projects. Most companies are going to have simultaneous projects going on. If you stop project ABC to work on project XYZ, then project ABC's timeline must be adjusted. This seems obvious but you'd be surprised at how many times I've seen managers upset with subordinates when project ABC blew past its timeline because that very same manager did not account - at all - for the time that project XYZ took. Stopping one project to work on another is common and sometimes has to be done. But the time taken by the new project must be accounted for.
5. Waiting until the last minute. If something needs to be accomplished and will take three months to get accomplished, waiting three months to even start work on that something does not make the three months it will take to accomplish it go away. It's very important to address pain points within the company as they appear and make informed decisions on what should be put off or worked on now.
These are the most common issues I've seen. I'm not saying that avoiding these issues will save your timelines. Somethings simply cannot be foreseen (inclement weather such as a hurricane that takes power out in the region for a week is a good example). However, you stand a much better chance of mitigation by addressing the issues above. Timelines are important, but keep them flexible. And be prepared to adjust or even have a plan B.