distributed agile

53
© ThoughtWorks 2008 Distributed Agile Mark Rickmeier [email protected] Matt Simons [email protected]

Upload: thoughtworks

Post on 08-May-2015

243 views

Category:

Technology


0 download

DESCRIPTION

Distributed teams have become business as usual. How do you implement Agile practices which emphasize co-location and close collaboration with the nature of a distributed team? Read on...

TRANSCRIPT

Page 1: Distributed Agile

© ThoughtWorks 2008

Distributed AgileMark Rickmeier

[email protected]

Matt Simons [email protected]

Page 2: Distributed Agile

The challenge

Introductions

Distributed Practices

Questions

Why Distributed?

Why Agile?

Agenda

Page 3: Distributed Agile

Introductions

• Name• Role• Agile experience• Distributed experience• Why you came today…

Page 4: Distributed Agile

Market Trends Toward Distributed Development

© ThoughtWorks 2008

Page 5: Distributed Agile

Distributed teams have become business as usual

• Mergers and acquisitions• Shortage of local

expertise• Centers of excellence• Proximity to customers• Labor arbitrage

• Outsourcing• Lines of business• Countries of operation• Joint development efforts• Open source• 3rd-party Suppliers• 24 x 7 development

What influences are you feeling on your project?

Page 6: Distributed Agile

Your software delivery effort

Distributed teams are today’s software supply chain

OffshoreVendor

Internal ISTeam

Domain Experts

ServicesVendor

PackageProvider

Page 7: Distributed Agile

Distribution Models

© ThoughtWorks 2008

Dysfunctional

Testers

Analysts

Testers

Analysts

Developers

Developers

Developers

Developers

Location 1 Location 2Customers

Customers

Customers

Customers

Location 3

Page 8: Distributed Agile

Distribution Models

© ThoughtWorks 2008

Dysfunctional

Testers

Analysts

Testers

Analysts

Developers

Developers

Developers

Developers

Location 1 Location 2Customers

Customers

Customers

Customers

Location 3

Developers Testers

Customers Analysts

Functioning

Developers Testers

Customers Analysts

Page 9: Distributed Agile

Distribution Models

© ThoughtWorks 2008

Dysfunctional

Testers

Analysts

Testers

Analysts

Developers

Developers

Developers

Developers

Location 1 Location 2Customers

Customers

Customers

Customers

Location 3

Developers Testers

Customers Analysts

Functioning

Developers Testers

Customers Analysts

Developers

Customers

Testers

Analysts

Developers

Customers

Testers

Analysts

Most Effective

Page 10: Distributed Agile

Market Trends toward Agile

© ThoughtWorks 2008

Page 11: Distributed Agile

Agile Manifesto - 2001

• In 2001, industry leaders meet and decide to name a family of methodologies “Agile”

• “We are uncovering better ways of developing software by doing it and helping others do it.”

While there is value in the items on the right, we value the items on the left more.

Individuals and interactions over Process and Tools

Working software over Comprehensive Documentation

Customer collaboration over Contract negotiation

Responding to change over Following a plan

Page 12: Distributed Agile

12

Summary of Agile Best Practices

• Best practices followed by highly effective development teams

• All activities are aligned to deliver business value

• Drive efficiency, productivity and quality

Page 13: Distributed Agile

Distributed Agile?

Sure, Agile is great but. . .

It is ad hoc and undisciplinedNo one writes any documentsIt only works for small teams

You have to be co-located

Key Principle:In a distributed scenario, the technical benefits of Agile development remain unaltered and the communication and team practices directly mitigate the primary risks of distributed development.

Page 14: Distributed Agile

Distributed Agile?

Sure, Agile is great but. . .

It is ad hoc and undisciplinedNo one writes any documentsIt only works for small teams

You have to be co-located

Key Principle:In a distributed scenario, the technical benefits of Agile development remain unaltered and the communication and team practices directly mitigate the primary risks of distributed development.

Key Principle:In a distributed scenario, the technical benefits of Agile development remain unaltered and the communication and team practices directly mitigate the primary risks of distributed development.

“ Agile isn’t just applicable in the distributed context – its ideal.”

Page 15: Distributed Agile

Key Risks with Distribution

© ThoughtWorks 2008

Page 16: Distributed Agile

Succeeding with distributed teams is harder

Page 17: Distributed Agile

What are the Risks of Distributed Software Development?

© ThoughtWorks 2008

Page 18: Distributed Agile

Four Risk Areas of Distributed Software Development

© ThoughtWorks 2008

• Communication Breakdown– Poor handoffs– Introduce down time / waste in process

