Task: Identify User Roles and User Stories
This task describes how to identify and capture the initial set of user roles and user stories for the system under development.
Disciplines: Requirements
Purpose
  • To identify and capture the requirements that form the basis of communication and agreement between the stakeholders and the development team about what the system must do to satisfy stakeholder needs.
  • To understand the requirements at a high level so that the initial scope of work can be determined.
Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
  • None
Optional:
    Outputs
      Main Description

      This task is about having an initial conversation with stakeholders to identify what the objectives are for the system under development. The team and stakeholders brainstorm to identify and capture the user roles and personas of those who will interact with the system and what user stories provide their objectives and reasons for using the system.

      User stories are captured at a high level (user story statement only) to encourage further conversation about them when it is time to add details.

      Steps
      Determine sources of information

      Be prepared for requirements-gathering sessions with stakeholders by gathering and reviewing information related to the problem domain, problem statement, business environment, and key stakeholders. Most of this information should be available in the vision statement. Also review the existing requirements repository for stakeholder requests.

      Identify and capture user roles and personas

      Conduct User-Roles Modeling sessions to help you brainstorm with stakeholders. Go through candidate user roles repeatedly until you have identified and captured an initial set of user roles, with their goals for the system and how they will interact with it.

      Another useful technique is to identify one or more personas for each user role. A persona is an imaginary representation of a user role. It helps identify the reasons that people typically use the system and how they will interact with the system. 

      Identify and capture user stories

      Conduct story-writing workshops to help you collaborate with stakeholders and gather the information needed. Conduct a couple of brainstorming sessions to start identifying as many stories as possible, without worrying about their size at this point. Capture the identified user stories for later prioritization, refinement, and detailing. Keep these brainstorm sessions short (1 to 2 hours), limit negative feedback, and avoid lengthy debates about user stories.

      To write independent and valuable user stories at this stage, follow the INVEST Model.

      The identification of new user stories should trigger the addition of new work items for the project in the Work Items List.

      Identify and capture epics

      Epics are large-scope stories that represent complex requirements, typically identified and captured in early iterations of development lifecycle. Capture epics the same way you capture user stories. Epics, however, do not comply to all principles of the INVEST Model (for example, epics are not at the right size to be assigned to an owner in one iteration).

      See Epics and Themes for more information.

      Identify and capture domain terms
      If there are ambiguous or domain-specific terms that need to be clearly defined, make sure that you work closely with stakeholders to capture these terms in the glossary and that you use these terms consistently.
      Key Considerations

      Use various techniques to make gathering requirements easier. Face-to-face meetings with stakeholders are the most effective way to understand stakeholder needs and to gather and validate requirements. When face-to-face conversation is not an option, you can use other means of communication, such as video conferences, conference calls, instant messaging, or project collaboration tools, such as IBM Rational Team Concert.

      This task is one aspect of initially envisioning requirements, as part of agile modeling early in the development lifecycle.

      More Information