Since I am a bad artist, and usually work alone, this is how it goes for me:
- Think of a cool idea.
- Make a one level ugly prototype. (I sometimes use text instead of actual graphics here)
- Play the prototype and see if it's any good.
- Improve the gameplay protoype until the game is fun.
- Make the game pretty (Add art, menus, etc...)
- Send to beta-testers (friends)
- Improve controls & Fix bugs based on their input
- Publish game.
- Improve controls & Fix bugs based on user input
Since I work alone and know how to program, I skip the design document phase.