distributed development best practices
TRANSCRIPT
Distributed Development
Best Practices
September 7, 2012
Outline
Why Distributed Development
Challenges In Distributed
Development
Best Practices
Role of Agile in Distributed
Development
Summary
Q&A
Setting Expectations
Takeaways
Sources of
Challenges
Practical tips for
Best Practices
Role of Agile in
enabling
Distributed
Development
Not Meant
Agile Practices
One Size Fits All
Silver Bullet
Why Distributed
Development?
BAU
Cost Arbitrage
Outsourcing
BAU
Cost Arbitrage
Outsourcing
Proximity to Customers
24 X 7 Development Cycle
Access to Talent/Experience
Challenges
Scenario 1
Development Team is split between 2 vastly
different time zones, say China and Brazil,
and have never met each other. The teams
communicate via emails and phone calls.
Challenge: Barriers to Communication
and Collaboration
Scenario 2
Client is in USA and Development is
happening in Brazil, and client is
communicating requirements via documents
and phone calls.
Challenge: Client Requirements Disconnect/Misunderstanding
Scenario 3
Product development is split between USA
and India. USA Devs think India Devs are
not good enough, and India Devs think their
work is not getting appreciated in USA
Challenge: Lack of Trust and Low Morale
Scenario 4
Product development is split between USA
and India. India Devs ended their day with a
broken build, resulting in USA Devs not
being able to work on the latest build
Challenge: Lack of Co-ordination
Scenario 5
Product development is split between USA
and Philippines. On the release date, USA
was ready with their features, but
Philippines slipped
Challenge: Lack of Visibility
Additional Challenges
Additional Challenges
Lack of Cultural Sensitivity
Additional Challenges
Unforeseen Risks
Additional Challenges
Lack of Common Ownership of Code
Additional Challenges
Lack of ‘Big Picture’ View
Additional Challenges
Finger Pointing on Slip Ups
Best Practices
People
Process Tools
& Infrastructure
Challenges
People
People
Proxy Product Owner
People
Cross Pollination
People
Cultural Sensitivity
People
Optimize Team Around
Effective Communicators
People
Enable
Personal Relationships
People
Culture of Feedback
Process
Process
Joint Meetings:
Stand Ups
Retrospectives
Process
Showcases
Process
Overlap Hours
Process
Remote Pairing
Process
Operational Documentation
Process
Co-Located Meetings:
Inception
Release Planning
Process
Functionality Based Structure
Process
Daily Hand Offs
Tools & Infrastructure
Tools
Electronic Info. Radiators:
Story Wall
Build
Metrics Dashboard
Tools
Communication and
Collaboration Tools
Infrastructure
Standard Team Rooms
Infrastructure
Network Connectivity
Infrastructure
Development and Testing
Environments
Infrastructure
Version Control System
Electronic Story Wall Example
Tools Examples
Telepresence
Multi-View
Webcams
CI and Build Pipeline
Speaker Phones
Wiki Messaging Tools
Agile & Distributed Dev.
Agile and Distributed Development
Reduce Project Risk
Agile and Distributed Development
Maximize Collaboration
Agile and Distributed Development
Overcoming Communication
Barriers
Agile and Distributed Development
Maximize Efficiency Through
Engineering Practices
Agile and Distributed Development
Scale Without Sacrificing Quality
To Summarize…..
To Summarize
Communication and Travel
Overheads Are Worth It
To Summarize
Remember, Not Everyone Is In
‘The Room’
To Summarize
Transparency Is Key
To Summarize
Aim To Maximize ‘Intimacy’
To Summarize
Maintain Discipline
To Summarize
Leverage The Distance
Questions?
Sunil Mundra
Blog:
http://suniltalksagile.wordpress.com/
Thank You!