• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Distributed Agile
 

Distributed Agile

on

  • 302 views

 

Statistics

Views

Total Views
302
Views on SlideShare
302
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Distributed Agile Distributed Agile Presentation Transcript

    • 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 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?
    • Distributed teams are today’s software supply chain Services Vendor Package Provider Your software delivery effort Domain Experts Offshore Vendor Internal IS Team
    • Distribution Models Dysfunctional Developers Developers Testers Developers Developers Analysts Location 1 Testers Customers Customers Analysts Location 2 © ThoughtWorks 2008 Customers Customers Location 3
    • 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
    • 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
    • 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 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
    • 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
    • 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.
    • 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.
    • 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 / 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
    • Mitigating Distributed Risks Through Agile © ThoughtWorks 2008
    • Making Distributed Development Work People Communication Release Planning Trust Visibility Tools Practices © ThoughtWorks 2008
    • 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
    • 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
    • Redundant Roles by location Developer Business Analyst Test Analyst Project Manager Project Manager IterationManager Developer Business Analyst © ThoughtWorks 2008 Test Analyst
    • 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
    • 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
    • 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 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
    • 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
    • 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 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
    • 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
    • Useful Tools for Distribution Comms Infrastructure Multi-View Webcams CI and Build Pipeline Messaging Tools Wiki and Collaboration Tools Interactive Whiteboards © ThoughtWorks 2008
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Cross Pollination © ThoughtWorks 2008
    • 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
    • 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
    • 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
    • Co-located Release Planning
    • 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
    • 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
    • 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
    • Visibility: Appropriate Tools for Project Tracking
    • 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
    • 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
    • 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 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
    • Distributed Agile Questions? © ThoughtWorks 2008