Distributed Agile
Mark Rickmeier
MRickmeier@ThoughtWorks.com
Matt Simons
Mtsimons@ThoughtWorks.com

© ThoughtWorks 2008
Why Distributed?
Why Agile?

Introductions

Agenda

The challenge

Questions
Distributed
Practices
Introductions

•
•
•
•
•

Name
Role
Agile experience
Distributed experience
Why you came today…
Market Trends Toward Distributed Development

© ThoughtWorks 2008
Distributed teams have become business as usual

• Mergers and acquisitions
• Shortage of local
expertise
• Centers of exc...
Distributed teams are today’s software supply chain

Services
Vendor

Package
Provider

Your software delivery effort

Dom...
Distribution Models

Dysfunctional

Developers Developers

Testers

Developers Developers

Analysts

Location 1

Testers
C...
Distribution Models

Developers

Testers

Functioning

Customers

Analysts

Customers

Analysts

Dysfunctional
Developers
...
Distribution Models

Developers

Testers

Most Effective

Developers

Testers

Functioning

Customers
Developers

Analysts...
Market Trends toward Agile

© ThoughtWorks 2008
Agile Manifesto - 2001
•

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

•

“We are ...
Summary of Agile Best Practices
•

•

All activities are
aligned to deliver
business value

•

12

Best practices
followed...
Distributed Agile?

Sure, Agile is great but. . .
It is ad hoc and undisciplined
No one writes any documents
It only works...
Distributed Agile?

Sure, Agile is great but. . .
It is ad hoc and undisciplined
No one writes any documents
It only works...
Key Risks with Distribution

© ThoughtWorks 2008
Succeeding with distributed teams is harder
What are the Risks of Distributed Software Development?

© ThoughtWorks 2008
Four Risk Areas of Distributed Software Development
•

Communication Breakdown
– Poor handoffs
– Introduce down time / was...
Mitigating Distributed Risks Through Agile

© ThoughtWorks 2008
Making Distributed Development Work

People
Communication
Release
Planning

Trust
Visibility

Tools

Practices

© ThoughtW...
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Redundant Roles by location
Developer

Business Analyst

Test Analyst

Project Manager

Project Manager
IterationManager

...
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Local Customer Proxy

Developer
(Co-Driver)

Developer
(Driver)

Business
Analyst

26
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Daily Stand-Ups and
Handoffs
“Yesterday, I …”
“Problems …”
“Today, I ...”
29
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Useful Tools for Distribution

Comms
Infrastructure

Multi-View
Webcams

CI and Build Pipeline
Messaging Tools

Wiki and C...
Best Practices for Distributed Agile
Improving Communication
People

Process

Tools

Dining Room Tables

Daily Stand up

W...
Best Practices for Distributed Agile
Team, Morale, and Trust
People

Process

Tools

Dining Room Tables

Showcases

Agile ...
Best Practices for Distributed Agile
Team, Morale, and Trust
People

Process

Tools

Dining Room Tables

Showcases

Agile ...
Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software.

Working softw...
Best Practices for Distributed Agile
Team, Morale, and Trust
People

Process

Tools

Dining Room Tables

Showcases

Agile ...
Best Practices for Distributed Agile
Team, Morale, and Trust
People

Process

Tools

Dining Room Tables

Showcases

Agile ...
Cross Pollination

© ThoughtWorks 2008
Best Practices for Distributed Agile
Team, Morale, and Trust
People

Process

Tools

Dining Room Tables

Showcases

Agile ...
Best Practices for Distributed Agile
Estimation and Release Planning
People

Process

Tools

Cross Pollination

Planning M...
Best Practices for Distributed Agile
Estimation and Release Planning
People

Process

Tools

Cross Pollination

Planning M...
Co-located Release Planning
Best Practices for Distributed Agile
Estimation and Release Planning
People

Process

Tools

Cross Pollination

Planning M...
Best Practices for Distributed Agile
Visibility
People

Process

Tools

Redundant Roles (UFOs)

Showcases

Virtual card wa...
Best Practices for Distributed Agile
Visibility
People

Process

Tools

Redundant Roles (UFOs)

Showcases

Virtual card wa...
Visibility: Appropriate Tools for Project Tracking
Best Practices for Distributed Agile
Visibility
People

Process

Tools

Redundant Roles (UFOs)

Showcases

Virtual card wa...
Best Practices for Distributed Agile
Visibility
People

Process

Tools

Redundant Roles (UFOs)

Showcases

Virtual card wa...
Visibility: Real Time Useful Metrics
Best practices reinforce each other to mitigate risks

