In my interpretation, the purpose of rapid iterations is to validate/de-risk hypotheses. In some cases (most of the ones I've worked on), it's ALSO a useful way to ship, because for many use-cases, people are pretty tolerant of shit software. But I think there's an implicit/accidental conflation of iterate-to-learn / iterate-to-build / iterate-to-ship. The difference between them being the end audience after each minor iteration. (respectively: myself / my team-mates / my customers)