Constant Velocity Is a Myth

Similar documents
Adopting Agile Practices

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Cpk: What is its Capability? By: Rick Haynes, Master Black Belt Smarter Solutions, Inc.

Kanban In a Nutshell. Bob Galen President & Principal Consultant RGCG, LLC

Test Driven Development

The Need for Agile Project Management

Testing in the Agile World

Vision, Roadmap, and Release Planning

Lab 3: Sampling Distributions

ServiceNow - Agile in ServiceNow

I am Stephen LeTourneau from Sandia National Laboratories Sandia s National Security Missions include: Nuclear Weapons Defense Systems & Assessments

needs, wants, and limitations

Designed in collaboration with Infosys Limited

Hands-On Lab. Agile Planning and Portfolio Management with Team Foundation Server Lab version: Last updated: 11/25/2013

GETTING STARTED. User Story Mapping

a brief introduction to creating quality software continuously Copyright 2011 Davisbase, LLC

Optimize Online Testing for Site Optimization: 101. White Paper. White Paper Webtrends 2014 Webtrends, Inc. All Rights Reserved

User Stories Applied, Mike Cohn

Hard Disk Storage Deflation Is There a Floor?

Secure Agile How to make secure applications using Agile Methods Thomas Stiehm, CTO

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

Agile Estimating. User Story As a buyer, I want to have my shipping information confirmed so I get a chance to correct any errors Estimate = 8 Points

The requirements engineering process

Chapter 6: DESCRIPTIVE STATISTICS

Life between Iterations

The Agile Samurai: How Agile Masters Deliver Great Software PDF

Testing Tools to Support Agile Software Delivery. The Critical Role of Automated Functional Testing in Enterprise Environments

Enabling Performance & Stress Test throughout the Application Lifecycle

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

MTAT Software Engineering Management

Inside JIRA scheme, everything can be configured, and it consists of. This section will guide you through JIRA Issue and it's types.

Unit 5: Estimating with Confidence

The Scaled Agile Framework

defined. defined. defined. defined. defined. defined. defined. defined. defined.

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

Requirement Engineering within an Agile Environment BY KEJI GIWA. Digital Bananas Technology

Software Development Process Models

UV Mapping to avoid texture flaws and enable proper shading

3,500. The Developer Division at Microsoft

Bob Galen. Bob began as a developer, then moved to Project Management and Leadership, then Testing.

n! = 1 * 2 * 3 * 4 * * (n-1) * n

Development Processes Agile Adaptive Planning. Stefan Sobek

Evolutionary Architecture and Design

Hyper-V Top performance and capacity tips

Architecture and Design Evolution

Scrums effects on software maintainability and usability

User Stories Applied, Mike Cohn

This Thing Called Kanban


A CONFUSED TESTER IN AGILE WORLD

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK

The Tangent Line as The Best Linear Approximation

Joint Application Design & Function Point Analysis the Perfect Match By Sherry Ferrell & Roger Heller

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK

Optimize tomorrow today.

Yoda. Agile Project Management with GitHub. Jens Vedel Markussen, Engineering Manager Hewlett Packard Enterprise

Expanding Throughout the Lifecycle and Embracing New Participants

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015

LESSONS LEARNED: BEING AGILE IN THE WATERFALL SANDBOX

COSC 311: ALGORITHMS HW1: SORTING

Real-Time Insights from the Source

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Extreme Programming practices for your team. Paweł Lipiński

Ready for Scrum? Steve Hutchison DISA T&E

Integrated Design & Development

What problem do stories address?

1 Dynamic Memory continued: Memory Leaks

GETTING STARTED. Building User Story Maps

Canterbury Procurement Forum. The forward pipeline fifth edition November 2013

2014 Intelliware Development Inc.

Week 7: The normal distribution and sample means

Story Refinement How to write and refine your stories so that your team can reach DONE by the end of your sprint!

FACETs. Technical Report 05/19/2010

COMP 161 Lecture Notes 16 Analyzing Search and Sort

