© ThoughtWorks 2008
Distributed Agile
Mark Rickmeier
MRickmeier@ThoughtWorks.com
Matt Simons
Mtsimons@ThoughtWorks.com
The challenge
Introductions
Distributed
Practices
Questions
Why Distributed?
Why Agile?
Agenda
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 exce...
Your software delivery effort
Distributed teams are today’s software supply chain
Offshore
Vendor
Internal IS
Team
Domain
...
Distribution Models
© ThoughtWorks 2008
Dysfunctional
Testers
Analysts
Testers
Analysts
Developers
Developers
Developers
D...
Distribution Models
© ThoughtWorks 2008
Dysfunctional
Testers
Analysts
Testers
Analysts
Developers
Developers
Developers
D...
Distribution Models
© ThoughtWorks 2008
Dysfunctional
Testers
Analysts
Testers
Analysts
Developers
Developers
Developers
D...
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 unc...
12
Summary of Agile Best Practices
• Best practices
followed by highly
effective
development teams
• All activities are
al...
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
© ThoughtWorks 2008
• Communication Breakdown
– Poor handoffs
– Introd...
Mitigating Distributed Risks Through Agile
© ThoughtWorks 2008
Making Distributed Development Work
© ThoughtWorks 2008
People
PracticesTools
Communication
Visibility
Trust
Release
Plann...
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
Redundant Roles by location
© ThoughtWorks 2008
Project Manager
Iteration Manager
Developer Business Analyst Test Analyst
...
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
26
Local Customer Proxy
Developer
(Driver)
Developer
(Co-Driver)
Business
Analyst
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
29
“Yesterday, I …”
“Problems …”
“Today, I ...”
Daily Stand-Ups and
Handoffs
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
Useful Tools for Distribution
© ThoughtWorks 2008
Interactive Whiteboards
Multi-View
Webcams
CI and Build Pipeline
Comms
I...
Best Practices for Distributed Agile
Improving Communication
People Process Tools
Dining Room Tables Daily Stand up Wiki
C...
Best Practices for Distributed Agile
Team, Morale, and Trust
People Process Tools
Dining Room Tables Showcases Agile Track...
Best Practices for Distributed Agile
Team, Morale, and Trust
People Process Tools
Dining Room Tables Showcases Agile Track...
12 Principles
© ThoughtWorks 2008
Our highest priority is to satisfy the customer
through early and continuous delivery of...
Best Practices for Distributed Agile
Team, Morale, and Trust
People Process Tools
Dining Room Tables Showcases Agile Track...
Best Practices for Distributed Agile
Team, Morale, and Trust
People Process Tools
Dining Room Tables Showcases Agile Track...
Cross Pollination
© ThoughtWorks 2008
Best Practices for Distributed Agile
Team, Morale, and Trust
People Process Tools
Dining Room Tables Showcases Agile Track...
Best Practices for Distributed Agile
Estimation and Release Planning
People Process Tools
Cross Pollination Planning Meeti...
Best Practices for Distributed Agile
Estimation and Release Planning
People Process Tools
Cross Pollination Planning Meeti...
Co-located Release Planning
Best Practices for Distributed Agile
Estimation and Release Planning
People Process Tools
Cross Pollination Planning Meeti...
Best Practices for Distributed Agile
Visibility
People Process Tools
Redundant Roles (UFOs) Showcases Virtual card walls
K...
Best Practices for Distributed Agile
Visibility
People Process Tools
Redundant Roles (UFOs) Showcases Virtual card walls
K...
Visibility: Appropriate Tools for Project Tracking
Best Practices for Distributed Agile
Visibility
People Process Tools
Redundant Roles (UFOs) Showcases Virtual card walls
K...
Best Practices for Distributed Agile
Visibility
People Process Tools
Redundant Roles (UFOs) Showcases Virtual card walls
K...
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 di...
© ThoughtWorks 2008
Distributed Agile
Questions?
Upcoming SlideShare
Loading in...5
×

Distributed Agile

306

Published on

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

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

  • Be the first to like this

No Downloads
Views
Total Views
306
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Distributed Agile

  1. 1. © ThoughtWorks 2008 Distributed Agile Mark Rickmeier MRickmeier@ThoughtWorks.com Matt Simons Mtsimons@ThoughtWorks.com
  2. 2. The challenge Introductions Distributed Practices Questions Why Distributed? Why Agile? Agenda
  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. Your software delivery effort Distributed teams are today’s software supply chain Offshore Vendor Internal IS Team Domain Experts Services Vendor Package Provider
  7. 7. Distribution Models © ThoughtWorks 2008 Dysfunctional Testers Analysts Testers Analysts Developers Developers Developers Developers Location 1 Location 2 Customers Customers Customers Customers Location 3
  8. 8. Distribution Models © ThoughtWorks 2008 Dysfunctional Testers Analysts Testers Analysts Developers Developers Developers Developers Location 1 Location 2 Customers Customers Customers Customers Location 3 Developers Testers Customers Analysts Functioning Developers Testers Customers Analysts
  9. 9. Distribution Models © ThoughtWorks 2008 Dysfunctional Testers Analysts Testers Analysts Developers Developers Developers Developers Location 1 Location 2 Customers Customers Customers Customers Location 3 Developers Testers Customers Analysts Functioning Developers Testers Customers Analysts Developers Customers Testers Analysts Developers Customers Testers Analysts Most Effective
  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. 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
  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 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.”
  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 © 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 Trust Release Plan & Execution
  19. 19. Mitigating Distributed Risks Through Agile © ThoughtWorks 2008
  20. 20. Making Distributed Development Work © ThoughtWorks 2008 People PracticesTools Communication Visibility Trust Release Planning
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  23. 23. 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
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  26. 26. 26 Local Customer Proxy Developer (Driver) Developer (Co-Driver) Business Analyst
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  29. 29. 29 “Yesterday, I …” “Problems …” “Today, I ...” Daily Stand-Ups and Handoffs
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  32. 32. Useful Tools for Distribution © ThoughtWorks 2008 Interactive Whiteboards Multi-View Webcams CI and Build Pipeline Comms Infrastructure Wiki and Collaboration Tools Messaging Tools
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  36. 36. 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 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. Business people and developers must work together 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 of conveying 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 excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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 Visibility Trust Release Planning & Execution
  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. © ThoughtWorks 2008 Distributed Agile Questions?
  1. A particular slide catching your eye?

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

×