Pulstar
That sounds like a really good idea about interdependence and prototypes. I usually start by messing around with a prototype and then plan the game, but I know from a couple of projects I've worked on that making a prototype for a specific mechanic can be really useful.
The interdependence idea is fantastic though. I mean, if everything is built from the ground up and the whole 'engine' of the game (functions for everything muahahaha) is done, anything else on top of that is super easy to make, and if they're separate parts of the code, the features can even be cut out altogether or placed into other projects.
I didn't do this in the past, but now I make every action in the game other than animation rules and every tick rules a function. Not only is this good for debugging, because you can just go to the exact part of the code responsible for the problem, but when you put in a console, you can literally do anything to the game. When you look at the source code of most major programs/games they have functions for almost every thing you can change in the game, from the position of the player to how much health a boss has.
A lot of the time though, I just get carried away with the art and forget about making a game haha!