Scaling agile with Atlassian and SAFe

Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer

Agile Testing Course: 15 16/11

Seven Deadly Sins of Agile Testing

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis

E-BOOK. Polarion goes SCRUM

Lecture 7: Software Processes. Refresher: Software Always Evolves

5 STEPS for Turning Data into Actionable Insights

SDN-Based Open Networking Building Momentum Among IT Decision Makers

Introduction to Software Testing

5 Object Oriented Analysis

The Intuitive Jira Guide For Users (2018)

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.

No SVN checkout today. Object-Oriented Design

Topic 01. Software Engineering, Web Engineering, agile methodologies.

BEHAVIOR DRIVEN DEVELOPMENT BDD GUIDE TO AGILE PRACTICES. Director, Strategic Solutions

Agile Development

Contents. The Mobile Delivery Gap The Choice to Go Hybrid What is a Hybrid App? Comparing Hybrid vs. Native Why Hybrid?...

Living With Agility

OBJECT-ORIENTED DESIGN

CPU DB Data Visualization Senior Project Report

Scrum and Kanban Compare and Contrast

Project Management Course. Zenhub + Github, when agile become a reality. Aitor Corchero

Fill er Up: Winners and Losers for Filling an Ordered Container

I m going to be introducing you to ergonomics More specifically ergonomics in terms of designing touch interfaces for mobile devices I m going to be

Transcription:

Constant Velocity Is a Myth Is your agile team s velocity constant from sprint to sprint? No? That s not a surprise. Many teams assume that their velocity will be constant. In this article, we ll see why that s not the right expectation and how that affects how you use this metric. What Is Velocity? Velocity measures the amount of work accomplished in your project over time. In agile terms, this is how much of your release s backlog is completed in each iteration. Velocity is measured in whatever unit you use to estimate stories; for example, story points per iteration or the count of stories per iteration. Teams often assume that their velocity will be nearly constant, although most teams know that the velocity in early iterations may be lower than later ones. Since all the sprints are the same duration, this amounts to assuming that the team will complete the same amount of the backlog in each iteration. However, that s not the way real projects work! To see the significance of this, we need to look at how velocity is used. Uses of Velocity Teams use velocity in three ways: Iteration planning: How many stories should we plan for the next iteration? The assumption of constant velocity says we could plan the next iteration to match the previous one. Release planning: How many iterations should we plan for a new product release? Divide the total planned backlog by the velocity to find the number of iterations. Project forecasting: How many more iterations until we release? Divide the remaining backlog by the velocity and adjust the plan. These simple techniques to accomplish difficult planning tasks make it really tempting to assume velocity will be constant. But just because that assumption is tempting doesn t make it correct. Velocity Is Not Constant If velocity were constant throughout a project, the graph of the cumulative work completed over time would be a straight line:

Years of research have shown, though, that key metrics--including the cumulative amount of work accomplished over time--follow an S-shaped curve, known as the cumulative Putnam-Norden-Rayleigh curve 1,2,3. The reasons why projects take this shape vary. Different methodologies, including agile, have different characteristics that cause this production curve to change in detail. But while the reasons vary, the basic shape remains the same.

You can see this curve starts slowly, but then rises more steeply and flattens out at the end. Notice that in the middle of the release, the curve is fairly straight. This means that for a period of time, velocity will be close to constant but it will not stay constant. It will change later in the project when the curve flattens out again. How can you use velocity even though it's not constant? Let s look at how the variability of velocity affects the three uses we pointed out earlier. Iteration planning: Velocity doesn t change abruptly. If you choose to estimate how many story points you plan to develop in an iteration based on what you developed in the last few iterations, you can still do that with some confidence. If you can determine where you are on the S-curve, you can polish that prediction. Are you near the bottom of the S, so the velocity will increase? Are you in the middle, so you expect the velocity to be about the same as the previous iteration? Or are you nearing the top of the S, so you should plan for a lower velocity? Note that many agile coaches are wary of using velocity as a strong predictor of what you should estimate for the next iteration. Instead, you should look at the tasks required to develop the chosen set of stories to decide what you can commit to for the next iteration. 4 This is the case whether you assume constant velocity or not. Release planning: Whether you assume velocity is constant or not, using velocity to plan a new release is difficult. Velocity is a measure of what one particular team is doing on one particular release. There are several reasons velocity is often team and release dependent: Team sizes vary among projects, but velocity is not proportional. It s not a surprise that a larger team accomplishes more than a smaller team in the same period of time, but it may surprise you that that how much more is quite difficult to compute. Doubling the team size does not double the velocity. So you

