Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and...

58
Distributed Agile: An oxymoron? [email protected] [email protected] © ThoughtWorks 2008

Transcript of Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and...

Page 1: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Distributed Agile: An oxymoron?

[email protected]@thoughtworks.com

© ThoughtWorks 2008

Page 2: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Agile = Co -locatedAgile = Co -located

© ThoughtWorks 2008

Page 3: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Agile Manifesto Principles

Business people and developers must worktogether daily throughout the project.

The most efficient and effective method ofconveying information to and within a development

team is face-to-face conversation.

© ThoughtWorks 2008

On-site customer

Collective CodeOwnership

XP Practices

Osmotic Communication

Easy access toexpert users

Crystal Clear(principles)

Active user involvement

DSDM (principles)

Unnecessary Movement

Lean Software Development

WaitingUnnecessary Transportation

Page 4: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Agile = Co-located

© ThoughtWorks 2008

Distributed = Different locations

Distributed Agile = An Oxymoron?

Page 5: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Enterprise Software

Large

SometimesDistributed

Business critical

Enterprise Software

© ThoughtWorks 2008

ComplexHeavily dependent

Page 6: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Our experience…

Large

Business critical

SometimesDistributed

Our experience…

© ThoughtWorks 2008

ComplexHeavily dependent

Page 7: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Distributed development looks easy

© ThoughtWorks 2008

Distributed development looks easy

(a slightly fictional story)

Page 8: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Once upon a time…Once upon a time…

© ThoughtWorks 2008

Page 9: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

there was a team…there was a team…

© ThoughtWorks 2008

Page 10: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

© ThoughtWorks 2008

Page 11: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

working together on the same project…working together on the same project…

© ThoughtWorks 2008

Page 12: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

……

……

Same project at the same location

© ThoughtWorks 2008

…… ……

……

Page 13: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

everyone understood each other…everyone understood each other…

© ThoughtWorks 2008

Page 14: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

© ThoughtWorks 2008

Page 15: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

some people wanted the project distributed…some people wanted the project distributed…

© ThoughtWorks 2008

Page 16: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

= ££££££

+= ££ + $$$$

© ThoughtWorks 2008

= ½ £££

Page 17: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

(of course, it might be more than just £££s)(of course, it might be more than just £££s)

© ThoughtWorks 2008

Page 18: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

they started work with new people in another place...

© ThoughtWorks 2008

Page 19: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

© ThoughtWorks 2008

New

NewNew

New

Page 20: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

life was great!life was great!

© ThoughtWorks 2008

Page 21: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

they would talk over the phone...they would talk over the phone...

© ThoughtWorks 2008

Page 22: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

……

…… ……

© ThoughtWorks 2008

……

Page 23: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

and send email...and send email...

© ThoughtWorks 2008

Page 24: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

© ThoughtWorks 2008

type type type…

Page 25: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

sometimes things would take some time...sometimes things would take some time...

© ThoughtWorks 2008

Page 26: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

I wonder what Jane meant by I wonder what Jane meant by

© ThoughtWorks 2008

Jane meant by that. I better send

an email...

Jane meant by that. I better send

an email...

… what’s the gobbleflux about …

Page 27: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

That’s an easy one.

Here you go.

That’s an easy one.

Here you go.

… Gobbleflux? Onthe left …

© ThoughtWorks 2008

the left …

Page 28: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

© ThoughtWorks 2008

On the left?

On the left?

… on the left of what? …

Page 29: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

something that should have been ten minutessomething that should have been ten minutes

© ThoughtWorks 2008

Page 30: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

stretches to several days...stretches to several days...

© ThoughtWorks 2008

Page 31: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

!!!!!!

… To the left ofthe widget …

© ThoughtWorks 2008

the widget …

Page 32: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

There’s a widget?

There’s a widget?

She’s not even

She’s not even

© ThoughtWorks 2008

widget?widget?

… What widget are you talking about? …

not even trying...not even trying...

Page 33: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Why doesn’t he understand?

Why doesn’t he understand?

… The breadcrumbswidget …

© ThoughtWorks 2008

widget …

Page 34: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

things continue like that for three months...things continue like that for three months...

© ThoughtWorks 2008

Page 35: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

until...until...

© ThoughtWorks 2008

Page 36: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

I can’t wait to see...I can’t wait to see...They’re going to be impressed by this...They’re going to be impressed by this...

© ThoughtWorks 2008

Page 37: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

A KEY LESSON

every physical boundary increases noise

© ThoughtWorks 2008

every physical boundary increases noise

Page 38: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

© ThoughtWorks 2008

http://www.agilemodeling.com/essays/communication.htm

Page 39: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

© ThoughtWorks 2008

Page 40: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

cost of distributed development

© ThoughtWorks 2008

cost of distributed development

(is more than just people)

Page 41: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

A more realistic formula

= ££££££+

= ££ + $$$$

½On-shore Distributed

© ThoughtWorks 2008

= ££££££ = ££ + $$$$+ Cost of (timely response and shared understanding)

Page 42: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Challenges of Distributed Development

Timely decisions

Trust and rapport

Visibility into progress

© ThoughtWorks 2008

Challenges of Distributed DevelopmentLook familiar?

Shared understandingWorking in the same way

It’s (almost) the same as co-located development... just much harder.

Page 43: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

Division by role

Functional teams

© ThoughtWorks 2008

Analysts Developers Testers Infrastructure

Page 44: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

© ThoughtWorks 2008

Cross functional teamsDivision by feature, not by role

Page 45: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

© ThoughtWorks 2008

Excellent relationship with the business

Page 46: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

© ThoughtWorks 2008

Speedy Escalation Paths

Page 47: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

Shared Culture

© ThoughtWorks 2008

Page 48: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Example: Sharing culture

© ThoughtWorks 2008

Page 49: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

© ThoughtWorks 2008

Shared Environments

Page 50: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

Shared sense of 3 P’s (Purpose, Priority, Plan)

© ThoughtWorks 2008

Page 51: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

© ThoughtWorks 2008

Frequent software demos

Page 52: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

Continuous Reflection and Improvement

© ThoughtWorks 2008

Page 53: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

© ThoughtWorks 2008

Frequent visits

Page 54: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Must haves for successful distributed development

Cross functional teams

Excellent relationship with the businessSpeedy Escalation Paths

Shared cultureShared environments Shared purpose, priority, plan

© ThoughtWorks 2008

Shared purpose, priority, plan

Frequent showcases Continue Reflection and improvement

Frequent visits

Page 55: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Good practices still hold

Tools that support distributed teams

Agile development practices

JIRA

Good practices still hold

© ThoughtWorks 2008

Visibility and transparencyof informationFace to face time

Frequent rotationPrinciples ofgood teams

Page 56: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Conclusion

Distributed Agile: An oxymoron?

© ThoughtWorks 2008

Page 57: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Questions and Comments?

© ThoughtWorks 2008

Questions and [email protected]

[email protected]

Page 58: Distributed Agile: An Oxymoron? - Pat Kua...Agile Manifesto Principles Business people and developers must work together daily throughout the project. The most efficient and effective

Flickr Creative Commons• Alarm: http://flickr.com/photos/chidorian/7666930/• Masonic handshake: http://flickr.com/photos/gaetanlee/159591865/• Plane: http://flickr.com/photos/volodimer/400350015/• East meets west: http://flickr.com/photos/evanosherow/2280507811/

Photo Credits

Free wallpaper• Matrix wallpaper: http://www.wallpaperbase.com/wallpapers/movie/matrix/matrix_5.jpg

© ThoughtWorks 2008