You are previewing Agile Estimating and Planning.
O'Reilly logo
Agile Estimating and Planning

Book Description

Praise for Agile Estimating and Planning

"Traditional, deterministic approaches to planning and estimating simply don't cut it on the slippery slopes of today's dynamic, change-driven projects. Mike Cohn's breakthrough book gives us not only the philosophy, but also the guidelines and a proven set of tools that we need to succeed in planning, estimating, and scheduling projects with a high uncertainty factor. At the same time, the author never loses sight of the need to deliver business value to the customer each step of the way."

—Doug DeCarlo, author of eXtreme Project Management: Using Leadership, Principles and Tools to Deliver Value in the Face of Volatility (Jossey-Bass, 2004)

"We know how to build predictive plans and manage them. But building plans that only estimate the future and then embrace change, challenge most of our training and skills. In Agile Estimating and Planning, Mike Cohn once again fills a hole in the Agile practices, this time by showing us a workable approach to Agile estimating and planning. Mike delves into the nooks and crannies of the subject and anticipates many of the questions and nuances of this topic. Students of Agile processes will recognize that this book is truly about agility, bridging many of the practices between Scrum and ExtremeProgramming."

—Ken Schwaber, Scrum evangelist, Agile Alliance cofounder, and signatory to the Agile Manifesto

"In Agile Estimating and Planning, Mike Cohn has, for the first time, brought together most everything that the Agile community has learned about the subject. The book is clear, well organized, and a pleasant and valuable read. It goes into all the necessary detail, and at the same time keeps the reader's burden low. We can dig in as deeply as we need to, without too much detail before we need it. The book really brings together everything we have learned about Agile estimation and planning over the past decade. It will serve its readers well."

—Ron Jeffries, www.XProgramming.com, author of Extreme Programming Installed (Addison-Wesley, 2001) and Extreme Programming Adventures in C# (Microsoft Press, 2004)

"Agile Estimating and Planning provides a view of planning that's balanced between theory and practice, and it is supported by enough concrete experiences to lend it credibility. I particularly like the quote 'planning is a quest for value.' It points to a new, more positive attitude toward planning that goes beyond the 'necessary evil' view that I sometimes hold."

—Kent Beck, author of Extreme Programming Explained, Second Edition (Addison-Wesley, 2005)

"Up-front planning is still the most critical part of software development. Agile software development requires Agile planning techniques. This book shows you how to employ Agile planning in a succinct, practical, and easy-to-follow manner."

—Adam Rogers, Ultimate Software

"Mike does a great follow-up to User Stories Applied by continuing to provide Agile teams with the practical approaches and techniques to increase agility. In this book, Mike provides time-proven and well-tested methods for being successful with the multiple levels of planning and estimating required by Agile. This book is the first to detail the disciplines of Agile estimating and planning, in ways that rival my 1980 civil engineering texts on CPM Planning and Estimating."

—Ryan Martens, President and Founder, Rally Software Development Corporation

"With insight and clarity, Mike Cohn shows how to effectively produce software of high business value. With Agile estimation and planning, you focus effort where it really counts, and continue to do so as circumstances change."

—Rick Mugridge, Rimu Research Ltd., and lead author, Fit for Developing Software (Prentice Hall, 2005)

"Finally! The groundbreaking book my clients have been clamoring for! Agile Estimating and Planning demystifies the process of defining, driving, and delivering great software that matters to the business. Mike's clarity, insight, and experience leap out through every page of this book, offering an approach that is relevant and immediately useful to all members of an Agile project."

—Kert D. Peterson, President, Enterprise Agile Group, LLC

"This isn't yet another generic book on Agile software development. Agile Estimating and Planning fills a gap left by most of the other books and gives you important, practical, down-to-earth techniques needed to be successful on Agile development projects."

—Steve Tockey, Principal Consultant, Construx Software

"Estimation, planning, and tracking is a trinity. If you don't do one of them, you don't need the other two. This book provides very practical knowledge for estimation, planning, prioritizing, and tracking. It should be compulsory subject matter for project managers and their teams, even if they hesitate to call themselves Agile."

—Niels Malotaux, Project Coach

