Quote:
Start with the code, and create your levels around the code. You'll have to do that anyway, but starting with design will result in design -> code -> redesign.


HORRIBLE advice.

To rephrase your quote:...but starting with code will result in code-> design -> recode.

Example 1: you code a level. You realize late in the coding that you need a day/night system. Now I ask you, how hard will it be to recode the game to include a system that wasn't included in your original code?

Example 2: you design a level. You realize late in the design that your levels need a day/night system. Same question: how hard will it be to redesign your document to include an day/night system?

Now examine both example: Re-writing a design document is way easier than re-writing code. If you are going to make a game, get the game on paper as solidly as you can to make sure that the idea is viable, possible, manageable, etc and then base the code around that. If you start with code, then you are making stuff at random, hoping that your game will fit around it.

Note that this is true if you are working alone or in a team. Things always look great in our head; it's when it gets outside of our head that reality bitch slaps you. In this case, I'd rather be slapped with editing a word doc over reprogramming code.