SlideShare a Scribd company logo
Distributed Agile
   Issues & Challenges
Patterns and Anti-Patterns
          Naresh Jain
       Twitter: @nashjain
   http://blogs.agilefaqs.com
   Licensed Under Creative Commons by Naresh Jain
                                                    1
Why Distributed
 Development?

 Licensed Under Creative Commons by Naresh Jain
                                                  2
“right” people are distributed




                                 3
Global Economy




                 4
Business are distributed




                           5
Power Centers




                6
7
Decrease in Communication Bandwidth




                                  8
Lack of visibility into project status




                                         9
Lack of visibility into project status




                                         9
Lack of “remote” Control




                           10
11
Cultural Differences




                       12
Configuration Management




                          13
Coordination is difficult




                           14
Coordination is difficult




                           14
Me


     15
16
Mumbai
         17
Tech Talks!




              18
FitNesse      ProTest



DBFit     FitDecorator     ProFIT



   La"u       Patang   QWick



                                    19
20
21
22
23
24
25
26
Root Cause
My Observations



Licensed Under Creative Commons by Naresh Jain
                                                 27
Lack of Trust




                28
Loss of Context (biz & tech)




                               29
Delayed Feedback (distance & time)




                                     30
Duplication of Effort




                        31
Change is Inevitable




                       32
What does this lead to?


     Licensed Under Creative Commons by Naresh Jain
                                                      33
Heavyweight Process




                      34
More and more Upfront




                        35
Strict Change Control




                        36
Over-reliance on documentation




                                 37
Inability to React




                     38
Communication Gaps




                     39
Frustration




              40
Erosion of Trust




                   41
Distributed Agile?



  Licensed Under Creative Commons by Naresh Jain
                                                   42
Agile Manifesto

 “We are uncovering better ways of developing software by doing it and helping
          others do it. Through this work we have come to value:

 Individuals and Interactions OVER Processes and Tools.
Working Software OVER Comprehensive Documentation.
 Customer Collaboration OVER Contract Negotiation.
      Responding to Change OVER following a Plan.
That is, while there is value in the items on the right, we value the items on the
                                     left more.”



                                                                                     43
Case Studies



Licensed Under Creative Commons by Naresh Jain
                                                 44
Offshore Agile Maintenance Project

 Background
  EAI project for back office data validation and billing system for a pay-per-
  view cable company in New York
  2 years later, lack of funds to maintain the app
  Decision to offshore the project
  Ended up with one year maintenance contract.




                                                                                 45
1 Account Manager
      1 PM
       1 BA
     2 Tester
     1DBA
                    1 Manager
                      1 BA
                      3 Dev
                    1Tester




                                46
We Faced Typical
Maintenance Project
    Challenges
   Licensed Under Creative Commons by Naresh Jain
                                                    47
Lack of Documentation




                        48
Lack of System Expert




                        49
Inexperienced Team Members




                             50
Lack of Test Safety Net




                          51
Legacy Code




              52
Fluctuating Workload




                       53
Lack of Trust




                54
Fear




       55
Uncertainty




              56
Frustration




              57
XP Practices we started of with

Planning game – 2 week iterations, story cards, Iteration
Planning Meetings
Small releases – 2 to 3 months
Collective code ownership
Continuous integration & Automated Release
Standup meetings
Coding standards



                                                            58
What we did not have/could not do?

 Onsite Client
 System Metaphor
 Simple Design
 Automated Testing
 User Stories (instead we had CR or Bugs)
 40 hour week / sustainable pace




                                            59
Evolved Agile Practices
Kanban - Priority Log
Micro releases – 2 to 3 days
Refactoring (completely changed the Architecture)
Pair Programming
Collective code ownership
Continuous integration & One click Release
Test Driven Development



                                                    60
Evolved Agile Practices...

Retrospectives
Daily client driven demo on Dev env
EOD Status mail
Cross functional Pairing
Demos and functional walk thru by Client
Automated Acceptance Test




                                           61
Results

Product performs 3 times faster than before
Huge increase in customer satisfaction
More interesting work with increase per hour rate
Great relationship and happy team
Great platform to experiment with new process ideas
Massive reduction in operating cost of the project




                                                      62
1 PM
1 Tester

             2 Dev
           1 Tester




                      63
Case Study 2



Licensed Under Creative Commons by Naresh Jain
                                                 64
Large Healthcare Enterprise System

 SAP like Healthcare suite for medium to large-scale hospitals
 and institutes
 Large Re-architecture effort (Across 3 different Product Lines)
  400+ team size across 3 different continents

 Multiple Organizations involved for Training and Coaching
 Teams




                                                                   65
Started Off with...


Pilot Project (1 Module of the entire application)
1 PM, 1 Scrum Master, 1 Architect/TL, 6 Dev, 1 BA and 1 Tester
100% Collocated Team
 Offshore members were onsite for 3 months (3 Sprints)




                                                                 66
Started off with Scrum/XP Practice
 2 Week Project Inception
 Prioritized Backlog with WAGs
 1 Month Sprints
 User Stories
 Stand-up Meetings
 Sprint Review and Retrospectives
 Automated Builds



                                     67
In the first 2 months
1 Month Sprint
User Stories
Automated Acceptance Tests
Test First Development
Collective Code Ownership
Continuous Integration
Sprint Review and Retrospectives



                                   68
End of 3 Months
2 Week Sprints
Distributed Teams
Evolutionary Design
TDD
Build Promotion and Single Click Release
Automated UI Tests
Brand Ambassadors/Cross Pollination



                                           69
