Chapter 14: Iteration Planning. It is a capital mistake to theorize before one has data. Sherlock Holmes, Scandal in Bohemia

Similar documents
Agile Planning. Petri Heiramo. Agile Coach, CST

Advice on Conducting Agile Project Kickoff. Meetings

THE PURPOSE OF TESTING

Copyright Intertech, Inc All Rights Reserved. May 18, 2011

Introduction. Failure. Why Projects Fail. Agile in an Hour

Measuring Business Value with Agile

XP is not hacking. extreme Programming. XP practices. Whole Team. When using XP you write as little documentation as possible.

SOFTWARE ESTIMATION TIPS. Wojciech Jaworski

This course will explore how your projects can easily and successfully make the transition to an effective Agile environment.

EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999.

Introduction. Failure. Why Projects Fail. Agile in an Hour

User Stories Applied, Mike Cohn

Lecture 8 Agile Software Development

Agile at Mid-Scale. Al Shalloway. Introducing FLow for Enterprise Transformations (FLEX)

Agile Test Plan How to Construct an Agile Test Plan

Agile Product Planning and Estimation with Steve Ropa

How to Run Agile Development for SAP

Introduction to Agile/Extreme Programming

Implementing Scrumban

Measuring Effort and Productivity of Agile Projects

Agile Development Processes. CSCE Lecture 3-08/31/2017

International Scrum Master Foundation. Study Guide Take the Certification online

Scrum Testing: A Beginner s Guide

Sign up to mailing list Join Slack, teaching team is available. All links are on the course website Slides are uploaded there too

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Software Engineering Lecture 5 Agile Software Development

Scrum. a description. V Scrum Alliance,Inc 1

TickITplus Implementation Note

Course Title: Planning and Managing Agile Projects

Owning An Agile Project: PO Training Day 2

Kanban kick- start (v2)

Agile Delivery Framework (ADF)

Agile Estimation and Planning. Martine Devos

Using Modern Methodologies with Maintenance Software

The Science of Running Effective User Acceptance Testing Cycles

Are We There Yet? An Agile Planning Workshop. Your Coach: Paul Hodgetts

Scrum Master / Agile Project Manager An Approach for Personal Competency Development

SOFTWARE DEVELOPMENT. Process, Models, Methods, Diagrams Software Development Life Cyles. Part - V

The Faster Road to Innovation Why Workopolis Went Agile

Rule = A definition of what a Product Backlog is. Good Practice = A practice which is commonly done and is good to do. Avoid = A practice which, in

Our Software Delivery Methodology What to Expect in the Development Process

Chapter 1. What is XP?

Scaling Software Agility:

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Organizational Matters

Why SCRUM I O A N N I S K O S T A R A S A G I L E C R E T E

Creating Sprint Reviews that Attract, Engage, and Enlighten your Customers' Bob Galen President & Principal Consultant RGCG, LLC

Agile Planning. The problem with documentation

"Charting the Course to Your Success!" Planning and Managing Agile Projects Course Summary

Your Coach: Paul Hodgetts

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Software Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti

CHAPTER 7: BUSINESS SKILLS FOR TECHNICAL PROFESSIONALS

Agile Project Management (or Burning Your Gantt Charts) ESC-267 Michael Karlesky & Mark VanderVoord

D25-4. How Intertech Uses Agile

Holding Accountability Conversations

2014 Intelliware Development Inc.

Acceptance Criteria. Agile. Details that indicate the scope of a user story and help the team and product owner determine done-ness.

Agile Certified Professional

Delivering Software Certainty. Atomic Object, Grand Rapids based software development firm Started in 2001 by Carl Erickson and Bill Bereza

Software Development Life Cycle

The Change-Ready Scale

Processes and Life- Cycles. Kristian Sandahl

HOW WE WORK: OUR SYSTEM: OUR METHODOLOGY:

Managing Your Backlog

Scrum/Kanban Overview

1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum

Cultural Transformation: Change Inflictor or Change Agent

CSC301. Scrum, detailed view of an agile process. CSC301, Winter 2016

Outsourcing Your Facebook Campaign Management to the Philippines Tips & Guidelines

How Paratransit Software Improves Trip Booking

Michael Prince PMI-ACP Application Development Manager Richland County

Role of the Business Development Center (BDC)

Events. Artifacts. Roles. Product Owner Scrum Master Development Team. Sprint Sprint Planning Daily Scrum Sprint Review Sprint Retrospective

Product Owner - The Single Wring Able Neck

GO PRO GO PRO MANAGEMENT, INC. Robin F. Goldsmith, JD SYSTEM ACQUISITION & DEVELOPMENT QUALITY/TESTING PRODUCTIVITY

AGILE AND SCRUM IN A SMALL SOFTWARE DEVELOPMENT PROJECT- A CASE STUDY

Tuesday, October 25. Announcements

Micro Service Architecture

PMI-ACP Blended-Learning Instructor-Led Session

The Synergistic Nature of PI Objectives

Managing a Large Agile Software Engineering Organization. Paul Beavers BMC Software

Agile Manifesto & XP

Processes and Life- Cycles. Kristian Sandahl

Create Your Successful Agile Project

BA25-Managing the Agile Product Development Life Cycle

Traditional Planning A Joyless Track Record

Seminar 06 Chapter 5 - Part 1

MSP Ongoing Use Tips & Tricks. Your Guides: Rob Greca and Jenn Rinella

Process Efficiency Adapting Flow to the Agile Improvement Effort

Matrix Workshop Session Facilitation. University Process Innovation

32 BETTER SOFTWARE JULY/AUGUST 2009

Getting started with Portfolio for Jira

The Customer CAN always be right Realizing Business Agility through Customer Collaboration

Iteration and Release Planning. CSCI 5828: Foundations of Software Engineering Lecture 15 10/13/2015

Introduction to Agile Change Management

EPIC 1.08 Distribution System Safety and Reliability through New Data Analytics Techniques. John Carruthers, PG&E

Transcription:

Chapter 14: Iteration Planning It is a capital mistake to theorize before one has data. Sherlock Holmes, Scandal in Bohemia Release Plan: High level view of what is to be built Iteration Plan: More focused view Selecting user stories to be implemented Iteration Planning Meeting Product owner, analysts, programmers, testers, DB engineers, User IxDesigners, etc. Anyone involved in the design and development Stories defined by a set of tasks (Table 14.1)

using note cards during iteration planning Why would you not use the technology simply enter the tasks into a spreadsheet? Better question why would you? Iteration Planning is a collaborative exercise All involved each sees what everybody else sees. Arrange the cards (one for each story and one or more for the tasks required to design and implement what the story requires) on the wall or on a table for all to see.

Tasks Table 14.1 Iteration Plan as a Simple Spreadsheet Row Hours 1 As a coach, I can assign swimmers to events for a meet. 2 Determine rules about who can swim in which events 6 3 Specify acceptance tests to show how this should work 8 4 Design user interface 16 5 Code user interface 8 6 Add tables and stored procedures to database 6 7 Automate tests 6 8 As a swimmer, I can update my demographics 9 Specify acceptance tests 5 10 Change view-only demographics page to allow edits 6 11 User stories of the Release Plan are decomposed into tasks The tasks are then estimated in hours Note. Collaboration is facilitated by use of whiteboard visually recording the tasks developed collaboratively Visual, so all can see, debate and come to an agreement User Story

Example (Fig. 14-1) Iteration Planning: Note cards on a table or whiteboard display Figure 14.1 Iteration planning can be done with note cards on a table or wall Story Story Tasks Tasks As a coach, I can Determine rules Specify acceptance assign swimmers about who can tests to show how to events for a swim n which this should work meet. events. 6 8 Design user interface Code user interface. 16 8 As a swimmer, I Specify Change view-only can update my acceptance demographics demographics tests page to allow edits 5 6

