Skip to content

3. Writing Tickets & User Stories

Peter Witham edited this page Jun 7, 2017 · 5 revisions

At CodeDoesGood we use a system for creating tickets and stories to define the work we do. Once understood the system will make sense to both experienced and new developers. Due to the descriptive language used to create them, they will also make sense to anyone with a non-technical background when reading.

Writing User Stories

What is a User Story?

A user story is a narrative that describes a user using an application, whether it is on the Web, mobile, or a desktop. When a user is doing something with your application, they are creating a story.

A simple example of a story might be a user logging into an application, it might go something like this.

  1. As a user, I want to be able to open the application and get a login screen where I enter my username and password to access the application's features.

A user story could be broken down into a use case to describe the actions in more detail.

The Use Case

A simple example of a story might be a user logging into an application, it might go something like this.

  1. The user opens the application.
  2. The user taps the login button and a login screen is displayed.
  3. The user enters their name and password, then taps the login button.
  4. A please wait message is displayed as the app verifies the login.
  5. The user is authenticated and a menu is displayed.

Now, this is a very simple example, but it is also not complete. What if the user details are incorrect? We have to cover all options so developers know what should happen under any circumstance. To do that we break down more complex parts of a story into sections, let's update the story to handle the situation of a failed login.

Exceptions

6.1 The user details are not authenticated.

6.2 The user is notified that they entered incorrect information.

6.3 The user is returned to step 3.

At first, you may think this is over explaining a simple process, but the point here is to give all the information needed to create a series of tickets to develop the feature. Stories will often go through many revisions before being considered complete, these stories are also an excellent way to give other people a clear explanation of what to expect in an application.

Writing Tickets

Writing a ticket (also often called a task) is much like writing a recipe to complete the story. The best way to think of a ticket is a description of a particular thing that needs to be done. It is always preferred to have a specific goal for a ticket. For example, taking our story above we would not have a ticket that just says 'Create user login procedure', that is too broad. There are several things we need to do to complete our story, and often they are not all done by the same person. We are going to breakdown our login story to a series of tickets so that our developers can work on the story. We will create tickets for each task that needs completing, our list would be something like this.

  1. Create UI for login screen.
  2. Create UI for menu screen after login.
  3. Write code for handling login functionality.
  4. Handle incorrect password or username.
  5. Display errors to handle exceptions to expected flow.

Tickets will not always need to be so verbose, here are a few other examples of tickets.

  • Create Wiki page describing ticket writing.
  • Provide logo graphic to marketing.
  • Create new user account for Bob.

A ticket will always describe everything needed to complete the ticket. This is perhaps the most important take away from these examples.