• Team Issues– Lack of trust between teams– Low morale / high turnover on teams

• Lack of visibility– Unforeseen risks– Unknown progress, status, etc– Hard to make the right decisions in time

• Release Planning and Execution– Slipped delivery dates– Missed requirements / implemented incorrect functionality– Divergent estimates / incorrect release plan

Communication

Visibility

TrustRelease Plan & Execution

Page 19: Distributed Agile

Mitigating Distributed Risks Through Agile

© ThoughtWorks 2008

Page 20: Distributed Agile

Making Distributed Development Work

© ThoughtWorks 2008

People

PracticesTools

Communication

Visibility

TrustReleasePlanning

Page 21: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 22: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 23: Distributed Agile

Redundant Roles by location

© ThoughtWorks 2008

Project Manager

Iteration Manager

Developer Business Analyst Test Analyst

Project Manager

Business Analyst

Project Manager

Developer Test Analyst

Developer Business Analyst Test AnalystBusiness AnalystDeveloper Test Analyst

Page 24: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 25: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 26: Distributed Agile

26

Local Customer Proxy

Developer (Driver)

Developer (Co-Driver)

Business Analyst

Page 27: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 28: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 29: Distributed Agile

29

“Yesterday, I …”

“Problems …”

“Today, I ...”

Daily Stand-Ups and Handoffs

Page 30: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 31: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 32: Distributed Agile

Useful Tools for Distribution

© ThoughtWorks 2008

Interactive Whiteboards

Multi-View Webcams

CI and Build Pipeline

Comms Infrastructure

Wiki and Collaboration Tools

Messaging Tools

Page 33: Distributed Agile

Best Practices for Distributed AgileImproving Communication

People Process ToolsDining Room Tables Daily Stand up WikiCross Pollination Distributed Meeting 101 Star phonesRedundant Roles (UFOs) Retrospectives Video ConferenceKey Role: IM Showcases Smart BoardsKey Role: Tech Liaison Team core hours IM / SkypeKey Role: Domain Expert Agile Principles Virtual Card WallsKey Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool

Build Pipeline

Communication

Visibility

TrustRelease Planning & Execution

Page 34: Distributed Agile

Best Practices for Distributed AgileTeam, Morale, and Trust

People Process ToolsDining Room Tables Showcases Agile Tracking ToolsOverlap Time Co-located release plan Key metricsCross Pollination Retrospectives Collaboration toolsTeam outings Agile principles Communication toolsUnderstanding customs Daily Handoff Digital Camera / VideoPersonal relationships Culture of feedback

Communication

Visibility

TrustRelease Planning & Execution

Page 35: Distributed Agile

Best Practices for Distributed AgileTeam, Morale, and Trust

People Process ToolsDining Room Tables Showcases Agile Tracking ToolsOverlap Time Co-located release plan Key metricsCross Pollination Retrospectives Collaboration toolsTeam outings Agile principles Communication toolsUnderstanding customs Daily Handoff Digital Camera / VideoPersonal relationships Culture of feedback

Communication

Visibility

TrustRelease Planning & Execution

Page 36: Distributed Agile

12 Principles

© ThoughtWorks 2008

Our highest priority is to satisfy the customer through early and continuous delivery of

valuable software.

Welcome changing requirements, even late indevelopment. Agile processes harness change

for the customer's competitive advantage.

Deliver working software frequently, from acouple of weeks to a couple of months, with a

preference to the shorter timescale.

Business people and developers must worktogether daily throughout the project.

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 ofconveying 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.

Continuous attention to technical excellenceand good design enhances agility.

Simplicity--the art of maximizing the amountof work not done--is essential.

The best architectures, requirements, and designsemerge from self-organizing teams.

At regular intervals, the team reflects on howto become more effective, then tunes and adjusts

its behavior accordingly.

Page 37: Distributed Agile

Best Practices for Distributed AgileTeam, Morale, and Trust

People Process ToolsDining Room Tables Showcases Agile Tracking ToolsOverlap Time Co-located release plan Key metricsCross Pollination Retrospectives Collaboration toolsTeam outings Agile principles Communication toolsUnderstanding customs Daily Handoff Digital Camera / VideoPersonal relationships Culture of feedback

Communication

Visibility

TrustRelease Planning & Execution

Page 38: Distributed Agile

Best Practices for Distributed AgileTeam, Morale, and Trust

People Process ToolsDining Room Tables Showcases Agile Tracking ToolsOverlap Time Co-located release plan Key metricsCross Pollination Retrospectives Collaboration toolsTeam outings Agile principles Communication toolsUnderstanding customs Daily Handoff Digital Camera / VideoPersonal relationships Culture of feedback

