Agile Development with Scrum Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Copyright 2006-2008 2007-2009 Agile Development Evanetics, with Inc. All Scrum Rights Reserved Page - 1
Student Manual: Copyright 2008-2009 Evanetics, Inc. All rights reserved. Companies, names and data used in examples and exercises herein are fictitious unless otherwise noted. No part of these materials may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Evanetics, Inc. Product and company names mentioned herein are the trademarks or registered trademarks of their respective owners. This course was produced by: Gary K. Evans, Agile Evangelist and Certified Scrum Master Evanetics, Inc. (voice) 803-781-7628 www.evanetics.com Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 2
Table of Contents 1 of 2 Course Introduction (pg. 5) Iterative Development (11) The Iterative Philosophy Structure of a Typical Iteration The Business Case for Iteration Group Discussion Agile Development (25) Agility What Does It Mean? The Agile Manifesto The 12 Agile Principles Agile Practices Group Discussion Scrum (35) Scrum Practices Structure of Scrum 3 Work Products 3 Project Roles 4 Project Meetings Group Discussion User Stories & Requirements (61) What is a User Story? What Does a User Story Look Like? Where Do User Stories Fit in Scrum? Planning a Scrum Project (69) Introduce Course Exercise Case Study The Product Backlog Mapping Features to Product Backlog Identify User Stories from Features Estimating Effort for User Stories Agile Estimation (79) Story Points & Ideal Days Example: Assigning Story Points Estimating Actual Effort Velocity Velocity & Actual Time Estimating with Planning Poker Exercise: Applying Planning Poker Group Exercise: Estimating User Story Effort Group Exercise: Release Planning in Scrum Planning a Scrum Sprint (99) Mapping a Sprint Backlog to Tasks The Sprint Planning Meetings Example: Splitting User Stories into Tasks Velocity-driven Planning Commitment-driven Planning Group Exercise: Sprint Planning in Scrum Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 3
Table of Contents 2 of 2 Executing a Sprint (113) The Task Board The Daily Scrum Accumulating the Burndown Team Self-Management Aborting a Sprint Finishing Early or Late Testing within the Sprint Bugs in an Iteration Ending the Sprint Deploying the Software Scrum s Affect on Stakeholders (127) Business Analysts Developers Project Managers Testers Documentation Writers Scaling Scrum (159) Planning for Dependencies Planning for Multiple-Team Projects Wrapup (169) References (173) Appendix A: Agile Alternatives (177) Extreme Programming (179) Agile Unified Process (195) Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 4
Scrum Structure and Practices Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Copyright 2006-2008 2007-2009 Agile Development Evanetics, with Inc. All Scrum Rights Reserved Page - 35
Section Objectives What is the Scrum process? Objectives What are the principles & practices of Scrum? What is the structure of the Scrum process? Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 36
Scrum If you see value in the iterative model... If you see further value in the agile model... You will find even greater value in Scrum Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 37
Structure of Scrum Scrum is a strategic, not a prescriptive, process Scrum emphasizes team values, practices, and responsibilities Scrum is an envelope for your development activities The Team must find their own way through the development process Scrum does not tell you To produce more than 3 work products When to produce other work products How to do testing, or code integration How to structure development activities, etc. Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 41
Structure of Scrum 3 Work Products The only defined work products are Product Backlog Sprint Backlog Burndown charts Product Backlog Lists all the product features to be implemented, and the total effort remaining until their completion Sprint Backlog Lists all the features in the current sprint (iteration), and the total effort remaining until their completion Burndown Charts Visual representation of how much work remains to be completed A Burn-up chart is an alternative representation that shows how much work has already been completed Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 42
Structure of Scrum 3 Work Products 1. Product Backlog Represents the high-level, feature requirements for the project Consists of» Requirements» Priority of each requirement» Rough estimate of effort (size not duration) of each requirement The Requirements can be represented in many forms» Feature list» User Stories» But keep the representation simple Example Product Backlog» See next slide Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 43
Product Backlog Example Hotel Reservation Priority Product Backlog Requirement / User Story Effort (in Story Points) Very High High Medium Low As a Clerk, I can reserve a room for a guest. 5 As a Clerk, I can generate a bill for the guest's stay. 2 As a Manager, I can make unlimited adjustments to a customer's bill. 8 As a Clerk, I can cancel a reservation. 2 As a Clerk, I can change a reservation. 5 As a Guest, I can make a reservation. 5 As a Clerk, I can check-in a guest. 5 As a Clerk, I can check-out a guest. 3 As a Guest, I can assign a charge to my room. 3 As a Clerk, I can adjust a customer's bill. 3 As a Clerk, I can enter a work order for a customer's room. 3 As a Housekeeper, I can obtain a list of rooms to service. 2 As a Clerk, I can move a guest to a different room. 3 As a Guest, I can purchase an in-room movie. 2 As a Guest, I can request a copy of my current charges. 3 As a Manager, I can schedule staff work-hours and work-days. 5 As a Housekeeper, I can inform the system of problems found in a room. 3 Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 44
Structure of Scrum 3 Work Products 2. Sprint Backlog The Sprint Backlog lists the work in the Product Backlog to be completed in the current sprint The requirements (user stories) in the Sprint Backlog are» Transformed into one or more tasks, and» Each task is estimated in time (ideal hours) Each task should be estimated in the 4-16 ideal hour range» If a task is too large, it is de-constructed into smaller tasks that can be estimated in this range When the total time for tasks exceeds the person-hours in the sprint, then tasks must be removed from the sprint Example Sprint Backlog» See next slide Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 45
Sprint Backlog Example Hotel Reservation Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 46
Structure of Scrum 3 Work Products 3. Burndown Chart Visual tracking of what requirements have been implemented A dashboard of accomplishment on the project Illustrates the Teams velocity» How much work is being accomplished per sprint» Flat line: little work accomplished» Steep line: a lot of work accomplished» Constant slope: the Team s natural velocity Example Burndown Chart» See next slide Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 47
Burndown Chart Example Here is a sample Burndown chart for a single sprint estimated at a total of 600 person-hours effort 700 600 Person-Hours Remaining 500 400 300 200 Team failed to make progress and even lost a few hours Team has fallen into a groove with a constant velocity 100 0 1 2 3 4 5 6 7 8 9 1011121314151617181920212223242526272829 Sprint Day Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 48
Structure of Scrum 3 Project Roles Product Owner Represents the interests of all stakeholders of the project Creates the project s vision and overall requirements Manages Return on Investment objectives Initiates & prioritizes the Product Backlog Scrum Master The project management role Only a facilitator, not a commander Responsible for removing any and all impediments on the project Responsible for assuring compliance to the spirit of the Scrum process Coaches everyone on the project about the principles of Scrum The Team Everyone responsible for developing and delivering the project functionality The job of planning and executing the work belongs solely to the Team [Schwaber04] Team members are collectively responsible for the success of each iteration and the project as a whole Typically 5-9 people but it can scale to hundreds No titles that can cause finger pointing: no programmer, tester, architect, etc. Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 49
Project Management in Scrum The Scrum Master Scrum does not have a Project Management (PM) role In Scrum the Scrum Master performs PM functions But the Scrum Master does not Assume control or take charge of the project Cannot set dates, costs, timeframes, etc. Does not direct the project Rather, the Scrum Master Acts as a servant & facilitator to the Team and Product Owner Removes obstacles to the Team s progress Keeps the Team honest» The Team cannot dictate to the Scrum Master, either Assures compliance to the spirit of Scrum» Requires the PM / Scrum Master to be thoroughly versed in Scrum» Certified Scrum Master (CSM) training is a minimum requirement Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 50
Structure of Scrum 4 Meetings or Ceremonies Product Backlog Update Session (preliminary to Sprint Planning Meeting) Sprint Planning Meeting Daily Scrum Meeting Execute Sprint Sprint Review (with demo) Sprint Retrospective Updated & Re-prioritized Product Backlog Sprint Backlog Updated Burndown Chart Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 51
Structure of Scrum 4 Meetings or Ceremonies 1. Sprint Planning Meeting Goal: determine what work is to be done in the current sprint Conducted prior to each sprint Product Owner presents a (re)-prioritized Product Backlog (see next slide) Product Owner and Team decide on the sprint s goal what it will achieve The Team decide how much of the Product Backlog is doable in this sprint and commit to the Product Owner what they can achieve Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 52
Scrum Sprint Planning Meetings Actually two meetings occur in Sprint Planning Product Owner and Stakeholders reprioritize the Product Backlog, choose goals for the next sprint Product Owner and Scrum Team explore how to achieve results, and create Sprint Backlog of tasks Execute Sprint Sprint Backlog Product Backlog Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 53
Structure of Scrum 4 Meetings or Ceremonies 2. Sprint Review Meeting Goal: let the world know the project s status and accomplishments Conducted at the end of every sprint Informal, and usually brief, with broad range of attendees (stakeholders) The Team demo what they have accomplished Status is evaluated against the sprint goal from the Sprint Planning Meeting 3. Sprint Retrospective Goal: determine what in the process» Is working,» Is not working,» What needs to change,» What the Team should continue doing Conducted at the end of every sprint; no demo Attendance is small: Team, Scrum Master, Product Owner, Customers Very brief (< 30 minutes) Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 54
Structure of Scrum 4 Meetings or Ceremonies 4. Daily Scrum Meeting Goal: identify obstacles & Team members make commitments to each other Conducted daily, for 15 minutes, everyone stands Provides public visibility into project state on a daily basis» This is your status reporting mechanism on the project» External ( chicken ) observers are allowed to attend only as observers Anyone can attend; only the Team, Scrum Master, Product Owner can talk Everyone answers three questions:» What did you do yesterday?» What will you do today? ( this is a commitment, not a wish )» What obstacles are you encountering? This meeting» Reinforces a shared vocabulary and understanding of project» Reveals accountability issues, makes sure all tasks are understood» Face-to-face communication is more fruitful than cold, unreliable status reports» Enables adaptation and insight, quickly» Team member reports are a contract, or promise, to the other team members Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 55
Scrum s Flow Used with permission under Creative Commons Attribution 2.5 License Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 56
Running a Scrum Project Summary Outline Plan the Project 1. Identify the features needed in the product 2. Map the features to user stories 3. Estimate the size of each user story 4. Prioritize the user stories Run a Sprint 5. Assign the highest priority stories to the current sprint 6. The Team execute the sprint 7. Conduct end-of-sprint ceremonies Repeat until all stories and features have been implemented Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 57
Scrum Structure & Practices Summary Scrum is a totally strategic process It defines very little (3 roles, 3 work products, 4 meetings) What it does define is to empower each Scrum role, not to direct each role Scrum is a philosophy and process of less is more Potential management struggles with Scrum Scrum s explicit vetting of the Team with authority to find their own way to the solution Management s acceptance of a new role, a new way of executing» Provide needed resources (of course the Team must justify)» Remove obstacles to project progress Copyright 2008-2009 Evanetics, Inc. All Rights Reserved Agile Development with Scrum Page - 58