It seems more and more common that developers are spending months planning out features for their game before they even Start the development. Games are not a form that can be scheduled with a waterfall and expect a fun game at the end. Fun is not something that can be easily planned before hand and then expected to be the end product. The only way to truly test if an idea is fun is to actually go do it and discover the reaction that it brings up. it is because of this that rapid iteration is the only way for Developers to go. Or, as Mike Lewis so elegantly put it, ITERATE OR DIE. If you haven't started iterating yet, You might as well be dead.
Their is a torrential number of reasons why iterating is far superior to other development techniques, and all of those boil down to, "You are not as smart as you think you are". Now many of you may be up in arms about that statement, and I am not saying that you are a belligerent idiot, but rather that the reason is in human nature. People simply suck at predicting. Their is no way to know how something is going to perform or how it will be received until you go out there and gather a response. No matter how many ways you try and predict the release, no matter how much metrics you have collected, nothing beats the simple process of trying the physical thing.
Some wonderful advice that I was given, that I believe to be extremely important, is to test early and test often. Starting on day 2, as soon as the game is playable, Have somebody testing it. The sooner you get feedback into whats working and whats not, the less amount of time you waste pursuing frivolous ideas. Now, at the very least, you want two types of people playing your game. You want your advisers who can give you advice on what should be adjusted/changed and how to fix certain areas of your game. They should have a similar artistic vision as you to prevent potential clashing advice. Along with them, you also want the people who don't know shit about games. Now that may sound a little odd, but their reaction and experience is the genuine truth. Although they may give you shitty advice on how to fix issues, they will point out the issues that you should decide on whether or not to act upon.
Now, I'm not saying to immediately rush into developing without having a clue as to of what you are going to be making, but rather sketch out your ideas in the game to see whether they would even be fun. Games have so much more potential than being constrained to a rigid business oriented design and schedule. Developers should embrace the form of games as in itself an art and bring creativeness not only to the game, but the way it is developed as well. Games are free-form expressions that should be a living breathing entity, evolving with the developer, not just a rock.