You are previewing Learning Agile.
O'Reilly logo
Learning Agile

Book Description

Learning Agile is a comprehensive guide to the most popular agile methods, written in a light and engaging style that makes it easy for you to learn.

Agile has revolutionized the way teams approach software development, but with dozens of agile methodologies to choose from, the decision to "go agile" can be tricky. This practical book helps you sort it out, first by grounding you in agile’s underlying principles, then by describing four specific—and well-used—agile methods: Scrum, extreme programming (XP), Lean, and Kanban.

Table of Contents

  1. Foreword
  2. Preface
    1. Acknowledgments
    2. Safari® Books Online
    3. How to Contact Us
  3. 1. Learning Agile
    1. What Is Agile?
    2. Who Should Read This Book
    3. Our Goals for This Book
    4. Getting Agile into Your Brain by Any Means Necessary
    5. How This Book Is Structured
  4. 2. Understanding Agile Values
    1. A Team Lead, Architect, and Project Manager Walk <span xmlns="" xmlns:epub="" class="keep-together">into a Bar...</span>
    2. No Silver Bullet
    3. Agile to the Rescue! (Right?)
      1. Adding Agile Makes a Difference
      2. “Better-Than-Not-Doing-It” Results
    4. A Fractured Perspective
      1. How a Fractured Perspective Causes Project Problems
      2. Why Does a Fractured Perspective Lead to Just Better-Than-Not-Doing-It Results?
    5. The Agile Manifesto Helps Teams See the Purpose Behind Each Practice
      1. Individuals and Interactions Over Processes and Tools
      2. Working Software Over Comprehensive Documentation
      3. Customer Collaboration Over Contract Negotiation
      4. Responding to Change Over Following a Plan
      5. Principles Over Practices
    6. Understanding the Elephant
      1. Methodologies Help You Get It All in Place at Once
    7. Where to Start with a New Methodology
  5. 3. The Agile Principles
    1. The 12 Principles of Agile Software
    2. The Customer Is Always Right...Right?
      1. “Do As I Say, Not As I Said”
    3. Delivering the Project
      1. Principle #1: Our Highest Priority Is to Satisfy the Customer Through Early and Continuous Delivery of Valuable Software.
      2. Principle #2: Welcome Changing Requirements, Even Late In Development. Agile Processes Harness Change for the Customer’s Competitive Advantage.
      3. Principle #3: Deliver Working Software Frequently, from a Couple of Weeks to a Couple of Months, with a Preference to the Shorter Timescale.
      4. Better Project Delivery for the Ebook Reader Project
    4. Communicating and Working Together
      1. Principle #4: The Most Efficient and Effective Method of Conveying Information To and Within a Development Team Is Face-To-Face Conversation.
      2. Principle #5: Businesspeople and Developers Must Work Together Daily Throughout the Project.
      3. Principle #6: Build Projects Around Motivated Individuals. Give Them the Environment and Support They Need, and Trust Them to Get the Job Done.
      4. Better Communication for the Ebook Reader Project
    5. Project Execution—Moving the Project Along
      1. Principle #7: Working Software Is the Primary Measure of Progress.
      2. Principle #8: Agile Processes Promote Sustainable Development. The Sponsors, Developers, and Users Should Be Able to Maintain a Constant Pace Indefinitely.
      3. Principle #9: Continuous Attention to Technical Excellence and Good Design Enhances Agility.
      4. A Better Working Environment for the Ebook Reader Project Team
    6. Constantly Improving the Project and the Team
      1. Principle #10: Simplicity—the Art of Maximizing the Amount of Work Not Done—Is Essential.
      2. Principle #11: The Best Architectures, Requirements, and Designs Emerge from Self-Organizing Teams.
      3. Principle #12: At Regular Intervals, the Team Reflects on How to Become More Effective, Then Tunes and Adjusts Its Behavior Accordingly.
    7. The Agile Project: Bringing All the Principles Together
  6. 4. Scrum and Self-Organizing Teams
    1. The Rules of Scrum
    2. Act I: I Can Haz Scrum?
    3. Everyone on a Scrum Team Owns the Project
      1. The Scrum Master Guides the Team’s Decisions
      2. The Product Owner Helps the Team Understand the Value of the Software
      3. Everyone Owns the Project
      4. Scrum Has Its Own Set of Values
    4. Act II: Status Updates Are for Social Networks!
    5. The Whole Team Uses the Daily Scrum
      1. Feedback and the Visibility-Inspection-Adaptation Cycle
      2. The Last Responsible Moment
      3. How to Hold an Effective Daily Scrum
    6. Act III: Sprinting into a Wall
    7. Sprints, Planning, and Retrospectives
      1. Iterative or Incremental?
      2. The Product Owner Makes or Breaks the Sprint
      3. Visibility and Value
      4. How to Plan and Run an Effective Scrum Sprint
    8. Act IV: Dog Catches Car
  7. 5. Scrum Planning and Collective Commitment
    1. Act V: Not Quite Expecting the Unexpected
    2. User Stories, Velocity, and Generally Accepted Scrum Practices
      1. Make Your Software Useful
      2. User Stories Help Build Features Your Users Will Use
      3. Conditions of Satisfaction
      4. Story Points and Velocity
      5. Burndown Charts
      6. Planning and Running a Sprint Using Stories, Points, Tasks, and a Task Board
      7. Generally Accepted Scrum Practices
    3. Act VI: Victory Lap
    4. Scrum Values Revisited
      1. Practices Do Work Without the Values (Just Don’t Call It Scrum)
      2. Is Your Company’s Culture Compatible with Scrum Values?
  8. 6. XP and Embracing Change
    1. Act I: Going into Overtime
    2. The Primary Practices of XP
      1. Programming Practices
      2. Integration Practices
      3. Planning Practices
      4. Team Practices
      5. Why Teams Resist Changes, and How the Practices Help
    3. Act II: The Game Plan Changed, but We’re Still Losing
    4. The XP Values Help the Team Change Their Mindset
      1. XP Helps Developers Learn to Work with Users
      2. Practices Only “Stick” When the Team Truly Believes in Them
    5. An Effective Mindset Starts with the XP Values
      1. The XP Values
      2. Paved with Good Intentions
    6. Act III: The Momentum Shifts
    7. Understanding the XP Principles Helps You Embrace Change
      1. The Principles of XP
      2. XP Principles Help You Understand Planning
      3. XP Principles Help You Understand Practices—and Vice Versa
      4. Feedback Loops
  9. 7. XP, Simplicity, and Incremental Design
    1. Act IV: Going into Overtime, Part 2: Second Overtime
    2. Code and Design
      1. Code Smells and Antipatterns (or, How to Tell If You’re Being Too Clever)
      2. XP Teams Look for Code Smells and Fix Them
      3. Hooks, Edge Cases, and Code That Does Too Much
      4. Code Smells Increase Complexity
    3. Make Code and Design Decisions at the Last Responsible Moment
      1. Fix Technical Debt by Refactoring Mercilessly
      2. Use Continuous Integration to Find Design Problems
      3. Avoid Monolithic Design
    4. Incremental Design and the Holistic XP Practices
      1. Teams Work Best When They Feel Like They Have Time to Think
      2. Team Members Trust Each Other and Make Decisions Together
      3. The XP Design, Planning, Team, and Holistic Practices Form an Ecosystem That Spurs Innovation
      4. Incremental Design Versus Designing for Reuse
      5. When Units Interact in a Simple Way, the System Can Grow Incrementally
      6. Great Design Emerges from Simple Interactions
    5. Act V: Final Score
  10. 8. Lean, Eliminating Waste, and <span xmlns="" xmlns:epub="" class="keep-together">Seeing the Whole</span>
    1. Lean Thinking
      1. You Already Understand Many of These Values
      2. Commitment, Options Thinking, and Set-Based Development
    2. Act I: Just One More Thing...
    3. Creating Heroes and Magical Thinking
    4. Eliminate Waste
      1. Use a Value Stream Map to Help See Waste Clearly
    5. Gain a Deeper Understanding of the Product
      1. See the Whole
      2. Find the Root Cause of Problems That You Discover
    6. Deliver As Fast As Possible
      1. Use an Area Chart to Visualize Work in Progress
      2. Control Bottlenecks by Limiting Work in Progress
      3. Pull Systems Help Teams Eliminate Constraints
  11. 9. Kanban, Flow, and Constantly Improving
    1. Act II: Playing Catch-Up
    2. The Principles of Kanban
      1. Find a Starting Point and Evolve Experimentally from There
      2. Stories Go into the System; Code Comes Out
    3. Improving Your Process with Kanban
      1. Visualize the Workflow
      2. Limit Work in Progress
    4. Measure and Manage Flow
      1. Use CFDs and WIP Area Charts to Measure and Manage Flow
      2. Little’s Law Lets You Control the Flow Through a System
      3. Managing Flow with WIP Limits Naturally Creates Slack
      4. Make Process Policies Explicit So Everyone Is on the Same Page
    5. Emergent Behavior with Kanban
  12. 10. The Agile Coach
    1. Act III: Just One More Thing (Again?!)...
    2. Coaches Understand Why People Don’t Always Want <span xmlns="" xmlns:epub="" class="keep-together">to Change</span>
      1. Coaches Listen for Warning Signs That the Team Is Having Trouble with a Change
    3. Coaches Understand How People Learn
      1. Use Shuhari to Help a Team Learn the Values of a Methodology
    4. Coaches Understand What Makes a Methodology Work
    5. The Principles of Coaching
  13. Index