Soon...Program Organization
                                   Program Management
                                          Scrum



           Scrum Master Scrum of Scrum                  Tech Lead Scrum of
                   of Scrums                             Scrum of Scrums


      App 1
                                               App 2                           Shared Services/
M1                   M2                                                        Arch/Infrastructure
      Scrum                         M1                          M2
      Master
     Scrum of                                  Scrum
     Scrums                                    Master
                                              Scrum of                         S1               S2
                     M4                       Scrums

M5                                 M6

     Tech Lead       M8                                                      Frameworks         S3
      Scrum of
      Scrums                                 Tech Lead
                                              Scrum of
                                              Scrums
                                                                 M4           S4           S5
M3                   M7            M3
      M6


                                                                                                     70
4 Module Teams
  Architecture Team
                        1 Config Mgmt Team
3 Enterprise Products
                            1 IQA Team
  18 Module Teams
      1 DB Team
    1 IQA Team                              4 Module Teams
                                              1 IQA Team



                                              4 Module Teams




                                                               71
Key Challenges We Faced


     Licensed Under Creative Commons by Naresh Jain
                                                      72
Tools got in the Way




                       73
Death by Cross-Team Integration




                                  74
End-to-End Delivery came to Grinding Halt




                                        75
Confusion & Rework




                     76
Frustration




              77
Summary
How Agile can help?

   Licensed Under Creative Commons by Naresh Jain
                                                    78
Empowered Small Teams


Its the people Duh!
Build teams around motivated and passionate individuals
Build a team environment where people are not afraid to try
new things and fail (fail fast)
Make work a fun place.




                                                              79
Small Frequent Releases


Increase visibility and enable early feedback.
A weekly software showcase gives more confidence than a
weekly status report.
Fail fast, recover quickly and at lower cost




                                                         80
Puts the customer in the driving seat


   Customer does Feature prioritization
   Customer uses early feedback to elaborate on and develop the
   requirements. Eliminates the need to articulate requirements in
   detailed documentation
   Customer makes business decision and development team makes
   technical decisions in collaboration with each other.



                    Customer == Product Owner

                                                                     81
Adaptive Planning



Inspect and Adapt
Help responding to change
Teams communicate often, share information frequently




                                                        82
Feedback Driven
Testing centric
 Test early, Test often and Test continuously

Continuous integration
 Integrate with every checkin and avoid Integration Nightmares

Automated Acceptance Tests
 Let acceptance criteria drive your development

Team tastes success every time an iteration successfully
passes customer’s test.



                                                                 83
Practices that make a
     Difference

    Licensed Under Creative Commons by Naresh Jain
                                                     84
Continuous Integration

Constant integration,
building & testing of system
with each change
Set up a build promotion
process and reduces on-site
deployment risk.
“The last person doesn’t go home
until the build is clean”




                                   85
Test Driven Development

Reduces ambiguity around requirements by having executable
specifications
 Acceptance Criteria per story
 Acceptance Tests are written before coding starts

Use Unit Tests to drive your design
Build a safety net to prevent regression bugs




                                                             86
Collective Ownership


Cross Functional Pairing and Pair Programming
Single shared code repository per project
Mutually agreed coding standards and guidelines (Automated
Check)
Code Walk-through




                                                             87
Other Practices


Stand Up Meetings/Daily Scrum
Dev Hurdles
Retrospectives
Planning Game




                                   88
Other Practices


Stand Up Meetings/Daily Scrum
Dev Hurdles
Retrospectives
Planning Game




                                   88
Distributed Agile
    Patterns

 Licensed Under Creative Commons by Naresh Jain
                                                  89
Shared Workload

Work split
 Divide work by functionality (stories), not by technical layers
 (horizontally). Otherwise, you create an interdependence that makes the
 dependent sub-team less productive

Collective Ownership
 Each team is capable of demonstrating end-to-end functionality

Capacity surpluses/shortages can be balanced through active
management of work load distribution



                                                                           90
Single Virtual Team
Everyone works on the same release/iteration cycle
drumbeats
Shared code base fosters collective ownership of the
source code
Shared build environments allow teams to collaborate
and integrate continuously
Developing in “End-to-end” functional slices rather
than layers allows teams to build upon each other’s work and
reduces dependencies between locations



                                                               91
Cross Pollination




                    92
Cross Pollination
Seeding Visits
 Start the project with a collocated team
 Knowledge Transfer – People as carriers of knowledge
 Build inter-personal relationships




                                                        92
Cross Pollination
Seeding Visits
 Start the project with a collocated team
 Knowledge Transfer – People as carriers of knowledge
 Build inter-personal relationships

“Maintenance” Visits
 Ongoing
 Bi-directional and multifunctional
 Cultural Ambassadors




                                                        92
Cross Pollination
Seeding Visits
 Start the project with a collocated team
 Knowledge Transfer – People as carriers of knowledge
 Build inter-personal relationships

“Maintenance” Visits
 Ongoing
 Bi-directional and multifunctional
 Cultural Ambassadors

Establish a Travel budget. Often it is a very small percentage of
total project cost.

                                                                    92
Cross Pollination - Offshore Model
                               Time




OnSite




Offshore

   - Offshore Team Member

   - Client-side Team Member          - Swap Members

                                                   93
Cross Pollination - Offshore Model
                               Time
             i 0 & i1



OnSite




Offshore

   - Offshore Team Member

   - Client-side Team Member          - Swap Members

                                                   93
Cross Pollination - Offshore Model
                                    Time
             i 0 & i1          i2



OnSite




Offshore

   - Offshore Team Member

   - Client-side Team Member               - Swap Members

                                                        93
