I'm a computer science student -- while I haven't been on any real commercial projects yet, I've done some dinky little group projects in class that requires some job/time management. Usually it goes roughly like this:
1) Talk about the project and what stuff we'll need to do
2) Figure out how to do stuff and who should do it
3) Realize we missed something, revise (1)
4) Repeat 1-3 several times
5) Tweak some stuff and fix any bugs
I imagine homebrew games (if they're being done by a team) and commercial games (EA, Activision...) are done roughly the same way but on a larger scale (for commercial stuff)
And of course sometimes (usually by order from some business guy higher up) they'll cut out most of the debugging process
It's not a bug, it's a feature!
As for release dates, I think they're a little bit silly. Look what happened to Skyrim. They just had to hit that 11-11-11 date
. Most of the time they're reasonable inside data to work on a schedule but to release it to the public years or months before the game can be finished is just asking for trouble.
You might want to check this out: