In a previous entry, I mentioned that, when you use an agile product development process, you deliver "a working version of the product for review" at the end of each iteration. I mentioned in a later entry that Alistair Cockburn criticizes organizations that claim to use agile methods but don't deliver product at the end of their so-called iterations.
What does it mean to deliver a working version of your product to customers? What is the point of iterating if you "deliver product" after the first iteration?
The crux of the matter is that you should be able to demonstrate at the end of an iteration how a customer would use your product to address customer problems. So "working version" doesn't mean one that is ready for sale to the customer, but just one that is ready for demonstration. For a software product, that demonstration might include showing some hard-coded mock-ups in place of screens developers haven't yet implemented.