HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Succeed with Scrum in Even the Largest, Most Complex Distributed Development Projects
Forewords by Ken Schwaber, Scott Ambler, Roman Pichler, and Matthew Wang
This is the first comprehensive, practical guide for Scrum practitioners working in large-scale distributed environments. Written by three of IBM’s leading Scrum practitioners--in close collaboration with the IBM QSE Scrum Community of more than 1000 members worldwide--this book offers specific, actionable guidance for everyone who wants to succeed with Scrum in the enterprise.
Readers will follow a journey through the lifecycle of a distributed Scrum project, from envisioning products and setting up teams to preparing for Sprint planning and running retrospectives. Each chapter presents a baseline drawn from “conventional” Scrum, then discusses additional issues faced by distributed teams, and presents specific best-practice solutions, alternatives, and tips the authors have identified through hard, empirical experience.
Using real-world examples, the book demonstrates how to apply key Scrum practices, such as look-ahead planning in geographically distributed environments. Readers will also gain valuable new insights into the agile management of complex problem and technical domains.
Coverage includes
• Developing user stories and working with Product Owners as a distributed team
• Recognizing and fixing the flaws Scrum may reveal in existing processes
• Engaging in more efficient Release and Sprint planning
• Conducting intense, brief daily Scrum meetings in distributed environments
• Managing cultural and language differences
• Resolving dependencies, performing frequent integration, and maintaining transparency in geographically distributed environments
• Successfully running remote software reviews and demos
• Brainstorming what worked and what didn’t, to improve future Sprints
This book will be an indispensable resource for every team leader, member, product owner, or manager working with Scrum or other agile methods in any distributed software development organization.
Foreword by Ken Schwaber xvii
Foreword by Scott Ambler xix
Foreword by Roman Pichler xxiii
Foreword by Matthew Wang xxv
Preface xxvii
Chapter 1 The Evolution of Scrum 1
Core Principles of Scrum 2
An Agile Project Management Framework 2
Scrum Roles 2
Scrum Artifacts 3
The Sprint 4
The Shift to Distributed Development Teams 5
Globally Distributed Teams to Reduce Costs 6
Reaching Market More Quickly with the “Follow the Sun” Model 6
Distributed Teams Expand Access to New Markets 6
Acquisitions 7
Expanding for Innovation and Thought Leadership 7
Telecommuting 7
Improvements in Distributed Collaboration Tools 7
Types of Distributed Teams That Have Emerged 8
Collocated 8
Collocated Part-Time 9
Distributed with Overlapping Work Hours 10
Distributed with No Overlapping Work Hours 11
Ways of Handling Distributed Teams 12
Isolated Scrums 12
Distributed Scrum of Scrums 12
Totally Integrated Scrums 13
IBM’s Experience in Distributed Scrum 14
History of Agile in IBM 15
Summary 17
Chapter 2 Challenges Faced by Distributed Teams 19
Communicating with Distributed Team Members 20
Time Zones and Working Hours 20
Cultural Differences 21
Language Differences 23
Keeping Language Simple 23
Giving Everyone a Chance to Speak 24
Using Group Chat During Meetings 24
Providing a Translator 25
Confirming What Team Members Understand 25
Tools 26
File Sharing 26
Software Engineering Practices 27
Schedule Differences 27
Team Dynamics 28
Telephone Dynamics 29
Providing Access to the Call 29
Working with Telephones in a Meeting Room 30
Identifying the Speaker 31
Handling Visual Cues 31
Encouraging Participation 32
Limiting Side Conversations 33
Muting the Lines 33
Checking for Agreement and Disagreement 34
Identifying an Advocate to Represent Remote Team Members 34
When Nothing Else Works, Everyone Dials In 34
Reminders 34
Impact of Communication Problems 35
How Does Scrum Help? 36
Summary 37
Chapter 3 Starting a Scrum Project 39
How to Identify the Problems Your Product Will Solve 40
Who Are Your Stakeholders? 40
What Problems Will the Project Address? 42
What Are Your Solutions to the Problems? 46
What Is the Return on Investment? 47
Define the Vision 49
Create the Product Roadmap 50
Organize the Scrum Teams 50
Create and Prioritize the Backlog 51
Estimating the Stories as a Team 52
Prioritizing the Backlog 52
Single Backlog for Multiple Scrum Teams 53
Single Backlog with Sections for Multiple Teams 53
Separate Backlogs for Multiple Scrum Teams 54
Single Backlog Populated by Multiple Other Teams 56
Create the Release Plan 56
What Is the Sprint Length? 58
What Is the Estimated Team Velocity? 59
What Are the Dependencies? 61
What Are the Risks? 63
Coordinate Multiple Product Owners 63
Use Agile Project Management Tools 64
Invest in Smarter Development 65
Coordinating Agile and Non-Agile Teams 66
Reporting on Release Status 66
Ongoing Updates to Release Plan and Vision 66
Important Note about Meeting Face-to-Face 66
Summary 67
Chapter 4 Preparing for Sprint Planning 69
Sprint Preplanning Activities 70
Clarification of the User Stories 71
Breaking Down User Stories 72
Estimating User Stories 72
Dealing with Dependencies 75
Cleanup of the Product Backlog 78
Approaches for the Sprint Preplanning Meeting 78
The Full-Team Approach 80
The Preplanning Team Approach 81
The Balanced Team Approach 82
Considerations for Distributed Teams 82
Summary 83
Chapter 5 Sprint Planning 85
Adequately Preparing for the Sprint Planning Meeting 87
Sprint Planning Meeting Logistics 87
Sprint Planning Meeting Logistics for Scaled Teams 87
Sprint Planning Meeting Logistics for Distributed Teams 88
The First Half of Sprint Planning: Deciding What to Do 88
Reviewing Product Vision and Sprint Goal 89
Reviewing the Product Backlog 89
Engaging Stakeholders 91
The Second Half of Sprint Planning: Deciding How to Get the Work Done 91
Creating the Sprint Backlog 92
Gaining Commitment 94
Updating the Release Plan 94
Summary 94
Chapter 6 Distributed Daily Scrum Meetings 97
Using the Three Questions Effectively 98
Answering the Three Questions 99
Coordinating the Team on a Daily Basis 99
Committing to the Team 100
Verifying Progress 100
Resolving Blockers 101
Daily Scrum Logistics 102
Ways of Communicating During the Daily Scrum 102
Face-to-Face Meeting 102
Teleconference Meeting 103
Videoconference Meeting 104
Group Instant Messaging Approach 105
Approaches to Handling Time Zone Issues 106
Daily Scrums Through Documentation 107
The Liaison Approach 108
Alternating Meeting Times 110
Sharing the Pain 112
Tips for Distributed Daily Scrums 114
Removing Side Conversations 114
Keeping the Team Engaged 114
Facilitating the Meeting 115
Taking Daily Scrum Notes 116
Dealing with Language Barriers 117
Tools to Help with Distributed Daily Scrum 117
Scrum of Scrums 118
Summary 118
Chapter 7 Effective Collaboration During a Sprint 121
Communicating During the Sprint 122
Documentation to Overcome Distance 123
Using the Right Tools 123
Valuing the Whole Team 124
Transparency 124
Handling New Requests in the Middle of a Sprint 125
Single Point of Entry 125
Value of the Well-Groomed Backlog 126
Shortening the Sprint 127
Dealing with Defects 127
Disruptions at the Team Member Level 128
Handling Stories the Team Cannot Complete During the Sprint 128
Handling Blockers During the Sprint 129
Responding to Questions During the Sprint 130
Sustainable Pace 131
Sharing Time Zone Challenges 132
Avoiding Double Workdays 132
Continuous Integration 133
Reports Any Build Failures to the Team 133
Reduces the Risk of Integrating Code 133
Establishes Greater Confidence in the Product 135
Reduces the Time to Find Integration Issues 135
Improves the Efficiency of the Team 136
Builds Can Run at Different Frequencies 136
Test Automation 137
Dedicated Automation Teams 137
Identify High-Value Automated Tests 138
Automate What Is Stable 138
Automated Tests Can Run at Any Time 139
Automation Helps Improve Software Quality 139
Test-Driven Development 139
Provides Documentation and Working Examples of Code 140
Helps Reduce the Time to Fix Defects 140
Helps Improve Code Quality and Provides a Safety Net for Changes 141
Helps Team Members Work Together and Collaborate 141
Helps Teams Move Away from Big Upfront Designs 142
Unit Tests and Continuous Integration 142
Handling Infrastructure Projects 143
Summary 144
Chapter 8 End of Sprint Reviews 147
Who Participates in the Reviews 148
Enterprise Stakeholders 148
Who Should Present 149
Preparing Stakeholders 150
Reviewing the Strategic Vision of the Product 151
Approaches to Help Focus the Review 151
Using Themes and a Script 152
Having the Product Owner Introduce Each Presentation 152
Scheduling for Teams with Overlapping Work Hours 153
Scheduling for Teams with No Overlapping Work Hours 154
Alternating Meeting Times 154
Multiple Sprint Review Meetings 155
Sharing the Pain 156
Feeling the Pain 156
Recording the Entire Sprint Review Meeting 157
Challenges Teams Face 157
Not Keeping Track of the Stakeholder Comments 157
Demos May Provide a False Sense of Completion 158
The Team Has Nothing to Present 158
Added Challenges of Distributed Teams 159
Neglecting to Demo the Work of Part of the Team 159
Coordinate with Teams on Different Sprint Lengths 160
Remote Demonstrations 160
Network Delays and Poor Performance 160
Services May Vary by Location 161
Demos Outside of Office Hours 161
Summary 162
Chapter 9 Retrospectives 163
Sprint Retrospectives 163
What Should Come Out of a Retrospective? 165
Retrospective Timing 166
Hold Joint Retrospective as Needed 166
Hold Regular Joint Retrospectives 166
Joint Retrospectives for Teams on Different Sprint Lengths 167
Retrospectives for Teams in the Same Product Family 167
Conducting Retrospectives After Reviews 167
Larger Retrospectives 168
Building Trust 168
Effects of Distance 169
Preparing for the Retrospective 169
Setting Expectations 169
Understanding the Team Members’ Personalities 170
Respecting Cultural Differences 171
Offering Anonymity 171
Asking for Comments Before the Retrospective Meeting 171
What Went Well and What Can We Improve? 171
Providing Questions to Focus the Discussion 172
Consolidating Comments Is Extra Work 172
Conducting the Retrospective 173
Discussing Reported Issues 173
Giving Everyone a Chance to Engage 174
Using Common Terminology 175
State the Obvious 175
Keep the Conversation on Track 175
Managing Time Effectively 175
Release Retrospectives 176
Summary 177
Chapter 10 Closing Thoughts 179
Index 181