Done is a verifiable state of affairs that everyone has agreed to. This is not about defining success, this is purely about agreeing what you will ship, when and in what phases
Disproof
If you're a BDD baller, just have everyone agree on the test suite. Or a very unambiguous statement of what capabilities, by what time
Consequences
Multiple imagined timelines based on different pictures of what’s being built
A tendency for customer facing teams to over-estimate what’s being built and underestimate the time to build it, resulting in mismanaged expectations
Destruction of trust and cohesion as, after non-product teams wait for weeks blissfully unaware that their expectations have been mismanaged, v1.0 turns out to be their v0.1
People act unprofessionally, communications break down, the company wastes money or gets outcompeted into an early grave
Causes
Sometimes, product teams just want to be rock’n’roll and freestyle it, thinking that the only alternative to massive waterfall specs is to have no specs. This is stupid, stop that
Sometimes, stakeholders use ‘acceptance testing’ to simply cram more and more things they want in there. Maybe they’re right, maybe they drastically misjudge the value that they’re trying to add to the product
Approaches
Everyone whose job depends on a delivered product should at least be appraised of what ‘done’ means, this time around
And some stakeholders will always want more than is reasonably doable in time
And that is why 'done' needs to be negotiated ahead of time or we simply kick that problem down the road
Try locating each stakeholder's true constraints (at what point can they really not support, do manually, sell or fund something)
In any case where you get an agreement, don't surprised if people forget it or willfully try to overreach it. Don't be afraid to remind people of why we have agreements