Tasks are not allocated during iteration planning Promotes all in this together attitude No individual ownership going into an iteration Members can (should) help one another when needed Individuals sign-up for tasks once the iteration begins Signing up for only one or two tasks Work on a new task begins only after selected tasks are completed

Table 14.2 Primary Differences between a Release and an Iteration Release Plan Iteration Plan Planning horizon 3 to 6 months 2-4 weeks Items in plan User stories Tasks Estimated in Story points Ideal hours Stage 1 Release Plan Vague concerning specific order in which user stories are to worked-on Stage 2 Iteration planning Refines understanding of user stories (more detailed) Team knows more than was known during the Release Planning Team discusses product design and software design

Velocity-Driven Iteration Planning (the 1 st of the author s two recommended approaches) Do in any sequence Adjust priorities Determine target Velocity Identify an iteration goal Select user stories Split user stories into tasks Estimate Tasks Fig. 14.2 Sequence of steps in velocity-driven iteration planning (Story Points per Iteration)

Dealing with changes Adjust Priorities Iteration (Sprint) Review Mtg. (usually 30 to 60 minutes) Held after the iteration is done Demo of functionality & capabilities Potential Product Owner (representing customers & users) may have changes that preempt previously determined high-priority items Prioritization Mtg. Two days before the end of the iteration Discuss unfinished work Chaired by the Product Owner Next Iteration Planning Mtg. (4 hours) Prioritize for the next iteration factoring in changes agreed to in the Iteration (Sprint) Review Mtg. and Prioritization Mtg.)

Determine Target Velocity Velocity in next iteration should equal the Velocity in the most recent iteration Alternative: Reset the Velocity to the moving average calculated for previously completed iterations Identify an Iteration Goal Describes what team would like to achieve (doesn t have to be specific) SwimStats Iteration Goals Make progress on reports Finish all event time reports Get security working

Identify an Iteration Goal What the team hopes to accomplish during the iteration. Example Iteration goal for SwimStats (what will be worked on in the iteration): Make progress on reports Finish all event time reports Get security working

Select User Stories Product owner & team select stories to meet goals Again, SwimStats Goal: All demographic features are finished User Stories As a swimmer, I can update my demographics As a coach, I can enter demographic data on each of my swimmers As a coach, I can import a file of all demographic data As a coach, I can export a file of all demographic data Prioritize the order of work (assigning tasks occurs once the Iteration begins)

User Story: Split User Stories into Tasks As a coach, I can assign swimmers to events for an upcoming meet List of tasks: Determine rules that affect who can be assigned to which events Write acceptance test cases that show how this should work Design the user interface Get user interface feedback from coaches Code the user interface Code the middle tier Add new tables to database Automate the acceptance tests Analysis, design, user IxD, or other tasks that are necessary should be included and estimated (how much time each will take) All tasks necessary to go from a user story to a functioning, finished product should be identified.

Include only work that adds value to the Project Exclude email time Exclude peripheral tasks the overhead of work Be Specific Until It s a Habit Identify and estimate unit testing tasks Example: Programmer estimates that coding a new feature at 8 hours and writing unit tests at 5 hours Once the programmer assumes that coding includes unit testing, only one estimate would be needed

Meetings Count (A lot) Identify, estimate and include tasks for meetings related to the project Time for preparing Include the time for all attendees Mtg. sample estimates: Analyst spends two hour preparing One hour meeting, 7 attend Meeting task estimate is 9 hours Bugs Programmer coding estimate includes time to fix bugs For Bugs found after the iteration is completed, fixing is prioritized and added to a subsequent iteration

Handling Dependencies One Story depends on the previous implementation of another story Not a problem if developed in their natural order SwimStats example Story 1: Add new swimmers to the system Story 2: Let user view an individual swimmer s fastest times Story 2 is implemented before Story 1 Iteration planning would need to add design data tables for info about individual swimmers to the iteration Will project take longer? Maybe not. Shifted some tasks from Story 1 to Story 2 Even if it does, the reason for the reordering was approved by the Product Owner

