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