Acceptance Criteria and Done

Acceptance criteria are statements that are true or false when the work is finished. Not a description of what you will build: a test somebody else could run.

You have written these five times already, at the end of React, APIs & Datasets, SQL, TypeScript and Full Stack. This is where the habit gets named.

A definition of done, written once, applying to everything. Criteria are per story; done is the standard every story meets.

A reasonable one for a project this size: merged to the main branch, tests written and passing, deployed, accessible from the keyboard, and the acceptance criteria demonstrably met. Write yours and keep it visible, because the point is that it is not renegotiated per story at the moment you want to be finished.

◈ Graded Challenge

Write is_done(story, definition) checking a story against the definition of done. story is a dictionary with a criteria list, where each entry is a dictionary with text and met, and a checks dictionary mapping each definition item to True or False. definition is a list of item names. Return "done" only when every criterion is met AND every definition item is True. Otherwise return a list of what is outstanding: the text of each unmet criterion first, in order, then the name of each failed definition item, in the order given in definition.

Name it exactly: is_done(story, definition)

Python3 visible + 4 hidden
loading editor…

Mark this lesson complete

Signed in, your progress follows you to every device.

Next: Practice Test →
← Back