Work that is difficult to split Example: Small change to legacy feature No one was confident in knowing the possible impact Sections where the code was changed would be affected But, what of side effects to other areas of code? Two tasks were identified: 1. Determine what s affected 2 hours 2. Make the changes 10 hours The 1 st task was a spike to gain knowledge on how to approach the 2 nd task

Expressed in Ideal Time Estimate Tasks Ideal Time of 6 hours but took 8 hours (the Elapsed Time ) Reasons why task estimates should be done by the group: 1. Tasks are not assigned to specific team members during Iteration Planning 2. The task will be assigned to one person, but others can contribute The one person might be the right person, but others may have useful questions to ask about the scope of work, experience on previous tasks that were similar, knowledge that the person assigned had forgotten 3. hearing how long something is expected to take helps the team identify and clarify misunderstandings about the Story or task 4. When the estimate was made collaboratively and person doing the work takes longer, the team takes the blame and not the person.

Some design is OK During Iteration Planning identifying tasks and assigning estimates to each requires understanding the design work needed. Product owner, analysts and IxDesigners may discuss design, creating the list of tasks and estimates For example: How much of a feature should be implemented How it will appear to users Options of how to implement what is needed The Right Size for a Task Each developer is able to finish an average of 1 task per day Allows work to flow smoothly through the iteration

Fig. 14.3 Activities of Commitment-Driven Iteration Planning Can commit; not full Adjust priorities Identify an iteration goal Select a Story to add Expand the story into tasks Ask for team commitment Can commit; but full Cannot commit Iteration planning is done Estimate tasks Remove a user story Add stories to the iteration 1-by-1 until the team can commit to completing no more

Ask for Team Commitment Commitment key factor contributing to team success. Not a hardwired velocity requirement Committed to delivering the functionality described by a user Story the initial set of task and newly identified tasks discovered during the iteration Summing the Estimates Sum the estimated time for the tasks Determine if it is a reasonable amount of work Range estimates are appropriate, given the uncertainty May require spreading the work to other team members (Major point: Continually assessing not a one time commitment to a finish time and then wait and see )

Maintenance and the Commitment Teams may also be responsible for support and/or maintenance of other systems, for example: A prior version of the product An unrelated product These are unpredictable commitments Support, maintenance, and other commitments (~ 10%) The commitment to work for the iteration is based on how much room is left (~90%) May be predictable using past averages or not

Author s Recommendation Commitment Driven (over Velocity Driver) Iteration planning Why not Velocity Driven? 1. Velocity (Story Points per Iteration) is a coarse grained estimate Not accurate enough for planning short iterations Good for estimating amount of work a team will complete per iteration 2. Team would need to complete 20 to 30 stories per iteration for errors in the story point estimates to average out. (typical where 3 to 12 stories are included in each iteration) Note. While the averaging-out problem exists between iterations velocity works well for long-range release planning.

Probability of Completion Relating Task Estimates of Time to Story Points Example At the end of an given iteration, the team calculates the time per story point as 12 hours They assumed that one Story Point took 12 hours of work The time per Story Point is a Random Variable interpreted below as a Normal Distribution Example: 50% require less than 12 hours, 50% require more 50% 50% 12 Hours

Probability of completion Fig. 14.6 Distribution of hours to complete for 1, 2 and 3 point stories Each distribution is represents hours as a random variables (1-point, 2-point and 3-point) 1-point story 2 point story 3 point story 12 24 36 Hours ± ± ±

Days of the Week Initially, iterations were started on Monday, ended on Friday Logical? NO If something went wrong on Friday fixing could be done on the weekend Team decided to run 2-week iterations, start on Friday and end on a Thursday Fridays were time to do the Iteration Review and next Iteration Planning Avoided dread of Monday meetings Monday became the review and planning day Friday also provided time to wrap-up last-minute work and avoiding weekend work : )