Planning Extreme Programming

Book description

"XP is the most important movement in our field today. I predict that it will be as essential to the present generation as the S.E.I. and its Capability Maturity Model were to the last."

--From the foreword by Tom DeMarco

The hallmarks of Extreme Programming--constant integration and automated testing, frequent small releases that incorporate continual customer feedback, and a teamwork approach--make it an exceptionally flexible and effective approach to software development. Once considered radical, Extreme Programming (XP) is rapidly becoming recognized as an approach particularly well-suited to small teams facing vague or rapidly changing requirements--that is, the majority of projects in today's fast-paced software development world.

Within this context of flexibility and rapid-fire changes, planning is critical; without it, software projects can quickly fall apart. Written by acknowledged XP authorities Kent Beck and Martin Fowler, Planning Extreme Programming presents the approaches, methods, and advice you need to plan and track a successful Extreme Programming project. The key XP philosophy: Planning is not a one-time event, but a constant process of reevaluation and course-correction throughout the lifecycle of the project.

You will learn how planning is essential to controlling workload, reducing programmer stress, increasing productivity, and keeping projects on track. Planning Extreme Programming also focuses on the importance of estimating the cost and time for each user story (requirement), determining its priority, and planning software releases accordingly.

Specific topics include:

  • Planning and the four key variables: cost, quality, time, and scope

  • Deciding how many features to incorporate into a release

  • Estimating scope, time, and effort for user stories

  • Prioritizing user stories

  • Balancing the business value and technical risk of user stories

  • Rebuilding the release plan based on customer and programmer input

  • Choosing the iteration length

  • Tracking an iteration

  • What to do when you're not going to make the date

  • Dealing with bugs

  • Making changes to the team

  • Outsourcing

  • Working with business contracts

  • In addition, this book alerts you to the red flags that signal serious problems: customers who won't make decisions, growing defect reports, failing daily builds, and more. An entire chapter is devoted to war stories from the trenches that illustrate the real-world problems many programmers encounter and the solutions they've devised.

    0201710919B04062001

    Table of contents

    1. Copyright
      1. Dedication
    2. Foreword
    3. Preface
    4. Acknowledgments
    5. 1. Why Plan?
      1. Why We Should Plan
      2. What We Need in Planning
      3. The Planning Trap
    6. 2. Fear
      1. Unacknowledged Fear Is the Source of All Software Project Failures
      2. Customer Bill of Rights
      3. Programmer Bill of Rights
    7. 3. Driving Software
    8. 4. Balancing Power
      1. The Customer
      2. Finding a Customer
      3. Guiding the Customer
    9. 5. Overviews
      1. Top Down
      2. Bottom Up
    10. 6. Too Much to Do
    11. 7. Four Variables
      1. Cost
      2. Quality
      3. Time and Scope
      4. Shopping for Stories
    12. 8. Yesterday's Weather
      1. The Story
      2. How It Works
    13. 9. Scoping a Project
      1. Making the Big Plan
      2. What, Me Worry?
    14. 10. Release Planning
      1. Who Does Release Planning?
      2. How Stable Is the Release Plan?
      3. How Far in Advance Do You Plan?
      4. How Do You Plan Infrastructure?
      5. How Do You Store the Release Plan?
      6. How Much Can You Put into a Release?
      7. Release Planning Chapters
    15. 11. Writing Stories
      1. Principles of Good Stories
      2. Feedback from Estimation
      3. Prioritizing User Stories
      4. Traceability
      5. Splitting User Stories
      6. User Story Adornments
      7. The Story Writing Process
      8. When Are You Done Writing Stories?
      9. The Disposition of User Stories
      10. Example
    16. 12. Estimation
      1. Estimating the Size of a Story
      2. Estimating How Much You Can Do in an Iteration
      3. The Meaning of Ideal Time
      4. Improving Your Estimates
    17. 13. Ordering the Stories
      1. Business Value
      2. Technical Risk
      3. Negotiating Between the Two
      4. Example Release Plan
    18. 14. Release Planning Events
      1. Changing the Priorities of Stories
      2. Adding a Story
      3. Rebuild the Release Plan
    19. 15. The First Plan
      1. Making the First Plan
      2. Choosing Your Iteration Length
      3. Getting Started
    20. 16. Release Planning Variations
      1. Short Releases
      2. Long Releases
      3. Small Stories
    21. 17. Iteration Planning
      1. Never Slip the Date
    22. 18. Iteration Planning Meeting
      1. Understanding the Story
      2. Listing the Tasks for an Iteration
      3. Technical Tasks
      4. Measuring the Velocity of a Programmer
      5. Signing Up and Estimating Tasks
      6. Scut Work
      7. Too Much to Do
      8. Too Little to Do
      9. Example
    23. 19. Tracking an Iteration
      1. Iteration Progress Check
      2. Falling Behind
      3. When a Programmer Has Extra Time
      4. When Is the Iteration Done?
      5. When Is a Story Done?
      6. Example Iteration Tracking
    24. 20. Stand-up Meetings
    25. 21. Visible Graphs
      1. Examples
      2. Productivity
      3. Integration Hell (Well, "Heck" Anyway)
      4. Choosing Which Graphs to Show
    26. 22. Dealing with Bugs
      1. Dealing with Production Defects
      2. Production Support Team
      3. Dealing with Critical Bugs
    27. 23. Changes to the Team
      1. Coming
      2. Going
      3. Splitting the Team
      4. People Growing
    28. 24. Tools
    29. 25. Business Contracts
      1. Outsourcing
      2. In-House Development
      3. Shrink-Wrap
    30. 26. Red Flags
      1. Missing Estimates
      2. Customers Won't Make Decisions
      3. Defect Reports
      4. Not Going End to End
      5. Failing Builds
      6. Customer Won't Finish
    31. 27. Your Own Process

    Product information

    • Title: Planning Extreme Programming
    • Author(s): Kent Beck, Martin Fowler
    • Release date: October 2000
    • Publisher(s): Addison-Wesley Professional
    • ISBN: 0201710919