Distributed Agile: An oxymoron? [email protected] [email protected] ©...

58
Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks .com [email protected] © ThoughtWorks 2008

Transcript of Distributed Agile: An oxymoron? [email protected] [email protected] ©...

Page 1: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Distributed Agile: An oxymoron?

[email protected]

[email protected]

© ThoughtWorks 2008

Page 2: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Agile = Co-located

© ThoughtWorks 2008

Page 3: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Agile Manifesto Principles

© ThoughtWorks 2008

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.

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? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Agile = Co-located

© ThoughtWorks 2008

Distributed = Different locations

Distributed Agile = An Oxymoron?

Page 5: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Enterprise Software

© ThoughtWorks 2008

Large

SometimesDistributed

ComplexHeavily dependent

Business critical

Page 6: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Our experience…

© ThoughtWorks 2008

Large

ComplexHeavily dependent

Business critical

SometimesDistributed

Page 7: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Distributed development looks easy

(a slightly fictional story)

Page 8: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Once upon a time…

© ThoughtWorks 2008

Page 9: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

there was a team…

© ThoughtWorks 2008

Page 10: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Page 11: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

working together on the same project…

© ThoughtWorks 2008

Page 12: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

… …

Same project at the same location

Page 13: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

everyone understood each other…

© ThoughtWorks 2008

Page 14: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Page 15: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

some people wanted the project distributed…

© ThoughtWorks 2008

Page 16: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

= ££££££

+

= ££ + $$$$

= ½ £££

Page 17: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

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

© ThoughtWorks 2008

Page 18: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

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

© ThoughtWorks 2008

Page 19: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

New

New New

New

Page 20: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

life was great!

© ThoughtWorks 2008

Page 21: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

they would talk over the phone...

© ThoughtWorks 2008

Page 22: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Page 23: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

and send email...

© ThoughtWorks 2008

Page 24: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

type type type…

Page 25: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

sometimes things would take some time...

© ThoughtWorks 2008

Page 26: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

I wonder what Jane meant by

that. I better send an email...

… what’s the gobbleflux about …

Page 27: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

That’s an easy one.

Here you go.

… Gobbleflux? Onthe left …

Page 28: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

On the left?

… on the left of what? …

Page 29: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

something that should have been ten minutes

© ThoughtWorks 2008

Page 30: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

stretches to several days...

© ThoughtWorks 2008

Page 31: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

!!!

… To the left ofthe widget …

Page 32: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

There’s a widget?

… What widget are you talking about? …

She’s not even trying...

Page 33: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Why doesn’t he understand?

… The breadcrumbswidget …

Page 34: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

things continue like that for three months...

© ThoughtWorks 2008

Page 35: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

until...

© ThoughtWorks 2008

Page 36: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

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

Page 37: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

A KEY LESSON

© ThoughtWorks 2008

every physical boundary increases noise

Page 38: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

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

Page 39: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Page 40: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

cost of distributed development

(is more than just people)

Page 41: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

A more realistic formula

© ThoughtWorks 2008

= ££££££+

= ££ + $$$$

½+ Cost of (timely response and shared understanding)

On-shore Distributed

Page 42: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Challenges of Distributed Development

Look familiar?

Shared understanding

Timely decisions

Trust and rapport

Visibility into progress

Working in the same way

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

Overcoming th

e

Page 43: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Division by role

Functional teams

Must haves for successful distributed development

© ThoughtWorks 2008

Analysts Developers Testers Infrastructure

Page 44: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Cross functional teams

Division by feature, not by role

Page 45: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Excellent relationship with the business

Page 46: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Speedy Escalation Paths

Page 47: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Shared Culture

Page 48: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Example: Sharing culture

Page 49: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Shared Environments

Page 50: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

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

Page 51: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Frequent software demos

Page 52: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Continuous Reflection and Improvement

Page 53: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Frequent visits

Page 54: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Must haves for successful distributed development

© ThoughtWorks 2008

Cross functional teams

Excellent relationship with the businessSpeedy Escalation Paths

Shared cultureShared environments Shared purpose, priority, plan

Frequent showcases Continue Reflection and improvement

Frequent visits

Page 55: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Good practices still hold

© ThoughtWorks 2008

Visibility and transparencyof informationFace to face time

Tools that support distributed teams

Agile development practices

Frequent rotationPrinciples ofgood teams

JIRA

Page 56: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

Conclusion

Distributed Agile: An oxymoron?

© ThoughtWorks 2008

Page 57: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

© ThoughtWorks 2008

Questions and [email protected]

[email protected]

Page 58: Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com © ThoughtWorks 2008.

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/

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

Photo Credits

© ThoughtWorks 2008