I have used the term demo driven development before but in a different context. It is when clients can’t articulate the business requirements without seeing and using the software. New and different requirements arise after using the software or seeing a demo. There is not even a clean way to handle this legally in a contractual sense of what is to be delivered. It becomes an infinite cycle with no way to honor const…
as for the contract, if the client can't settle on a goal i would fall back to hourly billing with an open ended contract. not every contract has to start with a specific deliverable.
but really, the better approach in this case would be to start with roadmapping or similar. let's spend X hours/days to analyze your business needs and come up with a proposal.