"Effective planning is an important, but often misunderstood, part of any successful Agile project. With Agile Estimating and Planning, Mike Cohn has given us a definitive guide to a wide range of Agile estimating and planning practices. With his clear and practical style, Mike not only explains how to successfully get started planning an Agile project, but also provides a wealth of tips and advice for improving any team's Agile planning process. This book is a must-read for managers, coaches, and members of Agile teams."

—Paul Hodgetts, Agile coach and CEO, Agile Logic

"Mike's writing style captures the essence of agility-just the right amount of information to bring clarity to the reader. This book provides an excellent guide for all Agile practitioners, both seasoned and novice."

—Robert Holler, President and CEO, VersionOne, LLC

"It is as if Mike took the distilled knowledge regarding planning and estimation of a great Agile developer (which he is) and laid out all he knows in an easily understandable manner. More importantly, he has a great mix of concepts with real-world examples finished off with a case study so the reader can relate the information to their own situation. Unless you are already an expert Agile planner and estimator, this book is for you."

—Alan Shalloway, CEO, Senior Consultant, Net Objectives, and coauthor of Design Patterns Explained, Second Edition (Addison-Wesley, 2005)

"Although I had plenty of XP experience before trying out Mike Cohn's Agile planning practices, the effectiveness of the practical and proven techniques in this book blew me away! The book recognizes that people, not tools or processes, produce great software, and that teams benefit most by learning about their project and their product as they go. The examples in the book are concrete, easily grasped, and simply reek of common sense. This book will help teams (whether Agile or not) deliver more value, more often, and have fun doing it! Whether you're a manager or a programmer, a tester or a CEO, part of an Agile team, or just looking for a way to stamp out chaos and death marches, this book will guide you."

—Lisa Crispin, coauthor of Testing Extreme Programming (Addison-Wesley, 2003)

"Mike Cohn does an excellent job demonstrating how an Agile approach can address issues of risk and uncertainty in order to provide more meaningful estimates and plans for software projects."

—Todd Little, Senior Development Manager, Landmark Graphics

"Mike Cohn explains his approach to Agile planning, and shows how 'critical chain' thinking can be used to eff