Cross Pollination - Offshore Model
                                    Time
             i 0 & i1          i2          i3



OnSite




Offshore

   - Offshore Team Member

   - Client-side Team Member                    - Swap Members

                                                             93
Cross Pollination - Offshore Model
                                    Time
             i 0 & i1          i2          i3   i4



OnSite




Offshore

   - Offshore Team Member

   - Client-side Team Member                         - Swap Members

                                                                  93
Cross Pollination - Distributed Model
                               Time




OnSite




Offshore


   - Offshore Team Member

   - Client-side Team Member          - Swap Members

                                                   94
Cross Pollination - Distributed Model
                               Time
             i 0 & i1



OnSite




Offshore


   - Offshore Team Member

   - Client-side Team Member          - Swap Members

                                                   94
Cross Pollination - Distributed Model
                                    Time
             i 0 & i1          i2



OnSite




Offshore


   - Offshore Team Member

   - Client-side Team Member               - Swap Members

                                                        94
Cross Pollination - Distributed Model
                                    Time
             i 0 & i1          i2          i3



OnSite




Offshore


   - Offshore Team Member

   - Client-side Team Member                    - Swap Members

                                                             94
Cross Pollination - Distributed Model
                                    Time
             i 0 & i1          i2          i3   i4



OnSite




Offshore


   - Offshore Team Member

   - Client-side Team Member                         - Swap Members

                                                                  94
Simple Tools take you a long way

Physical Story walls with pictures on Wikis can be quite
powerful
Good version control system like SVN
Online collaboration tools like Google Docs, Card
Meeting, Forums, etc
5-10 min video recording using simple cameras




                                                           95
Source : ThoughtWorks

                        96
Massive over-communication
Infrastructure
 High availability, high speed networks
 High-quality speakerphones, webcams

Informative Workspaces and Information Radiators
Communications Plans
 Standing calls
 Overlapping hours

Instant Messaging,VoIP, NetMeeting, Webex etc.
Wikis
Team member photos on the wall

                                                   97
Local Standup meetings




     Source : ThoughtWorks
                             98
Anti-Patterns



Licensed Under Creative Commons by Naresh Jain
                                                 99
Communication Anti-Patterns

Single Point of Failure - Resist single person
communicating with the on-site team. Unless the team has
language barriers
Hide real issues - Embrace transparency, honesty and
openness
One liner emails - You need to set context in each mail.
Using Wikis to Dump information and not collaborate




                                                           100
Expectations Anti-Patterns

50% cost saving - Don’t sell Distributed Development
purely as a cost saving scheme
Unrealistic expectations about productivity - there
will be communication overhead, there will be rework and
there will be misunderstandings
Wrongly try to please the customer/onsite team - Learn to say
“No”




                                                                101
Focus related Anti-patterns


Tool Driven - Don’t be a tool slave. Choose the right tool
for the right job.
Process OVER People - Don’t focus too much on a
consistent, well-defined process across all locations. Instead let
people define what works for them in their location.




                                                                    102
Work Allocation Anti-Patterns


Slice work such that the two teams have to interact very little -
They will drift away.
Occasional involvement - You don’t swing a huge
requirement document and expect things to come back the
way you wanted them
Change Control Boards - Collaborate with the customer
to provide them competitive advantage



                                                                    103
Conclusion


Distributed Development is difficult in general!
                Agile can help.
Strong Development practices very important!



                                             104
References
Most of this is based on my 5 years of experience at
ThoughtWorks
Distributed Agile Development and the Death of Distance
 http://www.thoughtworks.com/press-releases/Distributed-Agile-Development-
 and-the-Death-of-Distance.html

Case Study: Distributed Agile Development
 http://www.pivolis.com/pdf/Distributed_Agile_V1.0.pdf

Distributed Agile
 http://www.agilealliance.com/articles/steindlchristophdistr/file

Using an Agile Software Process with Offshore Development
 http://www.martinfowler.com/articles/agileOffshore.html
                                                                        105
Questions?



Thank you
  Distributed Agile

     Naresh Jain
naresh@agilefaqs.com

                       106

More Related Content

What's hot

Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile Maintenance
Naresh Jain
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New Waterfall
Naresh Jain
 
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Directi Group
 
Continuous Deployment Demystified
Continuous Deployment DemystifiedContinuous Deployment Demystified
Continuous Deployment Demystified
Naresh Jain
 
Managing Iterations
Managing IterationsManaging Iterations
Managing Iterations
Naresh Jain
 
Essential Elements Of Distributed Agile
Essential Elements Of Distributed AgileEssential Elements Of Distributed Agile
Essential Elements Of Distributed Agile
Vernon Stinebaker
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
Wee Witthawaskul
 
Software testing agile_environment_wp
Software testing agile_environment_wpSoftware testing agile_environment_wp
Software testing agile_environment_wpCristiano Caetano
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
Wee Witthawaskul
 
How product designer work in agile scrum team
How product designer work in agile scrum teamHow product designer work in agile scrum team
How product designer work in agile scrum team
Mike Li
 
Amy.stapleton
Amy.stapletonAmy.stapleton
Amy.stapletonNASAPMC
 
D.mathieson agile software_development_using_scrum
D.mathieson agile software_development_using_scrumD.mathieson agile software_development_using_scrum
D.mathieson agile software_development_using_scrumRamkumar Sundarakalatharan
 
Agile tour 2011 ralph jocham - scrum primer
Agile tour 2011   ralph jocham - scrum primerAgile tour 2011   ralph jocham - scrum primer
Agile tour 2011 ralph jocham - scrum primerAgora Group
 
