As part of SVPM team I got a better understanding of user stories, their purpose, their structure and benefits from writing a good user story.
First of all what is a user story? User story is a short description (one sentence) of a feature, described from the user’s perspective. It is the smallest piece of work that brings some kind of value to the end user and can be accomplished in the duration of one sprint.
Common form of a user story is:
As a (type of user/role or persona), I want to (an action/goal/need), so that (a benefit or value/why).
User stories need to be written in plain language, so that a non technical person could understand what feature/functionality is described and what should be developed. When writing user stories, we should be concentrated on the product and we should offer more information and clarification about the product/product feature that we are building, defining the what (what we are building) and not the how (how are we going to build the feature). That should be left to the development team.
Before writing a user story, we need to have a good understanding of the real users (end users) of the product, and think as a user. This can be accomplished through good user research. You can define couple of user personas representing different profiles, define their “problems” meaning their needs, and based on that you can start developing ideas about functionalities that would address those needs and resolve the “problem”.
Since user story does not contain details on the functionality, to give more clarity to the development team on what they should develop/build and the functionality should perform we create the Acceptance criteria. This will give clear information to the developers when are they done with development and also give information to the QA/testers how their test scenarios should look like and what result is acceptable. Also very important is that AC makes it easier for everybody from the dev team to get on the same page regarding the user story. In short it is a condition that confirms when a user story is completed. AC is very similar to DoD, and I would say that in order for a user story to be done, it need to meet both the AC and DoD.
Just like the user story, the acceptance criteria should be written in plain language. Acceptance Criteria/DoD is owned by the Scrum team, the POs have their input almost always, but at the end of the day it is owned by the Team, because the team is the one that will deliver the functionality/increment, and they know exactly how they will accomplish that.
Acceptance criteria can be Rules-oriented or Scenario-oriented. Rules oriented are written in a form of a list or bullet points and Scenario oriented, are as you guessed in a form of a scenario for each criteria that needs to be fulfilled. You can really use either one, they both work just fine. The scenario oriented AC is very popular among Agile teams because they use it to do manual and automated testing.
Most common scenario oriented acceptance criteria format is Given/When/Then derived from Behavior Driven Development (BDD), and the same format is used when writing acceptance test for a given feature/functionality. This format of writing acceptance criteria/DoD is also known as Gherkin Syntax.
Bellow I am offering my example of a user story and AC and DoD for the same. The example is referring to a search bar on our SVPM page.
“As a visitor to the SVPM page, I want to be able to search on the web page, so I can find blogs and information and stay informed about PM and Agile”
-Scenario oriented AC:
Scenario: Visitor user searches for information
“Given that I am a visitor user, When I open the SVPM web page and click on the Blogs tab, Then system shows me all the blogs posted, and the system shows me Search bar on the right top corner of the web page, When I fill in the search bar with key word about the information I need, and click the search button or press Enter on the keyboard, Then the system displays the links to all the blogs that contain that key word written in the search bar, and if the system does not have blogs with that key word, Then it displays message no blogs found.”
-Definition of Done
“Create a search option on the web page that will be able to search key words through the data base of all the blogs published on the SVPM page, and display all search results in a list. If there are no matches, display message no blogs found”
This is my short knowledge of user stories and acceptance criteria that I gathered since being part of SVPM team. If you have any additional information, or you want to offer your knowledge of User Stories, Acceptance criteria, Definition of done, or anything Scrum related, do not hesitate to write a comment and open a discussion. I am eager to learn, improve and be more Scrum-tastic 🙂