Collaborating and Communicating Agile Requirements

COURSE OUTLINE:

Description

Project failures are often due to poor requirements gathering, analysis, andplanning. Traditional requirements documents may not contain complete andaccurate requirements due to rapidly changing business environments. Agilerequirements gathering, by moving detailed requirements closer toimplementation, allows for rapid response to change. In this course, you willlearn how to gather and manage these requirements.

Traditional requirements are documented in a requirements specification.Changes to the requirements are managed through a change process. This coursewill demonstrate alternative ways of documenting requirements and managingchanges, allowing for a less "heavy" process in projects that canbenefit from quick changes in direction. You will gain hands-on experience withtechniques for gathering agile requirements. Through explanatory lectures withdemonstrations combined with practice exercises, you will gain the experienceneeded to create requirements that meet business needs.

Audience

  • Business customer or partner
  • Product manager or customer representative
  • Business or systems analyst
  • Architect or developer
  • QA tester or QA engineer
  • Project manager or team leader
  • IT manager/director

Prerequisites

Some experience in product development or product management is helpful but not required

Learning Objectives

  • Master writing user stories
  • How known methods in traditional requirements processes can apply toAgile methods
  • Communicate requirements using agile techniques to bridge the customers'and developers' needs
  • Stakeholders and user roles to ensure that all requirement viewpoints areelicited
  • Create and maintain a product backlog
  • Prioritize requirements so that the most important customer needs aredelivered first
  • Formulate an iterative project plan with feedback cycles that keep theproject on track
  • Estimate business value for requirements to track how a projectcontributes to the enterprise
  • Develop requirements in an iterative approach to capture the details atthe appropriate time

1. Agile Overview

  • Agile Manifesto
  • Agile Principles
  • Agile Methodologies
  • Agile Benefits

2. Project Initiation

  • Project Charter
  • Project Roles
  • Project Planning
  • Communication

3. Focus on the Customer

  • Customer Involvement
  • Customer Roles
  • Creating and Using Personas
  • Constraints

4. User Stories

  • User Stories
  • Goals and Objectives
  • Acceptance Criteria and Acceptance Tests
  • Non-User Stories

5. Product Backlog

  • Who owns the Product Backlog?
  • Functional and Non-Functional Requirements
  • Story-Writing Workshop
  • Prioritizing the Product Backlog
  • Maintaining the Product Backlog
  • Techniques for further elaboration

6. Estimating and Planning

  • Relative vs. Actual Estimating
  • Using Story Points
  • Planning Poker (Grenning 2002)
  • Five Levels of Planning in Agile
  • Estimating Team Velocity

7. Release Plan

  • Iteration Estimates
  • Prioritization Revisited
  • Ownership and Participation
  • Communication

8. Use Cases

  • Use Case Advantages
  • Use Case Elements
  • Success Path
  • Alternate Paths
  • Exceptions

9. Iteration Plan and Execution

  • Iteration Planning
  • Defining "Done"
  • Test-Driven, Test Often
  • Demonstrate Working Software (Delivered Requirements)
  • Inspect and Adapt applied to Requirements
  • Finding your Rhythm

10. Retrospective on Communicating Requirements

Exercises:

Exercise 1: Working in small teams, you will establish a project charterincluding goals and objectives for a sample project. You will participate indefining key roles for project team members and set clear expectations forproject communication.

Exercise 2: Within your teams, you will brainstorm some customer roles for yourexample project. From the brainstorming, you will consolidate the larger list ofroles into key roles that will be the focus of your sample project. For each ofthe key roles, each team will create personas and share them with the class.

Exercise 3: Led by the instructor, the class will come up with some user storiesfor a sample project. We will discuss how to determine as a team what isappropriate for your user stories to be effective.

Exercise 4: In small teams identified previously, you will engage in astory-writing workshop as a means of building a product backlog for your sampleproject. Subsequently, you will participate in prioritizing your product backlogand present the highest priority stories to the class.

Exercise 5: Using the estimating techniques taught using story points, you'llenjoy a few rounds of Planning Poker with your team to establish estimates foryour highest priority stories. This fun and highly effective method of relativeestimating is certain to be a valuable tool for you to incorporate into your ownestimating process.

Exercise 6: Each team will establish a release plan for their sample projectincorporating priority, estimates, and velocity as appropriate. We'll discusshow real experiences of fixed time and requirement projects working well with anAgile release plan.

Exercise 7: Teams will discuss and document use cases, including alternate pathsand exceptions, for some of their high-priority stories. As a class, we'lldiscuss the relationship between use cases and stories and how they complementeach other.