Table of Contents

  1. Copyright
    1. Dedication
  2. Praise for Agile Estimating and Planning
  3. Robert C. Martin Series
  4. About the Author
  5. Foreword
  6. Foreword
  7. Foreword
  8. Acknowledgments
  9. Introduction
  10. I. The Problem and the Goal
    1. 1. The Purpose of Planning
      1. Why Do It?
        1. Reducing Risk
        2. Reducing Uncertainty
        3. Supporting Better Decision Making
        4. Establishing Trust
        5. Conveying Information
      2. What Makes a Good Plan?
      3. What Makes Planning Agile?
      4. Summary
      5. Discussion Questions
    2. 2. Why Planning Fails
      1. Planning Is by Activity Rather Than Feature
        1. Activities Don’t Finish Early
        2. Lateness Is Passed Down the Schedule
        3. Activities Are Not Independent
      2. Multitasking Causes Further Delays
      3. Features Are Not Developed by Priority
      4. We Ignore Uncertainty
      5. Estimates Become Commitments
      6. Summary
      7. Discussion Questions
    3. 3. An Agile Approach
      1. An Agile Approach to Projects
        1. An Agile Team Works As One
        2. An Agile Team Works in Short Iterations
        3. An Agile Team Delivers Something Each Iteration
        4. An Agile Team Focuses on Business Priorities
        5. An Agile Team Inspects and Adapts
      2. An Agile Approach to Planning
        1. Multiple Levels of Planning
        2. Conditions of Satisfaction
      3. Summary
      4. Discussion Questions
  11. II. Estimating Size
    1. 4. Estimating Size with Story Points
      1. Story Points Are Relative
      2. Velocity
        1. Velocity Corrects Estimation Errors
      3. Summary
      4. Discussion Questions
    2. 5. Estimating in Ideal Days
      1. Ideal Time and Software Development
      2. Ideal Days as a Measure of Size
      3. One Estimate, Not Many
      4. Summary
      5. Discussion Questions
    3. 6. Techniques for Estimating
      1. Estimates Are Shared
      2. The Estimation Scale
        1. User Stories, Epics, and Themes
      3. Deriving an Estimate
        1. Expert Opinion
        2. Analogy
        3. Disaggregation
      4. Planning Poker
        1. Smaller Sessions
        2. When to Play Planning Poker
      5. Why Planning Poker Works
      6. Summary
      7. Discussion Questions
    4. 7. Re-Estimating
      1. Introducing the SwimStats Website
      2. When Not to Re-Estimate
        1. Velocity Is the Great Equalizer
      3. When to Re-Estimate
        1. Scenario 1: No Re-Estimating
        2. Scenario 2: Re-Estimating the Finished Story
        3. Scenario 3: Re-Estimating When Relative Size Changes
      4. Re-Estimating Partially Completed Stories
      5. The Purpose of Re-Estimating
      6. Summary
      7. Discussion Questions
    5. 8. Choosing between Story Points and Ideal Days
      1. Considerations Favoring Story Points
        1. Story Points Help Drive Cross-Functional Behavior
        2. Story-Point Estimates Do Not Decay
        3. Story Points Are a Pure Measure of Size
        4. Estimating in Story Points Typically Is Faster
        5. My Ideal Days Are Not Your Ideal Days
      2. Considerations Favoring Ideal Days
        1. Ideal Days Are Easier to Explain Outside the Team
        2. Ideal Days Are Easier to Estimate at First
      3. Recommendation
      4. Summary
      5. Discussion Questions
  12. III. Planning for Value
    1. 9. Prioritizing Themes
      1. Factors in Prioritization
        1. Value
        2. Cost
        3. New Knowledge
        4. Risk
      2. Combining the Four Factors
      3. Some Examples
        1. Infrastructure
        2. User Interface Design
      4. Summary
      5. Discussion Questions
    2. 10. Financial Prioritization
      1. Sources of Return
        1. New Revenue
        2. Incremental Revenue
        3. Retained Revenue
        4. Operational Efficiencies
      2. An Example: WebPayroll
        1. Calculating New Revenue
        2. Calculating Incremental Revenue
        3. Calculating Retained Revenue
        4. Calculating Operational Efficiencies
        5. Estimating Development Cost
        6. Putting It All Together
      3. Financial Measures
        1. The Time Value of Money
        2. Net Present Value
        3. Internal Rate of Return
        4. Payback Period
        5. Discounted Payback Period
      4. Comparing Returns
      5. Summary
      6. Discussion Questions
    3. 11. Prioritizing Desirability
      1. Kano Model of Customer Satisfaction
        1. Assessing Themes on the Kano Model
        2. Categorizing Responses
      2. Relative Weighting: Another Approach
      3. Summary
      4. Discussion Questions
    4. 12. Splitting User Stories
      1. When to Split a User Story
      2. Splitting across Data Boundaries
      3. Splitting on Operational Boundaries
      4. Removing Cross-Cutting Concerns
      5. Don’t Meet Performance Constraints
      6. Split Stories of Mixed Priority
      7. Don’t Split a Story into Tasks
      8. Avoid the Temptation of Related Changes
      9. Combining Stories
      10. Summary
      11. Discussion Questions
  13. IV. Scheduling
    1. 13. Release Planning Essentials
      1. The Release Plan
        1. Determine the Conditions of Satisfaction
        2. Estimate the User Stories
        3. Select an Iteration Length
        4. Estimate Velocity
        5. Prioritize User Stories
        6. Select Stories and a Release Date
      2. Updating the Release Plan
      3. An Example
        1. Determining the Conditions of Satisfaction
        2. Estimating
        3. Selecting the Iteration Length
        4. Estimating Velocity
        5. Prioritizing the User Stories
        6. Selecting the User Stories
      4. Summary
      5. Discussion Questions
    2. 14. Iteration Planning
      1. Tasks Are Not Allocated During Iteration Planning
      2. How Iteration and Release Planning Differ
      3. Velocity-Driven Iteration Planning
        1. Adjust Priorities
        2. Determine Target Velocity
        3. Identify an Iteration Goal
        4. Select User Stories
        5. Split User Stories into Tasks
          1. Include Only Work That Adds Value to This Project
          2. Be Specific Until It’s a Habit
          3. Meetings Count (A Lot)
          4. Bugs
          5. Handling Dependencies
          6. Work That Is Difficult to Split
        6. Estimate Tasks
          1. Some Design Is OK
          2. The Right Size for a Task
      4. Commitment-Driven Iteration Planning
        1. Ask for a Team Commitment
          1. Summing the Estimates
          2. Maintenance and the Commitment
      5. My Recommendation
      6. Relating Task Estimates to Story Points
      7. Summary
      8. Discussion Questions
    3. 15. Selecting an Iteration Length
      1. Factors in Selecting an Iteration Length
        1. The Overall Length of the Release
        2. The Amount of Uncertainty
        3. The Ease of Getting Feedback
        4. How Long Priorities Can Remain Unchanged
        5. Willingness to Go without Outside Feedback
        6. The Overhead of Iterating
        7. How Soon a Feeling of Urgency Is Established
      2. Making a Decision
      3. Two Case Studies
        1. The Napa Project
        2. The Goodman Project
      4. Summary
      5. Discussion Questions
    4. 16. Estimating Velocity
      1. Use Historical Values
      2. Run an Iteration
      3. Make a Forecast
        1. Estimate the Hours Available
        2. Estimate the Time Available in an Iteration
        3. Expand Stories and See What Fits
        4. Put a Range Around It
        5. A Variation for Some Teams
      4. Which Approach Should I Use?
      5. Summary
      6. Discussion Questions
    5. 17. Buffering Plans for Uncertainty
      1. Feature Buffers
      2. Schedule Buffers
        1. Reflecting Uncertainty in Estimates
        2. Sizing the Project Buffer
        3. A Simpler Buffer Calculation
        4. Buffer Guidelines
      3. Combining Buffers
      4. A Schedule Buffer Is Not Padding
      5. Some Caveats
      6. Summary
      7. Discussion Questions
    6. 18. Planning the Multiple-Team Project
      1. Establishing a Common Basis for Estimates
      2. Adding Detail to User Stories Sooner
      3. Lookahead Planning
      4. Incorporating Feeding Buffers into the Plan
        1. What Gets Buffered?
        2. Sizing a Feeding Buffer
      5. But This Is So Much Work
      6. Summary
      7. Discussion Questions
  14. V. Tracking and Communicating
    1. 19. Monitoring the Release Plan
      1. Tracking the Release
        1. Velocity
      2. Release Burndown Charts
        1. A Release Burndown Bar Chart
      3. A Parking-Lot Chart
      4. Summary
      5. Discussion Questions
    2. 20. Monitoring the Iteration Plan
      1. The Task Board
      2. Iteration Burndown Charts
      3. Tracking Effort Expended
      4. Individual Velocity
      5. Summary
      6. Discussion Questions
    3. 21. Communicating about Plans
      1. Communicating the Plan
      2. Communicating Progress
      3. An End-of-Iteration Summary
        1. Context
          1. Dates
          2. Personnel
        2. Metrics
          1. Nightly Build Results
          2. Iteration Burndown
          3. Velocity
        3. Contents and Assessment
          1. Iteration Review
      4. Summary
      5. Discussion Questions
  15. VI. Why Agile Planning Works
    1. 22. Why Agile Planning Works
      1. Replanning Occurs Frequently
      2. Estimates of Size and Duration Are Separated
      3. Plans Are Made at Different Levels
      4. Plans Are Based on Features, Not Tasks
      5. Small Stories Keep Work Flowing
      6. Work in Process Is Eliminated Every Iteration
      7. Tracking Is at the Team Level
      8. Uncertainty Is Acknowledged and Planned For
      9. A Dozen Guidelines for Agile Estimating and Planning
      10. Summary
      11. Discussion Questions
  16. VII. A Case Study
    1. 23. A Case Study: Bomb Shelter Studios
      1. Day 1—Monday Morning
      2. Estimating the User Stories
      3. Preparing for Product Research
      4. Iteration and Release Planning, Round 1
        1. Planning the First Iteration
        2. Release Planning
      5. Two Weeks Later
      6. Planning the Second Iteration
      7. Two Weeks Later
      8. Revising the Release Plan
      9. Presenting the Revised Plan to Phil
      10. Eighteen Weeks Later
  17. Reference List