Mark Rajpal Distributed agile
Agenda • Collocation • What is Distributed Agile? • Is it really Agile? • Why? • What does it require? • Challenges • Overcoming challenges • Distributed Scrum • Avoidance • Misconceptions • Success Stories • Final Thoughts • Q & A
Collocation • Alleviates communication issues when it comes to meetings, pair programming, etc. • Good fit for methodologies like Crystal Clear • Ideal, but not always possible
What is Distributed Agile? • Teams or team members are not collocated • Do not necessarily have to be geographically dispersed
Is it really Agile? • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. • Business people and developers must work together daily throughout the project.
Is it really Agile? • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. • Working software is the primary measure of progress. • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Is it really Agile? • Continuous attention to technical excellence and good design enhances agility. • Simplicity--the art of maximizing the amount of work not done--is essential. • The best architectures, requirements, and designs emerge from self-organizing teams. • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Why? • Complete software projects faster with improved quality • Deliver success • Save money • Reduce risk • Tap into a talent pool that is not available locally
Why? • The problem is getting worse instead of better. • We have less success and more failure. STANDISH CHAOS REPORT
What does it require? • Bring everyone together at the beginning • Experience • If you haven’t tried Distributed Agile, try Agile first. • Training & Certification • A trained individual should be responsible for coaching the rest of the team. • Business analysts may need to job shadow subject matter experts.
What does it require? • Your existing tools can still be utilized but you may require additional ones. • e.g. IM, Video Conferencing, Webcams, etc. • CI is a must • Consider 3rd party services to host infrastructure to alleviate latency • May require a small team that is solely responsible for integration (depending on the size of the project).
What does it require? • Iterations • Start with month long sprints and adjust accordingly • Strong Scrum of Scrums • Possibly a weekly meeting which must be attended in person • Travel preparations • Visas, passports • Immunizations
Challenges • Communication • Misinterpretation • Delayed responses • Different languages • Coordination • Duplication of effort, re-work • Opposite time zones • Project and process management • Difficult to determine progress • Difficulty synchronizing work between sites
Challenges • Technical • Incompatible data formats, standards, etc. • Domain knowledge • Product vision • Blame Game
Overcoming challenges • Communication • Use simple language and slow down • Agree on Agile terms and practices • Take advantage of collaboration tools • Don’t rely on email alone • Dedicated rooms and equipment so team is able to meet on an ad-hoc basis • Coordination • Overlap working hours • Incorporate a team calendar • Project shutdown (everyone takes vacation)
Overcoming challenges • Travel • Determine when it really is necessary
Overcoming challenges • Comradery • Celebrate holidays, customs
Distributed Scrum • 3 Models • Isolated Scrums • Distributed Scrum of Scrums • Totally Integrated Scrums
Distributed Scrum • Isolated Scrums • Teams are isolated across geographies. In most cases off-shore teams are not cross-functional and may not be using the Scrum process. • Used by most outsourced development efforts. • Outsourced teams typically abandon Scrum and fall back to Waterfall.
Distributed Scrum • Distributed Scrum of Scrums • Scrum teams are isolated across geographies and integrated by a Scrum of Scrums that meets regularly across geographies. • Promotes sub-team unity as opposed to team unity. • Best practice recommended by the Scrum Alliance.
Distributed Scrum • Totally Integrated Scrums • Scrum teams are cross-functional with members distributed across geographies. • The project is integrated into a single whole. • Single code base. • Retain core knowledge. • Recommended for experienced Agile teams at multiple locations.
Avoidance • Fixed Price Model • Non-Software Development projects • e.g. upgrades/migrations • Minimal User Involvement • Lengthy Internal Processes • Perfection • Large Dispersed Team • Older Technologies • Non-Agile Teams
Misconceptions • By performing daily scrums we’re being Agile • Being Agile means you accept all changes • Agile does not require documentation • Agile/Scrum/Extreme Programming (XP) are synonymous • Distributed Agile is always the best approach
Success Stories • Eclipse “Callisto” • Simultaneous release of 10 Eclipse toolsets • 262 committers • 12 countries • 72,000 resolved bugzilla entries • 6 million LOC
Success Stories • BMC software • 7 teams, 135 people in 4 cities (Texas, Calif., Pune India) • 4X faster time to market • 4.5 months for 600 stories & 596K LOC • team was 2X larger than average study team • same defect rate for level of effort • individual team productivity up 20-50%
Success Stories • Jeff Sutherland – Xebia • Teams of peers split between Netherlands and India • Brought entire Indian team to Netherlands for 2 iterations • Rotating travel schedule between sites • Pair-programming across continents • Heavy use of video conferencing • Full XP practices, high quality (95% defects found in iteration) • 15 function pts/dev/month vs. Cohn‟s reported 6-person colocated • team results of 16 function pts/dev/month • Conclusion: fully distributed Scrum more valuable than localized
Final Thoughts • Maximize face time • Travel when necessary • Distributed Agile is not a good fit for all organizations • Re-evaluate and take corrective action at the end of each sprint • DASD is not simply an extension of Agile, but rather a complex undertaking that involves Agile
Final Thoughts • Distributed Agile is gaining worldwide acceptance. • Many success stories • It was addressed in a few sessions at Agile Alliance 2011. • Distributed Scrum: Why some teams make it work well and others don't • Distributed 3d Conference Ready Rooms