So, you work at a big software factory. It's pleasant enough, in a very sterile, non-evil, Office Spacey way. But your company isn't the best at project planning. You fall into a trap that lots of large companies fall into when they try to put together software projects. The project works something like this:
Step 1: Executive or non-technology department (Marketing, "The Business Unit", etc.) dreams up great idea.
Step 2: Idea dreamer upper tells technology group to build The Thing (oh, and how long do you think it will take?).
Step 3: Technology group assigns project to a project manager.
Step 4: Project manager - well-meaning but perhaps under pressure - gets a few reliable heads into a room and quickly puts together The Plan, complete with a code freeze date, a testing complete date, and a release date. Don't worry, this plan is just a SWAG. It isn't written in stone.
Step 5: Project manager presents SWAG to executives.
Step 6: Executives write project plan in stone.
All is well until the developers begin designing and building the project and discover it's going to take approximately nine months longer to complete than they have time for, assuming everyone works nights and weekends. At this point, the project managers begins thinking and comes to the conclusion that Just a Few More Developers will do the trick. Or maybe we'll Just Get Lucky and it will all work out in the end.
Step 7: The Mythical Man Month ensues.
This is a good way to create very high turnover or build a large unwieldy project that is useless at best and unmaintainable at worst. Fortunately this problem is easy to fix, but the solution is not always obvious and takes a little discipline.
Step 3.5: Project manager locates developers (the actual people who will write the code).
Step 3.6: Project team builds spec. Developers get to help.
Step 3.7: Project manager asks developers for detailed estimates of the time it will take. No task is allowed to exceed 16 hours.
Yes, steps 3.x take a little time, sometimes months. But you'll have to do these steps anyway and if you do them before step 4 instead of after step 6, you're going to get a schedule you can actually rely on. You know, the kind that hurts your hand when punch it. The kind that doesn't ooze all over the floor when it's dropped. And your developers will probably come up with creative solutions you never thought about that will save you loads of time and money. Plus, they'll enjoy themselves more and feel like they have some control over their lives and stay at your company and you'll get very large bonuses for the rest of eternity because your team will be so phenomenally productive.