Agile = Co -locatedAgile = Co -located
© ThoughtWorks 2008
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
Agile = Co-located
© ThoughtWorks 2008
Distributed = Different locations
Distributed Agile = An Oxymoron?
Enterprise Software
Large
SometimesDistributed
Business critical
Enterprise Software
© ThoughtWorks 2008
ComplexHeavily dependent
Our experience…
Large
Business critical
SometimesDistributed
Our experience…
© ThoughtWorks 2008
ComplexHeavily dependent
Distributed development looks easy
© ThoughtWorks 2008
Distributed development looks easy
(a slightly fictional story)
Once upon a time…Once upon a time…
© ThoughtWorks 2008
there was a team…there was a team…
© ThoughtWorks 2008
© ThoughtWorks 2008
working together on the same project…working together on the same project…
© ThoughtWorks 2008
……
……
Same project at the same location
© ThoughtWorks 2008
…… ……
……
everyone understood each other…everyone understood each other…
© ThoughtWorks 2008
© ThoughtWorks 2008
some people wanted the project distributed…some people wanted the project distributed…
© ThoughtWorks 2008
= ££££££
+= ££ + $$$$
© ThoughtWorks 2008
= ½ £££
(of course, it might be more than just £££s)(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
NewNew
New
life was great!life was great!
© ThoughtWorks 2008
they would talk over the phone...they would talk over the phone...
© ThoughtWorks 2008
……
…… ……
© ThoughtWorks 2008
……
and send email...and send email...
© ThoughtWorks 2008
© ThoughtWorks 2008
type type type…
sometimes things would take some time...sometimes things would take some time...
© ThoughtWorks 2008
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 …
That’s an easy one.
Here you go.
That’s an easy one.
Here you go.
… Gobbleflux? Onthe left …
© ThoughtWorks 2008
the left …
© ThoughtWorks 2008
On the left?
On the left?
… on the left of what? …
something that should have been ten minutessomething that should have been ten minutes
© ThoughtWorks 2008
stretches to several days...stretches to several days...
© ThoughtWorks 2008
!!!!!!
… To the left ofthe widget …
© ThoughtWorks 2008
the widget …
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...
Why doesn’t he understand?
Why doesn’t he understand?
… The breadcrumbswidget …
© ThoughtWorks 2008
widget …
things continue like that for three months...things continue like that for three months...
© ThoughtWorks 2008
until...until...
© ThoughtWorks 2008
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
A KEY LESSON
every physical boundary increases noise
© ThoughtWorks 2008
every physical boundary increases noise
© ThoughtWorks 2008
http://www.agilemodeling.com/essays/communication.htm
© ThoughtWorks 2008
cost of distributed development
© ThoughtWorks 2008
cost of distributed development
(is more than just people)
A more realistic formula
= ££££££+
= ££ + $$$$
½On-shore Distributed
© ThoughtWorks 2008
= ££££££ = ££ + $$$$+ Cost of (timely response and shared understanding)
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.
Must haves for successful distributed development
Division by role
Functional teams
© ThoughtWorks 2008
Analysts Developers Testers Infrastructure
Must haves for successful distributed development
© ThoughtWorks 2008
Cross functional teamsDivision 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
Shared Culture
© ThoughtWorks 2008
Example: Sharing culture
© ThoughtWorks 2008
Must haves for successful distributed development
© ThoughtWorks 2008
Shared Environments
Must haves for successful distributed development
Shared sense of 3 P’s (Purpose, Priority, Plan)
© ThoughtWorks 2008
Must haves for successful distributed development
© ThoughtWorks 2008
Frequent software demos
Must haves for successful distributed development
Continuous Reflection and Improvement
© ThoughtWorks 2008
Must haves for successful distributed development
© ThoughtWorks 2008
Frequent visits
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
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
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/
Photo Credits
Free wallpaper• Matrix wallpaper: http://www.wallpaperbase.com/wallpapers/movie/matrix/matrix_5.jpg
© ThoughtWorks 2008