Communication

Visibility

TrustRelease Planning & Execution

Page 39: Distributed Agile

Cross Pollination

© ThoughtWorks 2008

Page 40: Distributed Agile

Best Practices for Distributed AgileTeam, Morale, and Trust

People Process ToolsDining Room Tables Showcases Agile Tracking ToolsOverlap Time Co-located release plan Key metricsCross Pollination Retrospectives Collaboration toolsTeam outings Agile principles Communication toolsUnderstanding customs Daily Handoff Digital Camera / VideoPersonal relationships Culture of feedback

Communication

Visibility

TrustRelease Planning & Execution

Page 41: Distributed Agile

Best Practices for Distributed AgileEstimation and Release Planning

People Process ToolsCross Pollination Planning Meeting 101 Story / Bug Tracking toolHome and Away Co-located release planning Agile tracking / metrics

Product VisioningProject Inception

Communication

Visibility

TrustRelease Planning& Execution

Page 42: Distributed Agile

Best Practices for Distributed AgileEstimation and Release Planning

People Process ToolsCross Pollination Planning Meeting 101 Story / Bug Tracking toolHome and Away Co-located release planning Agile tracking / metrics

Product VisioningProject Inception

Communication

Visibility

TrustRelease Planning& Execution

Page 43: Distributed Agile

Co-located Release Planning

Page 44: Distributed Agile

Best Practices for Distributed AgileEstimation and Release Planning

People Process ToolsCross Pollination Planning Meeting 101 Story / Bug Tracking toolHome and Away Co-located release planning Agile tracking / metrics

Product VisioningProject Inception

Communication

Visibility

TrustRelease Planning& Execution

Page 45: Distributed Agile

Best Practices for Distributed AgileVisibility

People Process ToolsRedundant Roles (UFOs) Showcases Virtual card walls

Key Role: Customer Proxy Retrospectives Story tracking tool

Cross Pollination of team Iteration Planning Meetings Defect tracking tool

Incremental delivery Build pipeline

Prioritized business backlog Continuous IntegrationCode quality metrics

Test planning / tracking tools

Agile metrics and tracking

Communication

Visibility

TrustRelease Planning & Execution

Page 46: Distributed Agile

Best Practices for Distributed AgileVisibility

People Process ToolsRedundant Roles (UFOs) Showcases Virtual card walls

Key Role: Customer Proxy Retrospectives Story tracking tool

Cross Pollination of team Iteration Planning Meetings Defect tracking tool

Incremental delivery Build pipeline

Prioritized business backlog Continuous IntegrationCode quality metrics

Test planning / tracking tools

Agile metrics and tracking

Communication

Visibility

TrustRelease Planning & Execution

Page 47: Distributed Agile

Visibility: Appropriate Tools for Project Tracking

Page 48: Distributed Agile

Best Practices for Distributed AgileVisibility

People Process ToolsRedundant Roles (UFOs) Showcases Virtual card walls

Key Role: Customer Proxy Retrospectives Story tracking tool

Cross Pollination of team Iteration Planning Meetings Defect tracking tool

Incremental delivery Build pipeline

Prioritized business backlog Continuous IntegrationCode quality metrics

Test planning / tracking tools

Agile metrics and tracking

Communication

Visibility

TrustRelease Planning & Execution

Page 49: Distributed Agile

Best Practices for Distributed AgileVisibility

People Process ToolsRedundant Roles (UFOs) Showcases Virtual card walls

Key Role: Customer Proxy Retrospectives Story tracking tool

Cross Pollination of team Iteration Planning Meetings Defect tracking tool

Incremental delivery Build pipeline

Prioritized business backlog Continuous IntegrationCode quality metrics

Test planning / tracking tools

Agile metrics and tracking

Communication

Visibility

TrustRelease Planning & Execution

Page 50: Distributed Agile

Visibility: Real Time Useful Metrics

Page 51: Distributed Agile

Best practices reinforce each other to mitigate risks

© ThoughtWorks 2008

Page 52: Distributed Agile

Next Discussion

• Anti-Patterns / Bad Smells– Things to watch out for, when distributed agile goes wrong…

• Things you didn’t see coming & frequent “gotcha’s”– What critical mistakes we’ve made and won’t make again

• Is it worth it for my project?– Which projects are best suited for distribution? Which are not?– How can I estimate the true cost of distribution? Will it outweigh

the benefit?

© ThoughtWorks 2008

Page 53: Distributed Agile

© ThoughtWorks 2008

Distributed Agile

Questions?