The motivation to ship early and often is to obtain feedback on the product. Of course, such feedback is extremely valuable, but it can also come at a cost. IMO, whether or not it is a good idea to ship early and often depends on the "cost" of obtaining feedback.<p>For example, say you are developing a web-app for a sizable customer base and it is easy to release intermediate releases and put it in front of a small fraction of your potential customer base and obtain instant feedback. In this scenario, your "cost" of obtaining feedback is negligible and I think it makes all kinds of sense to ship early and often.<p>However, consider another scenario (one that I am more familiar with). You are developing software for a medical device, perhaps in a surgical setting. Your chances to test this software with <i>actual</i> customers (e.g. surgeons operating on live patients) are extremely limited and costly to obtain. Not only that, but surgeons (and doctors in general) have a low tolerance for time wasting and may very well lose confidence in a product that is not thoroughly tested. The confidence of your early-adopter surgeons, often key opinion leaders (KOLs), in your target market is something you cannot afford to lose. In this scenario, cost of obtaining feedback is staggering and shipping early and often, to real-world customers, is almost impossible and wholly unadvisable. I still recommend you iterate and test often in this scenario, but it must happen internally.