Introduction to the Agile Methods
Introduction to the Agile MethodsIntroduction to the Agile Methods
Introduction to the Agile Methods
softwareacademy
 
MVP Hacks
MVP HacksMVP Hacks
MVP Hacks
Naresh Jain
 
Ralph jocham agile portfolio based release trains
Ralph jocham agile portfolio based release trainsRalph jocham agile portfolio based release trains
Ralph jocham agile portfolio based release trainsAgora Group
 
OSSCube - Zend Webinar
OSSCube - Zend WebinarOSSCube - Zend Webinar
OSSCube - Zend Webinar
OSSCube
 
Redistributable introtoscrum
Redistributable introtoscrumRedistributable introtoscrum
Redistributable introtoscrumNguyen Quang
 

What's hot (20)

Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile Maintenance
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New Waterfall
 
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
 
Continuous Deployment Demystified
Continuous Deployment DemystifiedContinuous Deployment Demystified
Continuous Deployment Demystified
 
Managing Iterations
Managing IterationsManaging Iterations
Managing Iterations
 
Essential Elements Of Distributed Agile
Essential Elements Of Distributed AgileEssential Elements Of Distributed Agile
Essential Elements Of Distributed Agile
 
Iss 05
Iss 05Iss 05
Iss 05
 
Creating value using Agile Methods- Nanda Lankalapalli
Creating value using Agile Methods- Nanda LankalapalliCreating value using Agile Methods- Nanda Lankalapalli
Creating value using Agile Methods- Nanda Lankalapalli
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
 
Software testing agile_environment_wp
Software testing agile_environment_wpSoftware testing agile_environment_wp
Software testing agile_environment_wp
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
How product designer work in agile scrum team
How product designer work in agile scrum teamHow product designer work in agile scrum team
How product designer work in agile scrum team
 
Amy.stapleton
Amy.stapletonAmy.stapleton
Amy.stapleton
 
D.mathieson agile software_development_using_scrum
D.mathieson agile software_development_using_scrumD.mathieson agile software_development_using_scrum
D.mathieson agile software_development_using_scrum
 
Agile tour 2011 ralph jocham - scrum primer
Agile tour 2011   ralph jocham - scrum primerAgile tour 2011   ralph jocham - scrum primer
Agile tour 2011 ralph jocham - scrum primer
 
Introduction to the Agile Methods
Introduction to the Agile MethodsIntroduction to the Agile Methods
Introduction to the Agile Methods
 
MVP Hacks
MVP HacksMVP Hacks
MVP Hacks
 
Ralph jocham agile portfolio based release trains
Ralph jocham agile portfolio based release trainsRalph jocham agile portfolio based release trains
Ralph jocham agile portfolio based release trains
 
OSSCube - Zend Webinar
OSSCube - Zend WebinarOSSCube - Zend Webinar
OSSCube - Zend Webinar
 
Redistributable introtoscrum
Redistributable introtoscrumRedistributable introtoscrum
Redistributable introtoscrum
 

Similar to Distributed Agile

From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methods
Björn Jónsson
 
Craig Larman - Scaling Lean & Agile Development
Craig Larman - Scaling Lean & Agile Development Craig Larman - Scaling Lean & Agile Development
Craig Larman - Scaling Lean & Agile Development
Valtech
 
Redistributable introtoscrum
Redistributable introtoscrumRedistributable introtoscrum
Redistributable introtoscrum
Ciklum Ukraine
 
Scrum wall images by tobias mayer
Scrum wall images by tobias mayerScrum wall images by tobias mayer
Scrum wall images by tobias mayer
Conscires Agile Practices
 
Zen of Scrum
Zen of ScrumZen of Scrum
Zen of Scrum
Magnus Nord
 
Jax Sql Saturday Scrum presentation #130
Jax Sql Saturday Scrum presentation #130Jax Sql Saturday Scrum presentation #130
Jax Sql Saturday Scrum presentation #130Christopher Daily
 
Scrum managing through complexity
Scrum managing through complexityScrum managing through complexity
Scrum managing through complexity
Pierre E. NEIS
 
ITCamp 2012 - Dan Nicola - Scrum v2
ITCamp 2012 - Dan Nicola - Scrum v2ITCamp 2012 - Dan Nicola - Scrum v2
ITCamp 2012 - Dan Nicola - Scrum v2ITCamp
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMDebora Di Piano
 
My Journey So Far
My Journey So FarMy Journey So Far
My Journey So Far
skipangel
 
Information Development in an Agile Environment
Information Development in an Agile EnvironmentInformation Development in an Agile Environment
Information Development in an Agile Environment
Neeraj Bhatia
 
Introduction to scrum
Introduction to scrumIntroduction to scrum
Introduction to scrum
William Simms
 
Agile Requirements by Agile Analysts
Agile Requirements by Agile AnalystsAgile Requirements by Agile Analysts
Agile Requirements by Agile Analysts
Kurt Solarte
 
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With Scrum
Tommy Norman
 
Darwin Agile and The Dinosaurs
Darwin Agile and The DinosaursDarwin Agile and The Dinosaurs
Darwin Agile and The DinosaursEndava
 
Agile project management day 2
Agile project management day 2Agile project management day 2
Agile project management day 2Knowit_TM
 
Agile
AgileAgile
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
Devnology
 
Agile marries itil
Agile marries itilAgile marries itil
Agile marries itil
Mats Janemalm
 

Similar to Distributed Agile (20)

From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methods
 
Craig Larman - Scaling Lean & Agile Development
Craig Larman - Scaling Lean & Agile Development Craig Larman - Scaling Lean & Agile Development
Craig Larman - Scaling Lean & Agile Development
 
