Since you’re reading my blog, I’ll assume that you’re either a relative, or you’re already somewhat knowledgable about agile software development. So, let’s jump right in... (Sorry, Aunt Gina.)
Given my drothers, I prefer to mix and match terminology and practices from Scrum and Extreme Programming. Here’s what I like to do:
Roles & Responsibilities
A Product Owner is responsible for:
- Defining and/or collecting the set of features to be implemented in the product
- Maintaining a Product Backlog of User Stories ordered by Business Value
- Presenting user stories to the Team during Release Planning
- Selecting user stories to place on the Release Backlog
- Presenting user stories to the team in more detail during Iteration Planning
- Selecting user stories to place on the Iteration Backlog
- Accepting or rejecting user story implementations during Iteration Review
- Presenting implemented user stories to other stakeholders during Release Review
- Determining whether or not to deploy software during Release Review
- Answering questions from the Team throughout the process
The cross-functional Development Team (or Team) is responsible for:
- Estimating stories with T-shirt Sizes during Release Planning
- Estimating stories with Story Points during Iteration Planning
- Splitting large (epic) stories into smaller, more manageable stories
- Calculating their team velocity using Yesterday’s Weather
- Incremental Design and Test-First Programming of user stories
- Maintaining a backlog of Technical Debt
- Maintaining code and test quality with Refactoring
- Presenting implemented user stories to Product Owner during Iteration Review
- Assisting Product Owner with presentation of implemented user stories at Release Review
- Asking questions of the Product Owner throughout the process
A Coach (or Scrum Master) is responsible for:
- Identifying and resolving roadblocks hindering the Team, including, process, technical and managerial issues, and more.
The Whole Team, which includes the Product Owner, Development Team and Coach, is responsible for:
- Conducting Release and Iteration Planning meetings
- Conducting Iteration and Release Review meetings
- Conducting Iteration and Release Retrospective
Next up: Release & Iteration Duration and Structure