distributed agile

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

Upload: thoughtworks

Post on 15-Jul-2015

371 views

Category:

Technology


0 download

TRANSCRIPT

© ThoughtWorks 2008

Distributed AgileMark Rickmeier

[email protected]

Matt Simons [email protected]

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

Your software delivery effort

Distributed teams are today’s software supply chain

OffshoreVendor

Internal ISTeam

Domain Experts

ServicesVendor

PackageProvider

Distribution Models

© ThoughtWorks 2008

Dysfunctional

Testers

Analysts

Testers

Analysts

Developers

Developers

Developers

Developers

Location 1 Location 2Customers

Customers

Customers

Customers

Location 3

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

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

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

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

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.

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

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

Mitigating Distributed Risks Through Agile

© ThoughtWorks 2008

Making Distributed Development Work

© ThoughtWorks 2008

People

PracticesTools

Communication

Visibility

TrustReleasePlanning

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

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

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

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

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

26

Local Customer Proxy

Developer (Driver)

Developer (Co-Driver)

Business Analyst

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

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

29

“Yesterday, I …”

“Problems …”

“Today, I ...”

Daily Stand-Ups and Handoffs

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

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

Useful Tools for Distribution

© ThoughtWorks 2008

Interactive Whiteboards

Multi-View Webcams

CI and Build Pipeline

Comms Infrastructure

Wiki and Collaboration Tools

Messaging Tools

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

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

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

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.

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

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

Cross Pollination

© ThoughtWorks 2008

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

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

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

Co-located Release Planning

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

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

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

Visibility: Appropriate Tools for Project Tracking

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

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

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

© ThoughtWorks 2008

Distributed Agile

Questions?