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.
This is the digital version of the printed book (Copyright © 2010).
All software projects face the challenges of diverse distances -- temporal, geographical, cultural, lingual, political, historical, and more. Many forms of distance even affect developers in the same room. The goal of this book is to reconcile two mainstays of modern agility: the close collaboration agility relies on, and project teams distributed across different cities, countries, and continents.
In Agile Software Development with Distributed Teams, Jutta Eckstein asserts that, in fact, agile methods and the constant communication they require are uniquely capable of solving the challenges of distributed projects. Agility is responsiveness to change -- in other words, agile practitioners maintain flexibility to accommodate changing circumstances and results. Iterative development serves the learning curve that global project teams must scale.
This book is not about how to outsource and forget your problems. Rather, Eckstein details how to carefully select development partners and integrate efforts and processes to form a better product than any single contributor could deliver on his or her own. The author de-emphasizes templates and charts and favors topical discussion and exploration. Practitioners share experiences in their own words in short stories throughout the book. Eckstein trains readers to be change agents, to creatively apply the concepts in this book to form a customized distributed project plan for success.
Topics include:
Understanding Distributed Development
The Productivity Myth
Ensuring Conceptual Integrity
Trust and Mutual Respect
Iterations and Releases
Using Features to Steer the Development Effort
Team Velocity
Virtual Retrospectives
Dispersed Synchronization
Introducing Agility to Global Projects
and much more
Assessing Agility and Distributed Projects
Download the sample pages (includes Chapter 3 and Index)
Preface xiii
Chapter 1 Getting Started 3
Focus 4
Intended Audience 4
Perspective 5
Roadmap to the Book 6
Chapter 2 Assessing Agility and Distributed Projects 9
Understanding Distributed Development 9
Working With Several Development Sites 10
Distributed and Dispersed Teams 10
Large Projects 11
Coordinating Companies 12
Different Sites 13
Customers and Distance 14
Centrally Coordinated or Globally Integrated 15
Overcoming the Distance 16
Understanding Agility 16
Core Value Pair Statements .17
Systemic Approach .19
Risk Reduction 19
The Productivity Myth 20
More Than Practices 21
Neither Chaotic nor Undisciplined 21
Agile Principles Influencing Globally Distributed Projects 22
Summary 24
Chapter 3 Building Teams
Feature Teams 27
Single- and Multi-Site Teams 28
Dispersed Teams 31
Forging a Team 32
Teams Happen, by David Hussman 33
Roles 36
Feature-Team Constellation 36
Architect and Chief Architect 38
Experiences as a Software Architect on Global Agile Projects, by Michael Kircher 40
Coach 43
Product Owner and Product Manager 44
Project Manager 48
Collocate Key Roles with Teams 49
Ensuring Conceptual Integrity 49
Starting Team Provides Model 50
Technical Service Team 50
Summary 51
Chapter 4 Establishing Communication and Trust 53
Trust and Mutual Respect 54
Trust Threshold 55
Changing Meeting Locations 56
Vocabulary 57
Communication 58
In-Person Team Meetings 58
Face-to-Face Project Meetings 59
People Rotation 60
Communication Costs 61
Communication Flow 62
Cultural Differences 63
Similarities Versus Differences 64
Culture Fit 65
Crossing Big Boundaries, by Ainsley Nies 67
Realistic Planning 68
Taking Responsibility 68
Problem Reporting 69
Honest Feedback 70
Noise 71
Humor 72
Communication Media 72
Summary 74
Chapter 5 Keeping Sites in Touch 76
Communication Facilitator 77
Communication Facilitator As Ombudsman 77
Technical and Social Prowess 78
Management By Flying Around 78
Ambassador 79
Site Representation 80
Characteristics and Competency 80
Travel Schedule 81
Concrete Tasks 82
Social Connections 83
Joint Celebration 83
Picture Power 83
Everyday Life 84
Travel Tips 84
Tools .85
Direct Connections 86
Synchroneity Versus Asynchroneity 86
Audio and Video 87
Instant Messaging 88
E-mail 89
Virtual Space 90
Common Repository 91
Wiki and Other Collaboration Platforms 91
Summary 92
Chapter 6 Ensuring Development and Delivery 94
Iterations 95
Iteration Length 95
Done-Done 96
Project Heartbeat 97
Delivery Delay 97
Releases 99
Release Iteration 99
Release Site 100
Integration and Build 101
Local Success First 101
Integration Effort 101
Production Shut-Down 103
Integration and Build Optimization 104
Infrastructure 105
Build and Integration Process and Tools 105
Configuration Management 107
Follow the Sun, by Joseph Pelrine 109
Power 111
Security 111
Network Sense 112
Tools 113
Summary 113
Chapter 7 Ensuring Business Value 115
Steering Through Valuable Features 115
Real-Customer Awareness 116
Connecting to a Distant Customer, by Daniel Karlström 117
Iteration Preparation 119
Understanding Requirements 122
Treating Requested Documentation As Requirements 123
Team Velocity 123
Unknown Velocity 124
Estimation Unit 125
Planning Poker 126
Estimation Parity 128
Velocity Disparity 130
Planning an Iteration 131
Feature-Planning Integrity 131
Planning-Meeting Essentials 132
Planning-Meeting Schedule 132
Tangible Planning Tools 133
Iteration Tracking 134
Planning and Tracking Tools 135
Keeping Goals in Focus 136
Dealing With Change 138
Iteration Length Marks Response Time 138
Change-Request Scheduling 139
Team-Structure Change 139
Overall Project Plan 140
Release Planning 140
Forecasting 141
Release Versus Milestone 142
Summary 143
Chapter 8 Eliciting Feedback and Conducting Retrospectives 145
Customer Feedback 146
Identifying the Customer 146
Distant Customer 147
Customer Presentations 147
Review Meetings 148
Iteration Reviews 148
Individual and Dispersed Versus Joint and In-Person Review Meetings 149
Release Reviews 151
Retrospectives 151
Individual-Feature-Team Retrospectives 154
Project-Wide Retrospectives 154
Joint-Site Retrospectives 156
Retrospective Protocol 156
Virtual Retrospectives 157
Distributed Retrospectives, by Linda Rising 158
Retrospective Attendees 160
Common Retrospective Mistakes 160
Facilitation Techniques 161
Facilitating an Effective Virtual Retrospective, by Debra Lavell 162
Metrics 166
Progress Measurement 166
Estimate-Quality Measurement 169
Increasing the Test Base 170
Summary 170
Chapter 9 Honing Practices 172
Development Practices 172
Pair Programming 173
Unit-Testing 175
Refactoring 175
Refactoring on Large Projects, by Nicolai M. Josuttis 177
Collective Ownership 180
Common Coding Guideline 181
Feature Communication via Tests 182
Distributed Agile and Acceptance Testing, by Naresh Jain 183
Out-of-the-Box Practices 187
Process Practices 188
Development Culture 196
Project-Wide Practices 197
Evolving Practices 198
Different Practices 199
Process Standards Based on CMMI and ISO 200
Equal Rights 202
Summary 203
Chapter 10 Introducing Agility into New and Existing
Distributed Projects 205
Start Locally,Grow Globally 206
Collocation and Rotation 207
Fundamental Iterations 208
Early-On Iteration 210
Time-Boxed Project Start 211
Growing Teams and Growing Sites 211
Kick-Off 211
Project-Culture Transmittal 213
Cultural Training 214
Integrating New People 215
Introducing Agile to an Existing Project 216
Gradual Versus Project-Wide Change 216
Team-Structure Change 217
More and/or Better Coaches 218
Estimation and Velocity 218
Lone Fighter 219
Summary 220
Afterword 223Glossary 225
References 232
Index 241