© ThoughtWorks 2008
Next Discussion

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

• Things you ...
Distributed Agile

Questions?

© ThoughtWorks 2008
Upcoming SlideShare
Loading in...5
×

Distributed Agile

384

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
384
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Distributed Agile

  1. 1. Distributed Agile Mark Rickmeier MRickmeier@ThoughtWorks.com Matt Simons Mtsimons@ThoughtWorks.com © ThoughtWorks 2008
  2. 2. Why Distributed? Why Agile? Introductions Agenda The challenge Questions Distributed Practices
  3. 3. Introductions • • • • • Name Role Agile experience Distributed experience Why you came today…
  4. 4. Market Trends Toward Distributed Development © ThoughtWorks 2008
  5. 5. 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?
  6. 6. Distributed teams are today’s software supply chain Services Vendor Package Provider Your software delivery effort Domain Experts Offshore Vendor Internal IS Team
  7. 7. Distribution Models Dysfunctional Developers Developers Testers Developers Developers Analysts Location 1 Testers Customers Customers Analysts Location 2 © ThoughtWorks 2008 Customers Customers Location 3
  8. 8. Distribution Models Developers Testers Functioning Customers Analysts Customers Analysts Dysfunctional Developers Testers Developers Developers Testers Developers Developers Analysts Location 1 Testers Customers Customers Analysts Location 2 © ThoughtWorks 2008 Customers Customers Location 3
  9. 9. Distribution Models Developers Testers Most Effective Developers Testers Functioning Customers Developers Analysts Testers Developers Developers Testers Developers Developers Analysts Customers Analysts Customers Analysts Customers Dysfunctional Testers Location 1 Developers Analysts Testers Customers Customers Analysts Location 2 © ThoughtWorks 2008 Customers Customers Location 3
  10. 10. Market Trends toward Agile © ThoughtWorks 2008
  11. 11. 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
  12. 12. Summary of Agile Best Practices • • All activities are aligned to deliver business value • 12 Best practices followed by highly effective development teams Drive efficiency, productivity and quality
  13. 13. Distributed Agile? Sure, Agile is great but. . . It is ad hoc and undisciplined No one writes any documents It 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.
  14. 14. Distributed Agile? Sure, Agile is great but. . . It is ad hoc and undisciplined No one writes any documents It only works for small teams You have to be co-located Key Principle: In a distributed scenario, the technical benefits of Agile development “ Agile isn’t just applicable in the distributed context – its ideal.” remain unaltered and the communication and team practices directly mitigate the primary risks of distributed development.
  15. 15. Key Risks with Distribution © ThoughtWorks 2008
  16. 16. Succeeding with distributed teams is harder
  17. 17. What are the Risks of Distributed Software Development? © ThoughtWorks 2008
  18. 18. Four Risk Areas of Distributed Software Development • Communication Breakdown – Poor handoffs – Introduce down time / waste in process • Team Issues – Lack of trust between teams – Low morale / high turnover on teams • Communication Release Plan & Execution 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 © ThoughtWorks 2008 Visibility Trust
  19. 19. Mitigating Distributed Risks Through Agile © ThoughtWorks 2008
  20. 20. Making Distributed Development Work People Communication Release Planning Trust Visibility Tools Practices © ThoughtWorks 2008
  21. 21. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  22. 22. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  23. 23. Redundant Roles by location Developer Business Analyst Test Analyst Project Manager Project Manager IterationManager Developer Business Analyst © ThoughtWorks 2008 Test Analyst
  24. 24. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  25. 25. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  26. 26. Local Customer Proxy Developer (Co-Driver) Developer (Driver) Business Analyst 26
  27. 27. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  28. 28. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  29. 29. Daily Stand-Ups and Handoffs “Yesterday, I …” “Problems …” “Today, I ...” 29
  30. 30. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  31. 31. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  32. 32. Useful Tools for Distribution Comms Infrastructure Multi-View Webcams CI and Build Pipeline Messaging Tools Wiki and Collaboration Tools Interactive Whiteboards © ThoughtWorks 2008
  33. 33. Best Practices for Distributed Agile Improving Communication People Process Tools Dining Room Tables Daily Stand up Wiki Cross Pollination Distributed Meeting 101 Star phones Redundant Roles (UFOs) Retrospectives Video Conference Key Role: IM Showcases Smart Boards Key Role: Tech Liaison Team core hours IM / Skype Key Role: Domain Expert Agile Principles Virtual Card Walls Key Role: Customer Proxy Agile Tracking / Metrics Story / Bug Tracking tool Build Pipeline Communication Release Planning & Execution Visibility Trust
  34. 34. Best Practices for Distributed Agile Team, Morale, and Trust People Process Tools Dining Room Tables Showcases Agile Tracking Tools Overlap Time Co-located release plan Key metrics Cross Pollination Retrospectives Collaboration tools Team outings Agile principles Communication tools Understanding customs Daily Handoff Digital Camera / Video Personal relationships Culture of feedback Communication Release Planning & Execution Visibility Trust
  35. 35. Best Practices for Distributed Agile Team, Morale, and Trust People Process Tools Dining Room Tables Showcases Agile Tracking Tools Overlap Time Co-located release plan Key metrics Cross Pollination Retrospectives Collaboration tools Team outings Agile principles Communication tools Understanding customs Daily Handoff Digital Camera / Video Personal relationships Culture of feedback Communication Release Planning & Execution Visibility Trust
  36. 36. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Working software is the primary measure of progress. 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. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. 12 Principles Business people and developers must work together daily throughout the project. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. 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. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. © ThoughtWorks 2008
  37. 37. Best Practices for Distributed Agile Team, Morale, and Trust People Process Tools Dining Room Tables Showcases Agile Tracking Tools Overlap Time Co-located release plan Key metrics Cross Pollination Retrospectives Collaboration tools Team outings Agile principles Communication tools Understanding customs Daily Handoff Digital Camera / Video Personal relationships Culture of feedback Communication Release Planning & Execution Visibility Trust
  38. 38. Best Practices for Distributed Agile Team, Morale, and Trust People Process Tools Dining Room Tables Showcases Agile Tracking Tools Overlap Time Co-located release plan Key metrics Cross Pollination Retrospectives Collaboration tools Team outings Agile principles Communication tools Understanding customs Daily Handoff Digital Camera / Video Personal relationships Culture of feedback Communication Release Planning & Execution Visibility Trust
  39. 39. Cross Pollination © ThoughtWorks 2008
  40. 40. Best Practices for Distributed Agile Team, Morale, and Trust People Process Tools Dining Room Tables Showcases Agile Tracking Tools Overlap Time Co-located release plan Key metrics Cross Pollination Retrospectives Collaboration tools Team outings Agile principles Communication tools Understanding customs Daily Handoff Digital Camera / Video Personal relationships Culture of feedback Communication Release Planning & Execution Visibility Trust
  41. 41. Best Practices for Distributed Agile Estimation and Release Planning People Process Tools Cross Pollination Planning Meeting 101 Story / Bug Tracking tool Home and Away Co-located release planning Agile tracking / metrics Product Visioning Project Inception Communication Release Planning & Execution Visibility Trust
  42. 42. Best Practices for Distributed Agile Estimation and Release Planning People Process Tools Cross Pollination Planning Meeting 101 Story / Bug Tracking tool Home and Away Co-located release planning Agile tracking / metrics Product Visioning Project Inception Communication Release Planning & Execution Visibility Trust
  43. 43. Co-located Release Planning
  44. 44. Best Practices for Distributed Agile Estimation and Release Planning People Process Tools Cross Pollination Planning Meeting 101 Story / Bug Tracking tool Home and Away Co-located release planning Agile tracking / metrics Product Visioning Project Inception Communication Release Planning & Execution Visibility Trust
  45. 45. Best Practices for Distributed Agile Visibility People Process Tools Redundant 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 Integration Code quality metrics Test planning / tracking tools Agile metrics and tracking Communication Release Planning & Execution Visibility Trust
  46. 46. Best Practices for Distributed Agile Visibility People Process Tools Redundant 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 Integration Code quality metrics Test planning / tracking tools Agile metrics and tracking Communication Release Planning & Execution Visibility Trust
  47. 47. Visibility: Appropriate Tools for Project Tracking
  48. 48. Best Practices for Distributed Agile Visibility People Process Tools Redundant 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 Integration Code quality metrics Test planning / tracking tools Agile metrics and tracking Communication Release Planning & Execution Visibility Trust
  49. 49. Best Practices for Distributed Agile Visibility People Process Tools Redundant 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 Integration Code quality metrics Test planning / tracking tools Agile metrics and tracking Communication Release Planning & Execution Visibility Trust
  50. 50. Visibility: Real Time Useful Metrics
  51. 51. Best practices reinforce each other to mitigate risks © ThoughtWorks 2008
  52. 52. 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
  53. 53. Distributed Agile Questions? © ThoughtWorks 2008
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×