"Release early, release often ..."
isn't a silver bullet, but I will say that spending too much time in the design phase, at least in my projects, is usually lethal, unless it's constant redesign coupled with implementation.
While it is certaintly true that the only people who can complain are the ones that are working on it, it is also true that we do not like being taunted with all this shiny goodness if there is no schedule. This is, sadly, pretty much the reason I found Ruby ... and I really like it. However I want Perl6 to come along and would like early alpha or beta releases, and have features come in later (6.1, 6.2) etc, rather than have development go on forever without getting "users" into the fold.