cannot easily compare velocities of teams of different sizes. The team composition (both the experience of the team members as well as the team dynamics) affects the velocity. The nature of the product affects the velocity. For example, you would not expect the same velocity for a team building an informational website and a team building a life-sustaining medical device. Velocity depends on how the team measures the stories in Story Points, and also the chosen sprint length. This may differ from team to team or even from project to project. To use velocity for release planning, you need to take a number of steps: Gather historical information from as many previous projects as you can. Instead of using the velocity from a single project, use trends computed from multiple projects. Work with multiple teams to normalize the way teams measure the backlog in Story Points. 5,6 Use estimation tools or collect historical data to compute the time/effort tradeoff, and adjust expected velocity based on team size. Remember, it is definitely not linear--doubling the team size only increases velocity by a moderate amount. Use an estimation tool or otherwise adjust the release plan to account for the S-shape of the project. Project Forecasting: Consider multiple metrics, not just velocity. For example, also consider the rate at which stories are defined using your definition of ready. In addition, consider the burndown rate, which measures how the backlog is changing. If you swap out equal size stories, the change may not have much effect on the delivery date. But if you consistently add in more or larger stories than you take out, or if you decide not to deliver stories already developed, your original estimate may need to be adjusted. As with iteration planning, when you re reforecasting and you use the average velocity you ve achieved so far in the project, consider where you are on the S-curve. More Research Is Needed Projects follow the Putnam-Norden-Rayleigh cumulative S-curve whether they use agile methods or not; but the methods you use do affect the shape. At QSM, we have been collecting data from thousands of projects for many years. We are starting to get enough data from projects using agile methods to start drawing some conclusions, but more research is still needed in several areas. Here are some of the questions that require more research to answer: 1. Does the middle of the S cover more of the project, so velocity is closer to constant than with other methods? 2. How does the agile principle of embrace change affect velocity? Is there more or less variance in the middle of the S because of scope changes? 3. How do refactoring and emergent design affect the shape? As project size increases and thus the eventual design must accommodate many diverse stories, does the amount of refactoring needed show up in the S- curve as a longer tail? Does size affect the overall productivity gains from agile methods because of increased refactoring? 4. How does test-driven development affect the shape? Does continuous testing throughout the project shorten the tail, either because testing is spread, or because defects are removed early? In Summary It s not realistic to expect velocity on an agile project to be constant. Depending on how you intend to use velocity, you must adjust your estimating methods by keeping in mind the natural cumulative S-curve of

development metrics. Agile methods almost certainly have an effect on the detailed shape of that curve, but more research is needed to know precisely how. In the meantime, use historical data plus your knowledge of your individual teams and projects to get the best estimates you can. References 1. Wikipedia, Putnam-Norden-Rayleigh Curve 2. Putnam, Lawrence H. and Myers, Ware, Controlling Software Development, IEEE Computer Society Press, 1996, ISBN 0-8186-7452-0 3. Chelson, Coleman, Summerville, and Van Drew, Rayleigh Curves A Tutorial, SCEA, June 2004 4. Cohn, Mike, Why I Don t Use Story Points for Sprint Planning 5. Scaled Agile Framework, Normalizing Story Point Estimation 6. Berner, Andy, Is it Bigger Than a Breadbox? Getting Started with Release Estimation