By default, done is ambiguous. Generously scoped projects suffer from many meanings of “done.” In the technology domain, done can mean many different things depending on who you are in the project.
- As a developer, done can mean Code Complete, but it is not QA complete or available in a production environment.
- QA may have finished their process; maybe they are done testing but are waiting on the developer’s response.
- The product owner believes that done is in production but behind a feature toggle, but not yet serving customers.
- The business owner believes done is that the feature is live and serving customers.
Done is an Enabling Constraint. Without a common understanding of what “done” means the system outcomes will vary. The development team believes that Done means code is complete, which happens to be planned the same day as the business team expects the work to be live and serving customers.