“Hey, Fred, did ya get around to implementing the advanced search functionality?”
“I sure did, Ginger, it’s done.”
But do we really know what Fred means by “done”? And more importantly, does Ginger?
They may be operating under entirely different assumptions. Does Fred’s Definition of Done (DoD) mean he’s finished coding and the feature has gone to test, but may bounce back to him? Does it mean he’s demoed the new feature for the product owner, and met all acceptance tests for the new feature? Or something in-between?
It is vital that the team agree up front on a common definition of what it means for a feature to be “done.” Agile and Scrum set great store by the concept of the team producing shippable product in every sprint. In practice, most Agile teams define a feature as Done when it is “potentially shippable.” Since it isn’t always practical to actually ship features as they are completed, it makes sense to establish a set of doneness criteria that demonstrate a feature’s readiness to ship all other things being equal.