SlideShare una empresa de Scribd logo
1 de 120
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile MaintenanceNaresh Jain
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New WaterfallNaresh 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 DemystifiedNaresh Jain
 
Managing Iterations
Managing IterationsManaging Iterations
Managing IterationsNaresh Jain
 
Essential Elements Of Distributed Agile
Essential Elements Of Distributed AgileEssential Elements Of Distributed Agile
Essential Elements Of Distributed AgileVernon 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 CultureWee 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 PerspectiveWee 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 teamMike 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 Methodssoftwareacademy
 
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 WebinarOSSCube
 
Redistributable introtoscrum
Redistributable introtoscrumRedistributable introtoscrum
Redistributable introtoscrumNguyen Quang
 

La actualidad más candente (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 a 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 methodsBjö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 introtoscrumCiklum Ukraine
 
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 complexityPierre 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 Farskipangel
 
Information Development in an Agile Environment
Information Development in an Agile EnvironmentInformation Development in an Agile Environment
Information Development in an Agile EnvironmentNeeraj Bhatia
 
Introduction to scrum
Introduction to scrumIntroduction to scrum
Introduction to scrumWilliam Simms
 
Agile Requirements by Agile Analysts
Agile Requirements by Agile AnalystsAgile Requirements by Agile Analysts
Agile Requirements by Agile AnalystsKurt Solarte
 
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With ScrumTommy 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
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology
 

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

Más de Naresh Jain

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignNaresh Jain
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteNaresh Jain
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational ResilienceNaresh Jain
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming CodeNaresh Jain
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference SummaryNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh 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 VirdingNaresh 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 CesariniNaresh 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 CesariniNaresh 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 DatarNaresh 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 AppNaresh 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 ProdNaresh 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 McKennaNaresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016Naresh Jain
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 ConferenceNaresh 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 JDTNaresh Jain
 

Más de 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
 

Último

00_Main ppt_MeetupDORA&CyberSecurity.pptx
00_Main ppt_MeetupDORA&CyberSecurity.pptx00_Main ppt_MeetupDORA&CyberSecurity.pptx
00_Main ppt_MeetupDORA&CyberSecurity.pptxFinTech Belgium
 
Top Rated Pune Call Girls Viman Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Sex...
Top Rated  Pune Call Girls Viman Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Sex...Top Rated  Pune Call Girls Viman Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Sex...
Top Rated Pune Call Girls Viman Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Sex...Call Girls in Nagpur High Profile
 
The Economic History of the U.S. Lecture 30.pdf
The Economic History of the U.S. Lecture 30.pdfThe Economic History of the U.S. Lecture 30.pdf
The Economic History of the U.S. Lecture 30.pdfGale Pooley
 
VIP Call Girls Service Dilsukhnagar Hyderabad Call +91-8250192130
VIP Call Girls Service Dilsukhnagar Hyderabad Call +91-8250192130VIP Call Girls Service Dilsukhnagar Hyderabad Call +91-8250192130
VIP Call Girls Service Dilsukhnagar Hyderabad Call +91-8250192130Suhani Kapoor
 
02_Fabio Colombo_Accenture_MeetupDora&Cybersecurity.pptx
02_Fabio Colombo_Accenture_MeetupDora&Cybersecurity.pptx02_Fabio Colombo_Accenture_MeetupDora&Cybersecurity.pptx
02_Fabio Colombo_Accenture_MeetupDora&Cybersecurity.pptxFinTech Belgium
 
VVIP Pune Call Girls Katraj (7001035870) Pune Escorts Nearby with Complete Sa...
VVIP Pune Call Girls Katraj (7001035870) Pune Escorts Nearby with Complete Sa...VVIP Pune Call Girls Katraj (7001035870) Pune Escorts Nearby with Complete Sa...
VVIP Pune Call Girls Katraj (7001035870) Pune Escorts Nearby with Complete Sa...Call Girls in Nagpur High Profile
 
(DIYA) Bhumkar Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(DIYA) Bhumkar Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(DIYA) Bhumkar Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(DIYA) Bhumkar Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
WhatsApp 📞 Call : 9892124323 ✅Call Girls In Chembur ( Mumbai ) secure service
WhatsApp 📞 Call : 9892124323  ✅Call Girls In Chembur ( Mumbai ) secure serviceWhatsApp 📞 Call : 9892124323  ✅Call Girls In Chembur ( Mumbai ) secure service
WhatsApp 📞 Call : 9892124323 ✅Call Girls In Chembur ( Mumbai ) secure servicePooja Nehwal
 
Log your LOA pain with Pension Lab's brilliant campaign
Log your LOA pain with Pension Lab's brilliant campaignLog your LOA pain with Pension Lab's brilliant campaign
Log your LOA pain with Pension Lab's brilliant campaignHenry Tapper
 
Instant Issue Debit Cards - High School Spirit
Instant Issue Debit Cards - High School SpiritInstant Issue Debit Cards - High School Spirit
Instant Issue Debit Cards - High School Spiritegoetzinger
 
Solution Manual for Financial Accounting, 11th Edition by Robert Libby, Patri...
Solution Manual for Financial Accounting, 11th Edition by Robert Libby, Patri...Solution Manual for Financial Accounting, 11th Edition by Robert Libby, Patri...
Solution Manual for Financial Accounting, 11th Edition by Robert Libby, Patri...ssifa0344
 
03_Emmanuel Ndiaye_Degroof Petercam.pptx
03_Emmanuel Ndiaye_Degroof Petercam.pptx03_Emmanuel Ndiaye_Degroof Petercam.pptx
03_Emmanuel Ndiaye_Degroof Petercam.pptxFinTech Belgium
 
Call US 📞 9892124323 ✅ Kurla Call Girls In Kurla ( Mumbai ) secure service
Call US 📞 9892124323 ✅ Kurla Call Girls In Kurla ( Mumbai ) secure serviceCall US 📞 9892124323 ✅ Kurla Call Girls In Kurla ( Mumbai ) secure service
Call US 📞 9892124323 ✅ Kurla Call Girls In Kurla ( Mumbai ) secure servicePooja Nehwal
 
The Economic History of the U.S. Lecture 22.pdf
The Economic History of the U.S. Lecture 22.pdfThe Economic History of the U.S. Lecture 22.pdf
The Economic History of the U.S. Lecture 22.pdfGale Pooley
 
The Economic History of the U.S. Lecture 25.pdf
The Economic History of the U.S. Lecture 25.pdfThe Economic History of the U.S. Lecture 25.pdf
The Economic History of the U.S. Lecture 25.pdfGale Pooley
 
Best VIP Call Girls Noida Sector 18 Call Me: 8448380779
Best VIP Call Girls Noida Sector 18 Call Me: 8448380779Best VIP Call Girls Noida Sector 18 Call Me: 8448380779
Best VIP Call Girls Noida Sector 18 Call Me: 8448380779Delhi Call girls
 
The Economic History of the U.S. Lecture 23.pdf
The Economic History of the U.S. Lecture 23.pdfThe Economic History of the U.S. Lecture 23.pdf
The Economic History of the U.S. Lecture 23.pdfGale Pooley
 
Booking open Available Pune Call Girls Wadgaon Sheri 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Wadgaon Sheri  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Wadgaon Sheri  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Wadgaon Sheri 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 

Último (20)

00_Main ppt_MeetupDORA&CyberSecurity.pptx
00_Main ppt_MeetupDORA&CyberSecurity.pptx00_Main ppt_MeetupDORA&CyberSecurity.pptx
00_Main ppt_MeetupDORA&CyberSecurity.pptx
 
Top Rated Pune Call Girls Viman Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Sex...
Top Rated  Pune Call Girls Viman Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Sex...Top Rated  Pune Call Girls Viman Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Sex...
Top Rated Pune Call Girls Viman Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Sex...
 
The Economic History of the U.S. Lecture 30.pdf
The Economic History of the U.S. Lecture 30.pdfThe Economic History of the U.S. Lecture 30.pdf
The Economic History of the U.S. Lecture 30.pdf
 
VIP Call Girls Service Dilsukhnagar Hyderabad Call +91-8250192130
VIP Call Girls Service Dilsukhnagar Hyderabad Call +91-8250192130VIP Call Girls Service Dilsukhnagar Hyderabad Call +91-8250192130
VIP Call Girls Service Dilsukhnagar Hyderabad Call +91-8250192130
 
(INDIRA) Call Girl Mumbai Call Now 8250077686 Mumbai Escorts 24x7
(INDIRA) Call Girl Mumbai Call Now 8250077686 Mumbai Escorts 24x7(INDIRA) Call Girl Mumbai Call Now 8250077686 Mumbai Escorts 24x7
(INDIRA) Call Girl Mumbai Call Now 8250077686 Mumbai Escorts 24x7
 
02_Fabio Colombo_Accenture_MeetupDora&Cybersecurity.pptx
02_Fabio Colombo_Accenture_MeetupDora&Cybersecurity.pptx02_Fabio Colombo_Accenture_MeetupDora&Cybersecurity.pptx
02_Fabio Colombo_Accenture_MeetupDora&Cybersecurity.pptx
 
VVIP Pune Call Girls Katraj (7001035870) Pune Escorts Nearby with Complete Sa...
VVIP Pune Call Girls Katraj (7001035870) Pune Escorts Nearby with Complete Sa...VVIP Pune Call Girls Katraj (7001035870) Pune Escorts Nearby with Complete Sa...
VVIP Pune Call Girls Katraj (7001035870) Pune Escorts Nearby with Complete Sa...
 
(DIYA) Bhumkar Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(DIYA) Bhumkar Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(DIYA) Bhumkar Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(DIYA) Bhumkar Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
WhatsApp 📞 Call : 9892124323 ✅Call Girls In Chembur ( Mumbai ) secure service
WhatsApp 📞 Call : 9892124323  ✅Call Girls In Chembur ( Mumbai ) secure serviceWhatsApp 📞 Call : 9892124323  ✅Call Girls In Chembur ( Mumbai ) secure service
WhatsApp 📞 Call : 9892124323 ✅Call Girls In Chembur ( Mumbai ) secure service
 
Log your LOA pain with Pension Lab's brilliant campaign
Log your LOA pain with Pension Lab's brilliant campaignLog your LOA pain with Pension Lab's brilliant campaign
Log your LOA pain with Pension Lab's brilliant campaign
 
Instant Issue Debit Cards - High School Spirit
Instant Issue Debit Cards - High School SpiritInstant Issue Debit Cards - High School Spirit
Instant Issue Debit Cards - High School Spirit
 
Solution Manual for Financial Accounting, 11th Edition by Robert Libby, Patri...
Solution Manual for Financial Accounting, 11th Edition by Robert Libby, Patri...Solution Manual for Financial Accounting, 11th Edition by Robert Libby, Patri...
Solution Manual for Financial Accounting, 11th Edition by Robert Libby, Patri...
 
03_Emmanuel Ndiaye_Degroof Petercam.pptx
03_Emmanuel Ndiaye_Degroof Petercam.pptx03_Emmanuel Ndiaye_Degroof Petercam.pptx
03_Emmanuel Ndiaye_Degroof Petercam.pptx
 
Call US 📞 9892124323 ✅ Kurla Call Girls In Kurla ( Mumbai ) secure service
Call US 📞 9892124323 ✅ Kurla Call Girls In Kurla ( Mumbai ) secure serviceCall US 📞 9892124323 ✅ Kurla Call Girls In Kurla ( Mumbai ) secure service
Call US 📞 9892124323 ✅ Kurla Call Girls In Kurla ( Mumbai ) secure service
 
The Economic History of the U.S. Lecture 22.pdf
The Economic History of the U.S. Lecture 22.pdfThe Economic History of the U.S. Lecture 22.pdf
The Economic History of the U.S. Lecture 22.pdf
 
The Economic History of the U.S. Lecture 25.pdf
The Economic History of the U.S. Lecture 25.pdfThe Economic History of the U.S. Lecture 25.pdf
The Economic History of the U.S. Lecture 25.pdf
 
Best VIP Call Girls Noida Sector 18 Call Me: 8448380779
Best VIP Call Girls Noida Sector 18 Call Me: 8448380779Best VIP Call Girls Noida Sector 18 Call Me: 8448380779
Best VIP Call Girls Noida Sector 18 Call Me: 8448380779
 
The Economic History of the U.S. Lecture 23.pdf
The Economic History of the U.S. Lecture 23.pdfThe Economic History of the U.S. Lecture 23.pdf
The Economic History of the U.S. Lecture 23.pdf
 
(Vedika) Low Rate Call Girls in Pune Call Now 8250077686 Pune Escorts 24x7
(Vedika) Low Rate Call Girls in Pune Call Now 8250077686 Pune Escorts 24x7(Vedika) Low Rate Call Girls in Pune Call Now 8250077686 Pune Escorts 24x7
(Vedika) Low Rate Call Girls in Pune Call Now 8250077686 Pune Escorts 24x7
 
Booking open Available Pune Call Girls Wadgaon Sheri 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Wadgaon Sheri  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Wadgaon Sheri  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Wadgaon Sheri 6297143586 Call Hot Ind...
 

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