KEMBAR78
Distributed Development Best Practices | PDF
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              Not Meant
   Sources of             Agile Practices
   Challenges             One Size Fits All
   Practical tips for     Silver Bullet
   Best Practices
   Role of Agile in
   enabling
   Distributed
   Development
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

             Challenges
Tools
& Infrastructure          Process
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



                                          Speaker Phones      Multi-View
                                                              Webcams
                  CI and Build Pipeline




Messaging Tools      Telepresence                      Wiki
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
    sunilrm@thoughtworks.com

                 Blog:
http://suniltalksagile.wordpress.com/
Thank You!

Distributed Development Best Practices