12 User Stories & Requirements

CONTENT

A cartoon image of a grey Gryphon. It is holding a pointer stick and pointing to something to its right.

  • User Stories
  • Requirements
  • Activity: User Stories & Requirements
  • Activity: Case Studies

SLIDE DECKS

Some of the material presented in this chapter will be discussed in class. It is your responsibility to ensure you cover all the concepts presented both in class and in this textbook.


Depending on the size of the project you are working on and its level of complexity, there are several different tools you can use to describe the problem you are attempting to solve. These include (but are not limited to) user stories, requirements, and use cases. In this section, we’ll focus on user stories and requirements. We’ll come back to use cases later.

User Stories

User stories are short stories – one to three sentences long – that describe one thing the user will do, and why they want to do it. The key point is that a user story is limited to one thing the user will do with the system. A general structure for a user story is provided below.

It is important to note, however, that user stories are not about the system itself. Instead, user stories provide us with information about the actions or functionalities that are important to the users that we will need to build into our software solution.

It is also important to note that user stories are not about implementation. User stories do not tell us how something needs to be built. Consider the following user story:

  • As a University of Guelph Student, I want to be able to look up my course grades so that I can calculate my cumulative average.

While this user story informs us of what the user might want to do, it doesn’t tell us how they might do it. There are a number of ways that they might look up their grades. For that reason, user stories are not instructions.

The general format of a User Story

As a [user type], I want [some action/function] so that [some reason].

Requirements

A requirement, much like a user story, represents one thing the software is expected to do. Unlike user stories, requirements include extra information, cover more actors, and have a broader scope.

First, requirements include a MUSCOW label. While MUSCOW will be further described in a later section, know that the possible labels include Must, Should, Could, and Won’t. Clearly, the label describes the level of importance the requirement has in relation to the rest of the requirements.

While user stories focus on actors that fall under the “user” label, requirements are necessarily broader than this. That is, requirements might describe functionality that the user would be interested in, but they can also describe functionality that might exist between systems. For example, it may be necessary for your system to connect with the PayPal servers to verify a transaction. In this case, the actor of the requirement would be the system you are designing.

Why wouldn’t the actor be PayPal?

The simple answer to this is that you aren’t designing PayPal. Your system might use it, but building a requirement for PayPal is well outside the scope of your project, and likely not something you can control or implement.

In addition to the functional requirements of your system, your list of requirements might also include non-functional requirements. These requirements might include, for example, legal requirements (e.g. level of AODA compliance), aesthetic requirements (e.g. identification of a particular colour palette or font choice), or other client/user requests that aren’t explicitly about system functionality.

Finally, and similar to user stories, requirements tell you what needs to be developed, not how to do it. Again, there will likely be many different ways to build a solution that satisfies the list of requirements that you will identify. Some solutions might be better than others, and some might require more time and money to implement. And some solutions might make more sense to the client than others. As a designer, you will need to learn to balance all of these things to deliver a product that satisfies the list of requirements and provides the client with a tool that they can actually use.

The general format of a requirement

The [user/system type] [muscow] do [some single action/function] [for some measurable reason].

Some of the main differences between requirements and user stories are provided in the table below.

Requirements User Stories
Actors Involved The users of the system, and the system itself The users of the system
Scope Functional & non-functional (based on both the system and the user, and how each interact with the system or other systems) Functional (based on what the user needs to do with the system)
Extent Requirements are about what the system or user does, not how it or they do it User stories are about what the user does, not how they do it

Activity: User Stories & Requirements

Consider the following user story. You’ll note that it does not tell you anything about implementation; it simply describes one thing that a user would want to do with the system you are intended to design. Take a moment to consider the different ways in which you might achieve this user story. Are some of your solutions better than others?

As a user, I want to be able to securely sign into the system so that I can update my profile settings.

Identify at least three different ways that you could implement a solution to satisfy this user story.








Consider your potential implementations. Which of them would you consider to be the best solution? Which of them would require the most time and money? Which of them are quick and cheap to do? Can you identify one that would provide the most return on investment (that is, not too time-consuming or costly, but adequately satisfies the user story)?








Referring again to the user story provided, and imagining the user has pressed “submit” to sign into the system, what might the system do in response?








Activity: Case Studies

For each of the following case studies, consider if you would develop a set of user stories or requirements to outline and understand the problem that needs to be solved.

Case 1

Your boss has tasked you to build a mobile dating app and web interface that connects local singles based on common interests and a patent-pending matchmaking algorithm.

Case 2

You have been asked to build a website for “Art in the Street”, an annual event held in downtown Guelph. The website should provide users with details about the event, including a schedule for each day outlining who is presenting, where, and when.

Case 3

You and your team have been assigned the task of developing new software for North American air traffic controllers that will replace the aging and outdated systems they currently use to manage flights and airspace.

Review Questions

License

Community-Engaged Systems Analysis & Software Design Copyright © 2024 by Daniel Gillis and Nicolas Durish. All Rights Reserved.

Share This Book