As we saw in the last lesson, we often build 'features' which break down into a set of user stories. We created the Feature wiki page (for a feature called 'Quiz') in the last lesson and we'll create the User Story wiki page in this lesson. In terms of format they are quite similar.
You will recall that we created a table of user stories in our Quiz wiki page.
In this lesson, we will create a User Story wiki page for the user story called "Retake Quiz".
Format of a User Story page
Now focus on an ideal user story page. It has the following sections:
Additional Links (if any)
We will now create this wiki page for the Retake Quiz user story, which is as follows:
As a student who failed the test, I want to be able to retake this quiz 24 hours later.
The background should give a little general information about this user story. Whereas the 'background' section for the feature spoke generally about a high-level description of a Quiz, the background section for Retake Quiz should provide a high-level description about the retaking of a quiz. Here is an example:
A 70% score is required to pass a quiz. It is possible that students will fail a quiz.
For those who do fail, the idea is that they should go back to the course to study it further and then return to do better in the course.
Therefore, they are prevented from retaking the course for 24 hours. Afterwards, they may take the course one more time, but if they fail a second time, then they cannot do the quiz again.
Certificates will only be given to students who complete all quizzes and activities, meaning that this student can no longer pass this course.
The feature wiki page just provided a couple of screenshots for what a quiz looks like. But for the user story, we should try to provide all the screenshots necessary for this user story. For example, "Retake quiz" could have screenshots for:
student passes a quiz
student fails a quiz (recently within the last 24 hours)
student fails a quiz (over 24h ago)
The acceptance tests should be listed here in a table (or several tables depending on how you group them. You can group them by 'rule' as we saw in the Acceptance Tests lesson).
Here is what I have as Acceptance Tests for Retake Quiz:
Reformatting User Stories
Sometimes you realize as you write out acceptance tests, that it would be better to add or remove a user story.
If the acceptance tests for one story seem to overlap a lot with that of another user story, you may want to merge the user stories (meaning that you will rewrite your user stories slightly).
User stories should be independent, according to the INVEST model. Sometimes it is only when writing acceptance tests that we realize that everything would be cleaner if we add/remove a user story or two.
Let's look at that scenario in the next lesson.