Distributed Development Best Practices

Preview:

Citation preview

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

sunilrm@thoughtworks.com

Blog:

http://suniltalksagile.wordpress.com/

Thank You!

Recommended