Dare Obasanjo makes a great point about two common sides in design: "get it done now" versus "get the best design now". He uses VB for Excel as his example, and cites arguments from the people on both sides of that - Joel Spolsky on the "ship now" side, and Greg Whitten on the "get the design right" side. I think Dare hits it out of the park with his summary:
The unfortunate thing about this entire incident is that it would have been a great learning experience for Joel if he had stayed on in Excel to see some of the consequences of his design decisions and then be in a position to consider whether he'd made the right tradeoffs in the first place. Of course, this is pretty commonplace when it comes to large software platforms where people can spend 3 5 years working on a single releasewhich in combination with an average job tenure of 4 years in the U.S.(probably less in fast paced the software industry) means that many people never learn from their mistakes or improve their skills over time.
I was having a conversation a few days ago about a similar decision made by a small number of people at what was then ParcPlace 15 years ago that we are still dealing with today. None of the protagonists are still with the product; the only reason I know the history is that I've been continuously with the product over that entire interval. I know I've become way, way more cautious in my desires to have engineering "just bang a feature out now" thought processes - but then again, shipping itself is a feature. I think this is perhaps the single hardest thing to get right in this field.