380 likes | 650 Views
Mark Rajpal. Distributed agile. Poll. 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.
E N D
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