Redistributable introtoscrum
Redistributable introtoscrumRedistributable introtoscrum
Redistributable introtoscrum
 
Scrum wall images by tobias mayer
Scrum wall images by tobias mayerScrum wall images by tobias mayer
Scrum wall images by tobias mayer
 
Zen of Scrum
Zen of ScrumZen of Scrum
Zen of Scrum
 
Jax Sql Saturday Scrum presentation #130
Jax Sql Saturday Scrum presentation #130Jax Sql Saturday Scrum presentation #130
Jax Sql Saturday Scrum presentation #130
 
Scrum managing through complexity
Scrum managing through complexityScrum managing through complexity
Scrum managing through complexity
 
ITCamp 2012 - Dan Nicola - Scrum v2
ITCamp 2012 - Dan Nicola - Scrum v2ITCamp 2012 - Dan Nicola - Scrum v2
ITCamp 2012 - Dan Nicola - Scrum v2
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
My Journey So Far
My Journey So FarMy Journey So Far
My Journey So Far
 
Information Development in an Agile Environment
Information Development in an Agile EnvironmentInformation Development in an Agile Environment
Information Development in an Agile Environment
 
Introduction to scrum
Introduction to scrumIntroduction to scrum
Introduction to scrum
 
Agile Requirements by Agile Analysts
Agile Requirements by Agile AnalystsAgile Requirements by Agile Analysts
Agile Requirements by Agile Analysts
 
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With Scrum
 
Darwin Agile and The Dinosaurs
Darwin Agile and The DinosaursDarwin Agile and The Dinosaurs
Darwin Agile and The Dinosaurs
 
Agile project management day 2
Agile project management day 2Agile project management day 2
Agile project management day 2
 
Agile
AgileAgile
Agile
 
Transforming your sw development to agile
Transforming your sw development to agileTransforming your sw development to agile
Transforming your sw development to agile
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
 
Agile marries itil
Agile marries itilAgile marries itil
Agile marries itil
 

More from Naresh Jain

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
Naresh Jain
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
Naresh Jain
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
Naresh Jain
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
Naresh Jain
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
Naresh Jain
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
Naresh Jain
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
Naresh Jain
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
Naresh Jain
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Naresh Jain
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Naresh Jain
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
Naresh Jain
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
Naresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
Naresh Jain
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
Naresh Jain
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
Naresh Jain
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
Naresh Jain
 

More from Naresh Jain (20)

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
 

Recently uploaded

Webinar Exploring DORA for Fintechs - Simont Braun
Webinar Exploring DORA for Fintechs - Simont BraunWebinar Exploring DORA for Fintechs - Simont Braun
Webinar Exploring DORA for Fintechs - Simont Braun
FinTech Belgium
 
The WhatsPump Pseudonym Problem and the Hilarious Downfall of Artificial Enga...
The WhatsPump Pseudonym Problem and the Hilarious Downfall of Artificial Enga...The WhatsPump Pseudonym Problem and the Hilarious Downfall of Artificial Enga...
The WhatsPump Pseudonym Problem and the Hilarious Downfall of Artificial Enga...
muslimdavidovich670
 
what is the future of Pi Network currency.
what is the future of Pi Network currency.what is the future of Pi Network currency.
what is the future of Pi Network currency.
DOT TECH
 
The European Unemployment Puzzle: implications from population aging
The European Unemployment Puzzle: implications from population agingThe European Unemployment Puzzle: implications from population aging
The European Unemployment Puzzle: implications from population aging
GRAPE
 
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
obyzuk
 
where can I find a legit pi merchant online
where can I find a legit pi merchant onlinewhere can I find a legit pi merchant online
where can I find a legit pi merchant online
DOT TECH
 
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
Falcon Invoice Discounting
 
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
beulahfernandes8
 
Scope Of Macroeconomics introduction and basic theories
Scope Of Macroeconomics introduction and basic theoriesScope Of Macroeconomics introduction and basic theories
Scope Of Macroeconomics introduction and basic theories
nomankalyar153
 
Transkredit Finance Company Products Presentation (1).pptx
Transkredit Finance Company Products Presentation (1).pptxTranskredit Finance Company Products Presentation (1).pptx
Transkredit Finance Company Products Presentation (1).pptx
jenomjaneh
 
What website can I sell pi coins securely.
What website can I sell pi coins securely.What website can I sell pi coins securely.
What website can I sell pi coins securely.
DOT TECH
 
how can I sell/buy bulk pi coins securely
how can I sell/buy bulk pi coins securelyhow can I sell/buy bulk pi coins securely
how can I sell/buy bulk pi coins securely
DOT TECH
 
how can I sell pi coins after successfully completing KYC
how can I sell pi coins after successfully completing KYChow can I sell pi coins after successfully completing KYC
how can I sell pi coins after successfully completing KYC
DOT TECH
 
The Role of Non-Banking Financial Companies (NBFCs)
The Role of Non-Banking Financial Companies (NBFCs)The Role of Non-Banking Financial Companies (NBFCs)
The Role of Non-Banking Financial Companies (NBFCs)
nickysharmasucks
 
Instant Issue Debit Cards - School Designs
Instant Issue Debit Cards - School DesignsInstant Issue Debit Cards - School Designs
Instant Issue Debit Cards - School Designs
egoetzinger
 
Analyzing the instability of equilibrium in thr harrod domar model
Analyzing the instability of equilibrium in thr harrod domar modelAnalyzing the instability of equilibrium in thr harrod domar model
Analyzing the instability of equilibrium in thr harrod domar model
ManthanBhardwaj4
 
