Yeah, Scrum has documentation

Some people assume that Scrum's approach to planning lacks documentation. They assume that the lack of a massive functional spec document means you're making things up as you go along. That's wrong, obviously. User stories are awesome, but they're not the end of the process.

Acceptance Tests

A way of documenting the detail of a user story is to write acceptance tests. They're quick to write, simple to understand and give you another form of "visibility" in your project. Scrum's about visibility after all.

Here's a straightforward user story:

As a — Unregistered user
I want to — Signup
So that — I receive member benefits

That gives us a rough idea of what the story does, but there are details missing. What do we present to the user if they enter some invalid data? What feedback is the user given after registration?

Here are some acceptance tests that clear that up for us:

Given — I'm an unregistered user
When — I fill out the registration form and click "submit"
Then — My data is checked for errors and if invalid, I'm shown a message and a list of errors

Given — I'm an unregistered user
When — I fill out the registration form with and click "submit"
Then — My data is checked for errors and if valid my account is created, I'm logged in and I receive a confirmation email

They're simple examples, but you get the idea. You could even break those into smaller tests if you have a more complex process.

What is "Done"

Establishing what "done" means is a massive time saver. Here's a typical definition of "done" at Fudge.

  • Application tests written and passing (functional, unit etc...)
  • Cross browser checks complete
  • Design QA complete
  • Database population task written for the feature
  • Feature deployed to staging and ready to test

With the use of acceptance tests, you can add one more item to the list.

  • All acceptance tests passed

This makes life much easier. If you have a list of easy to digest tests that outline the functionality required to complete the story, confirming that it's done is simple.

If all of the acceptance tests pass, it's ready to ship!