The team aknowledges and displays somewhere in the team room, a list of criteria which must be met before a product increment is considered completed. If these criteria are not met at the end of a sprint, it usually means that the work should not be conted towards that sprint’s velocity.
Most Commonly Known As
Software developers are considered to be very sloppy when answering the question – “are you done with this feature?” – To be fair, this is an inconclusive question. It can mean “done programming” and this is generally what a developer will understand when answering. However, the meaning behind it is usually “are you done programming, creating test data, testing, ensuring it’s ready t obe deployed…”.
To get the actual answer, you should ask – “I know that you are done, but are you DONE-done?”.
What are the benefits?
– Usefully guides pre-implementation activities such as: discussion, estimation, design
– Once a feature has been aknowledged as “done”, the cost of rework becomes severely limited
– Having a straight-forward contract limits the chance of misunderstanding and conflict between the development team and the customer/product
– It can be counter-productive to obsess over the list of criteria; this list needs to define what is the minimum amount of work required to get a product increment closer to the “done” state
– The definition of done should not be just a shared understanding, it should be spelled out and displayed on a wall, or it might lose much of its effectiveness;
– Individual features or user stories may have a specific “done” criteria in addition to the ones that apply to work in general