how to sell pi coins in all Africa Countries.
how to sell pi coins in all Africa Countries.how to sell pi coins in all Africa Countries.
how to sell pi coins in all Africa Countries.
DOT TECH
 
The secret way to sell pi coins effortlessly.
The secret way to sell pi coins effortlessly.The secret way to sell pi coins effortlessly.
The secret way to sell pi coins effortlessly.
DOT TECH
 
can I really make money with pi network.
can I really make money with pi network.can I really make money with pi network.
can I really make money with pi network.
DOT TECH
 
BYD SWOT Analysis and In-Depth Insights 2024.pptx
BYD SWOT Analysis and In-Depth Insights 2024.pptxBYD SWOT Analysis and In-Depth Insights 2024.pptx
BYD SWOT Analysis and In-Depth Insights 2024.pptx
mikemetalprod
 

Recently uploaded (20)

Webinar Exploring DORA for Fintechs - Simont Braun
Webinar Exploring DORA for Fintechs - Simont BraunWebinar Exploring DORA for Fintechs - Simont Braun
Webinar Exploring DORA for Fintechs - Simont Braun
 
The WhatsPump Pseudonym Problem and the Hilarious Downfall of Artificial Enga...
The WhatsPump Pseudonym Problem and the Hilarious Downfall of Artificial Enga...The WhatsPump Pseudonym Problem and the Hilarious Downfall of Artificial Enga...
The WhatsPump Pseudonym Problem and the Hilarious Downfall of Artificial Enga...
 
what is the future of Pi Network currency.
what is the future of Pi Network currency.what is the future of Pi Network currency.
what is the future of Pi Network currency.
 
The European Unemployment Puzzle: implications from population aging
The European Unemployment Puzzle: implications from population agingThe European Unemployment Puzzle: implications from population aging
The European Unemployment Puzzle: implications from population aging
 
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
 
where can I find a legit pi merchant online
where can I find a legit pi merchant onlinewhere can I find a legit pi merchant online
where can I find a legit pi merchant online
 
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
 
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
 
Scope Of Macroeconomics introduction and basic theories
Scope Of Macroeconomics introduction and basic theoriesScope Of Macroeconomics introduction and basic theories
Scope Of Macroeconomics introduction and basic theories
 
Transkredit Finance Company Products Presentation (1).pptx
Transkredit Finance Company Products Presentation (1).pptxTranskredit Finance Company Products Presentation (1).pptx
Transkredit Finance Company Products Presentation (1).pptx
 
What website can I sell pi coins securely.
What website can I sell pi coins securely.What website can I sell pi coins securely.
What website can I sell pi coins securely.
 
how can I sell/buy bulk pi coins securely
how can I sell/buy bulk pi coins securelyhow can I sell/buy bulk pi coins securely
how can I sell/buy bulk pi coins securely
 
how can I sell pi coins after successfully completing KYC
how can I sell pi coins after successfully completing KYChow can I sell pi coins after successfully completing KYC
how can I sell pi coins after successfully completing KYC
 
The Role of Non-Banking Financial Companies (NBFCs)
The Role of Non-Banking Financial Companies (NBFCs)The Role of Non-Banking Financial Companies (NBFCs)
The Role of Non-Banking Financial Companies (NBFCs)
 
Instant Issue Debit Cards - School Designs
Instant Issue Debit Cards - School DesignsInstant Issue Debit Cards - School Designs
Instant Issue Debit Cards - School Designs
 
Analyzing the instability of equilibrium in thr harrod domar model
Analyzing the instability of equilibrium in thr harrod domar modelAnalyzing the instability of equilibrium in thr harrod domar model
Analyzing the instability of equilibrium in thr harrod domar model
 
how to sell pi coins in all Africa Countries.
how to sell pi coins in all Africa Countries.how to sell pi coins in all Africa Countries.
how to sell pi coins in all Africa Countries.
 
The secret way to sell pi coins effortlessly.
The secret way to sell pi coins effortlessly.The secret way to sell pi coins effortlessly.
The secret way to sell pi coins effortlessly.
 
can I really make money with pi network.
can I really make money with pi network.can I really make money with pi network.
can I really make money with pi network.
 
BYD SWOT Analysis and In-Depth Insights 2024.pptx
BYD SWOT Analysis and In-Depth Insights 2024.pptxBYD SWOT Analysis and In-Depth Insights 2024.pptx
BYD SWOT Analysis and In-Depth Insights 2024.pptx
 

