Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com ©...

Post on 31-Mar-2015

219 views 0 download

Tags:

Transcript of Distributed Agile: An oxymoron? elizabeth.keogh@thoughtworks.com patrick.kua@thoughtworks.com ©...

Distributed Agile: An oxymoron?

elizabeth.keogh@thoughtworks.com

patrick.kua@thoughtworks.com

© ThoughtWorks 2008

Agile = Co-located

© 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

Agile = Co-located

© ThoughtWorks 2008

Distributed = Different locations

Distributed Agile = An Oxymoron?

Enterprise Software

© ThoughtWorks 2008

Large

SometimesDistributed

ComplexHeavily dependent

Business critical

Our experience…

© ThoughtWorks 2008

Large

ComplexHeavily dependent

Business critical

SometimesDistributed

© ThoughtWorks 2008

Distributed development looks easy

(a slightly fictional story)

Once upon a time…

© ThoughtWorks 2008

there was a team…

© ThoughtWorks 2008

© ThoughtWorks 2008

working together on the same project…

© ThoughtWorks 2008

© ThoughtWorks 2008

… …

Same project at the same location

everyone understood each other…

© ThoughtWorks 2008

© ThoughtWorks 2008

some people wanted the project distributed…

© ThoughtWorks 2008

© ThoughtWorks 2008

= ££££££

+

= ££ + $$$$

= ½ £££

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

© ThoughtWorks 2008

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

© ThoughtWorks 2008

© ThoughtWorks 2008

New

New New

New

life was great!

© ThoughtWorks 2008

they would talk over the phone...

© ThoughtWorks 2008

© ThoughtWorks 2008

and send email...

© ThoughtWorks 2008

© ThoughtWorks 2008

type type type…

sometimes things would take some time...

© ThoughtWorks 2008

© ThoughtWorks 2008

I wonder what Jane meant by

that. I better send an email...

… what’s the gobbleflux about …

© ThoughtWorks 2008

That’s an easy one.

Here you go.

… Gobbleflux? Onthe left …

© ThoughtWorks 2008

On the left?

… on the left of what? …

something that should have been ten minutes

© ThoughtWorks 2008

stretches to several days...

© ThoughtWorks 2008

© ThoughtWorks 2008

!!!

… To the left ofthe widget …

© ThoughtWorks 2008

There’s a widget?

… What widget are you talking about? …

She’s not even trying...

© ThoughtWorks 2008

Why doesn’t he understand?

… The breadcrumbswidget …

things continue like that for three months...

© ThoughtWorks 2008

until...

© ThoughtWorks 2008

© ThoughtWorks 2008

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

A KEY LESSON

© ThoughtWorks 2008

every physical boundary increases noise

© ThoughtWorks 2008

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

© ThoughtWorks 2008

© ThoughtWorks 2008

cost of distributed development

(is more than just people)

A more realistic formula

© ThoughtWorks 2008

= ££££££+

= ££ + $$$$

½+ Cost of (timely response and shared understanding)

On-shore Distributed

© 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

Division by role

Functional teams

Must haves for successful distributed development

© ThoughtWorks 2008

Analysts Developers Testers Infrastructure

Must haves for successful distributed development

© ThoughtWorks 2008

Cross functional teams

Division by feature, not by role

Must haves for successful distributed development

© ThoughtWorks 2008

Excellent relationship with the business

Must haves for successful distributed development

© ThoughtWorks 2008

Speedy Escalation Paths

Must haves for successful distributed development

© ThoughtWorks 2008

Shared Culture

© ThoughtWorks 2008

Example: Sharing culture

Must haves for successful distributed development

© ThoughtWorks 2008

Shared Environments

Must haves for successful distributed development

© ThoughtWorks 2008

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

Must haves for successful distributed development

© ThoughtWorks 2008

Frequent software demos

Must haves for successful distributed development

© ThoughtWorks 2008

Continuous Reflection and Improvement

Must haves for successful distributed development

© ThoughtWorks 2008

Frequent visits

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

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

Conclusion

Distributed Agile: An oxymoron?

© ThoughtWorks 2008

© ThoughtWorks 2008

Questions and Comments?elizabeth.keogh@thoughtworks.com

patrick.kua@thoughtworks.com

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