The Definition of Done (DoD) is a checklist that defines when a piece of work is considered complete — a concept so apparently simple that it requires a formal definition, a team agreement, regular revisiting, and its own section in the Scrum Guide.
The Definition of Done exists because “done” does not mean the same thing to everyone. To the developer, “done” means the code works. To the tester, “done” means the tests pass. To the product owner, “done” means the feature is visible. To the Scrum Master, “done” means the checklist is satisfied. To the customer, “done” means they can use it. These are five different definitions of the same word, and the Definition of Done attempts to reconcile them into a single checklist that everyone agrees on and nobody fully follows.
The Checklist
A typical Definition of Done:
- Code reviewed
- Unit tests written
- Integration tests passing
- Documentation updated
- Accessibility checked
- Performance tested
- Security reviewed
- Product owner accepted
- Deployed to staging
- Deployed to production
This is a fine checklist. It is also aspirational. In practice, the team satisfies six of ten items, declares the story “done,” and moves on. The four unsatisfied items are either forgiven (“we’ll do the documentation later”), waived (“accessibility isn’t a priority this sprint”), or ignored (“security review? we have a firewall”).
The Definition of Done is a social contract between the team and its own standards. Like most social contracts, it is renegotiated under pressure and honored in the breach.
The Redefinition Cycle
The Definition of Done is redefined with metronomic regularity:
- Sprint 1 — The team writes an ambitious DoD. Ten items. Code review, tests, documentation, security, the works.
- Sprint 3 — Documentation is quietly dropped. Nobody was updating it. Nobody noticed.
- Sprint 5 — Security review is marked “as needed” rather than mandatory. Everything is as needed. Nothing is needed.
- Sprint 8 — Performance testing becomes “for large features only.” Every feature is reclassified as small.
- Sprint 12 — The Definition of Done is: code reviewed, tests pass, product owner says yes. This was always the real definition. The other seven items were decoration.
The redefinition cycle is not failure. It is calibration — the team discovering the difference between the DoD it aspires to and the DoD it can sustain. The gap between the two is called “technical debt” when we’re being honest and “pragmatism” when we’re not.
The Lifelog Definition
In the lifelog, the Definition of Done is:
scp lg user@server:~/bin/
systemctl restart lg
curl -s https://lifelog.riclib.net/health
The code is done when it runs in production. The test is: does it work? The review is: the developer is also the reviewer, the tester, the product owner, and the customer. The checklist has one item: it works.
This is not scalable. This is not reproducible. This is not certifiable. But the website loads in 47 milliseconds, the binary deploys in one command, and the Definition of Done fits in three lines.
The Lizard’s Definition of Done has never been redefined. Because it was never wrong.