Distributed Agile

  • 1. Distributed Agile Issues & Challenges Patterns and Anti-Patterns Naresh Jain Twitter: @nashjain http://blogs.agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1
  • 2. Why Distributed Development? Licensed Under Creative Commons by Naresh Jain 2
  • 3. “right” people are distributed 3
  • 7. 7
  • 9. Lack of visibility into project status 9
  • 10. Lack of visibility into project status 9
  • 11. Lack of “remote” Control 10
  • 12. 11
  • 17. Me 15
  • 18. 16
  • 19. Mumbai 17
  • 21. FitNesse ProTest DBFit FitDecorator ProFIT La"u Patang QWick 19
  • 22. 20
  • 23. 21
  • 24. 22
  • 25. 23
  • 26. 24
  • 27. 25
  • 28. 26
  • 29. Root Cause My Observations Licensed Under Creative Commons by Naresh Jain 27
  • 31. Loss of Context (biz & tech) 29
  • 35. What does this lead to? Licensed Under Creative Commons by Naresh Jain 33
  • 37. More and more Upfront 35
  • 44. Distributed Agile? Licensed Under Creative Commons by Naresh Jain 42
  • 45. Agile Manifesto “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and Interactions OVER Processes and Tools. Working Software OVER Comprehensive Documentation. Customer Collaboration OVER Contract Negotiation. Responding to Change OVER following a Plan. That is, while there is value in the items on the right, we value the items on the left more.” 43
  • 46. Case Studies Licensed Under Creative Commons by Naresh Jain 44
  • 47. Offshore Agile Maintenance Project Background EAI project for back office data validation and billing system for a pay-per- view cable company in New York 2 years later, lack of funds to maintain the app Decision to offshore the project Ended up with one year maintenance contract. 45
  • 48. 1 Account Manager 1 PM 1 BA 2 Tester 1DBA 1 Manager 1 BA 3 Dev 1Tester 46
  • 49. We Faced Typical Maintenance Project Challenges Licensed Under Creative Commons by Naresh Jain 47
  • 51. Lack of System Expert 49
  • 53. Lack of Test Safety Net 51
  • 57. Fear 55
  • 60. XP Practices we started of with Planning game – 2 week iterations, story cards, Iteration Planning Meetings Small releases – 2 to 3 months Collective code ownership Continuous integration & Automated Release Standup meetings Coding standards 58
  • 61. What we did not have/could not do? Onsite Client System Metaphor Simple Design Automated Testing User Stories (instead we had CR or Bugs) 40 hour week / sustainable pace 59
  • 62. Evolved Agile Practices Kanban - Priority Log Micro releases – 2 to 3 days Refactoring (completely changed the Architecture) Pair Programming Collective code ownership Continuous integration & One click Release Test Driven Development 60
  • 63. Evolved Agile Practices... Retrospectives Daily client driven demo on Dev env EOD Status mail Cross functional Pairing Demos and functional walk thru by Client Automated Acceptance Test 61
  • 64. Results Product performs 3 times faster than before Huge increase in customer satisfaction More interesting work with increase per hour rate Great relationship and happy team Great platform to experiment with new process ideas Massive reduction in operating cost of the project 62
  • 65. 1 PM 1 Tester 2 Dev 1 Tester 63
  • 66. Case Study 2 Licensed Under Creative Commons by Naresh Jain 64
  • 67. Large Healthcare Enterprise System SAP like Healthcare suite for medium to large-scale hospitals and institutes Large Re-architecture effort (Across 3 different Product Lines) 400+ team size across 3 different continents Multiple Organizations involved for Training and Coaching Teams 65
  • 68. Started Off with... Pilot Project (1 Module of the entire application) 1 PM, 1 Scrum Master, 1 Architect/TL, 6 Dev, 1 BA and 1 Tester 100% Collocated Team Offshore members were onsite for 3 months (3 Sprints) 66
  • 69. Started off with Scrum/XP Practice 2 Week Project Inception Prioritized Backlog with WAGs 1 Month Sprints User Stories Stand-up Meetings Sprint Review and Retrospectives Automated Builds 67
  • 70. In the first 2 months 1 Month Sprint User Stories Automated Acceptance Tests Test First Development Collective Code Ownership Continuous Integration Sprint Review and Retrospectives 68
  • 71. End of 3 Months 2 Week Sprints Distributed Teams Evolutionary Design TDD Build Promotion and Single Click Release Automated UI Tests Brand Ambassadors/Cross Pollination 69
  • 72. Soon...Program Organization Program Management Scrum Scrum Master Scrum of Scrum Tech Lead Scrum of of Scrums Scrum of Scrums App 1 App 2 Shared Services/ M1 M2 Arch/Infrastructure Scrum M1 M2 Master Scrum of Scrum Scrums Master Scrum of S1 S2 M4 Scrums M5 M6 Tech Lead M8 Frameworks S3 Scrum of Scrums Tech Lead Scrum of Scrums M4 S4 S5 M3 M7 M3 M6 70
  • 73. 4 Module Teams Architecture Team 1 Config Mgmt Team 3 Enterprise Products 1 IQA Team 18 Module Teams 1 DB Team 1 IQA Team 4 Module Teams 1 IQA Team 4 Module Teams 71
  • 74. Key Challenges We Faced Licensed Under Creative Commons by Naresh Jain 72
  • 75. Tools got in the Way 73
  • 76. Death by Cross-Team Integration 74
  • 77. End-to-End Delivery came to Grinding Halt 75
  • 80. Summary How Agile can help? Licensed Under Creative Commons by Naresh Jain 78
  • 81. Empowered Small Teams Its the people Duh! Build teams around motivated and passionate individuals Build a team environment where people are not afraid to try new things and fail (fail fast) Make work a fun place. 79
  • 82. Small Frequent Releases Increase visibility and enable early feedback. A weekly software showcase gives more confidence than a weekly status report. Fail fast, recover quickly and at lower cost 80
  • 83. Puts the customer in the driving seat Customer does Feature prioritization Customer uses early feedback to elaborate on and develop the requirements. Eliminates the need to articulate requirements in detailed documentation Customer makes business decision and development team makes technical decisions in collaboration with each other. Customer == Product Owner 81
  • 84. Adaptive Planning Inspect and Adapt Help responding to change Teams communicate often, share information frequently 82
  • 85. Feedback Driven Testing centric Test early, Test often and Test continuously Continuous integration Integrate with every checkin and avoid Integration Nightmares Automated Acceptance Tests Let acceptance criteria drive your development Team tastes success every time an iteration successfully passes customer’s test. 83
  • 86. Practices that make a Difference Licensed Under Creative Commons by Naresh Jain 84
  • 87. Continuous Integration Constant integration, building & testing of system with each change Set up a build promotion process and reduces on-site deployment risk. “The last person doesn’t go home until the build is clean” 85
  • 88. Test Driven Development Reduces ambiguity around requirements by having executable specifications Acceptance Criteria per story Acceptance Tests are written before coding starts Use Unit Tests to drive your design Build a safety net to prevent regression bugs 86
  • 89. Collective Ownership Cross Functional Pairing and Pair Programming Single shared code repository per project Mutually agreed coding standards and guidelines (Automated Check) Code Walk-through 87
  • 90. Other Practices Stand Up Meetings/Daily Scrum Dev Hurdles Retrospectives Planning Game 88
  • 91. Other Practices Stand Up Meetings/Daily Scrum Dev Hurdles Retrospectives Planning Game 88
  • 92. Distributed Agile Patterns Licensed Under Creative Commons by Naresh Jain 89
  • 93. Shared Workload Work split Divide work by functionality (stories), not by technical layers (horizontally). Otherwise, you create an interdependence that makes the dependent sub-team less productive Collective Ownership Each team is capable of demonstrating end-to-end functionality Capacity surpluses/shortages can be balanced through active management of work load distribution 90
  • 94. Single Virtual Team Everyone works on the same release/iteration cycle drumbeats Shared code base fosters collective ownership of the source code Shared build environments allow teams to collaborate and integrate continuously Developing in “End-to-end” functional slices rather than layers allows teams to build upon each other’s work and reduces dependencies between locations 91
  • 96. Cross Pollination Seeding Visits Start the project with a collocated team Knowledge Transfer – People as carriers of knowledge Build inter-personal relationships 92
  • 97. Cross Pollination Seeding Visits Start the project with a collocated team Knowledge Transfer – People as carriers of knowledge Build inter-personal relationships “Maintenance” Visits Ongoing Bi-directional and multifunctional Cultural Ambassadors 92
  • 98. Cross Pollination Seeding Visits Start the project with a collocated team Knowledge Transfer – People as carriers of knowledge Build inter-personal relationships “Maintenance” Visits Ongoing Bi-directional and multifunctional Cultural Ambassadors Establish a Travel budget. Often it is a very small percentage of total project cost. 92
  • 99. Cross Pollination - Offshore Model Time OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 93
  • 100. Cross Pollination - Offshore Model Time i 0 & i1 OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 93
  • 101. Cross Pollination - Offshore Model Time i 0 & i1 i2 OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 93
  • 102. Cross Pollination - Offshore Model Time i 0 & i1 i2 i3 OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 93
  • 103. Cross Pollination - Offshore Model Time i 0 & i1 i2 i3 i4 OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 93
  • 104. Cross Pollination - Distributed Model Time OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 94
  • 105. Cross Pollination - Distributed Model Time i 0 & i1 OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 94
  • 106. Cross Pollination - Distributed Model Time i 0 & i1 i2 OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 94
  • 107. Cross Pollination - Distributed Model Time i 0 & i1 i2 i3 OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 94
  • 108. Cross Pollination - Distributed Model Time i 0 & i1 i2 i3 i4 OnSite Offshore - Offshore Team Member - Client-side Team Member - Swap Members 94
  • 109. Simple Tools take you a long way Physical Story walls with pictures on Wikis can be quite powerful Good version control system like SVN Online collaboration tools like Google Docs, Card Meeting, Forums, etc 5-10 min video recording using simple cameras 95
  • 111. Massive over-communication Infrastructure High availability, high speed networks High-quality speakerphones, webcams Informative Workspaces and Information Radiators Communications Plans Standing calls Overlapping hours Instant Messaging,VoIP, NetMeeting, Webex etc. Wikis Team member photos on the wall 97
  • 112. Local Standup meetings Source : ThoughtWorks 98
  • 113. Anti-Patterns Licensed Under Creative Commons by Naresh Jain 99
  • 114. Communication Anti-Patterns Single Point of Failure - Resist single person communicating with the on-site team. Unless the team has language barriers Hide real issues - Embrace transparency, honesty and openness One liner emails - You need to set context in each mail. Using Wikis to Dump information and not collaborate 100
  • 115. Expectations Anti-Patterns 50% cost saving - Don’t sell Distributed Development purely as a cost saving scheme Unrealistic expectations about productivity - there will be communication overhead, there will be rework and there will be misunderstandings Wrongly try to please the customer/onsite team - Learn to say “No” 101
  • 116. Focus related Anti-patterns Tool Driven - Don’t be a tool slave. Choose the right tool for the right job. Process OVER People - Don’t focus too much on a consistent, well-defined process across all locations. Instead let people define what works for them in their location. 102
  • 117. Work Allocation Anti-Patterns Slice work such that the two teams have to interact very little - They will drift away. Occasional involvement - You don’t swing a huge requirement document and expect things to come back the way you wanted them Change Control Boards - Collaborate with the customer to provide them competitive advantage 103
  • 118. Conclusion Distributed Development is difficult in general! Agile can help. Strong Development practices very important! 104
  • 119. References Most of this is based on my 5 years of experience at ThoughtWorks Distributed Agile Development and the Death of Distance http://www.thoughtworks.com/press-releases/Distributed-Agile-Development- and-the-Death-of-Distance.html Case Study: Distributed Agile Development http://www.pivolis.com/pdf/Distributed_Agile_V1.0.pdf Distributed Agile http://www.agilealliance.com/articles/steindlchristophdistr/file Using an Agile Software Process with Offshore Development http://www.martinfowler.com/articles/agileOffshore.html 105
  • 120. Questions? Thank you Distributed Agile Naresh Jain naresh@agilefaqs.com 106