Offshore Agile Maintenance

Naresh Jain
Naresh JainTech Startup Founder at ConfEngine
Offshore Agile Maintenance
             -
  Agile 2006 Conference
     eXperience report

                Naresh Jain
 naresh@agilefaqs.com           http://agilefaqs.com



     Licensed Under Creative Commons by Naresh Jain
                                                       1
Project background

Challenges with distributed/offshore team
My observations
The Holy Grail
Small things that made a big difference
Lessons for life
Improvements on my future projects

       Licensed Under Creative Commons by Naresh Jain
                                                        2
Where, why and how did it all start?

  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.




              Licensed Under Creative Commons by Naresh Jain
                                                                  3
Challenges: Distributed/offshore teams

   Decrease in communication bandwidth
   Lack of visibility into project status
   Configuration management
   Art of Command and Control structure
   Time difference
   Cultural difference




                  Licensed Under Creative Commons by Naresh Jain
                                                                   4
Painful Distributed Development:
           Root cause
 My observations
 Lack of trust
 Loss of context, both business and technical
 Delay in feedback cycle due to increase in distance and time difference
 Duplication of efforts
 Change is inevitable




                 Licensed Under Creative Commons by Naresh Jain
                                                                           5
XP Practices used on the project
Planning game – 2 week iterations, story cards, Iteration Planning
Meetings
Small releases – 2 to 3 months
Refactoring
Pair Programming
Collective code ownership
Continuous integration/Automated Release
Test Driven Development
Standup meetings
Coding standards
              Licensed Under Creative Commons by Naresh Jain
                                                                     6
What we did not have/could not do?

  Onsite Client
  Metaphor
  Simple Design
  100% Automated testing
  40 hour week / sustainable pace




                  Licensed Under Creative Commons by Naresh Jain
                                                                   7
Small things that made a big difference


 General practices:
   Empowered small teams
   Freedom to try new things
   Fun work place with lots of outings, parties, ice-creams, food, etc




                 Licensed Under Creative Commons by Naresh Jain
                                                                         8
Small things that made a big difference

 To address lack of trust:
    Results matter
    Life is more than just a pay cheque
    Building a personal rapport
    Brand ambassadors and cross pollination




                  Licensed Under Creative Commons by Naresh Jain
                                                                   9
Small things that made a big difference
 To address delayed feedback cycles:
   Retrospectives
   Involve the customer
     Daily client driven demo on Dev env
     EOD Status mail
   Seamless collaboration between Developers and QA
   100% Automation
   Refactoring fests
   Realistic measures of progress

                 Licensed Under Creative Commons by Naresh Jain
                                                                  10
Small things that made a big difference
 To address loss of context of business/technical problems and decisions:
   Involve the customer
     IM Chats
     Regular Conference call
     Demos and functional walk thru by Client
   Acceptance tests
   Brand ambassadors and cross pollination
   Pairing
   SCube sessions
                 Licensed Under Creative Commons by Naresh Jain
                                                                            11
The Holy Grail

Structure and execution of the project
Planning
During the iteration
End of iteration
Release process
Big win!




              Licensed Under Creative Commons by Naresh Jain
                                                               12
The Holy Grail…

How did we manage with lack of tests and documentation?
  Unit and functional tests
  QA Automation
  Red light goes on to say its time to begin
  Log files and other artifacts are your friends
  Positive feedback cycle: Refactoring




                Licensed Under Creative Commons by Naresh Jain
                                                                 13
The Holy Grail…

Automation is your friend till THE END
  Installation process
  Release process
  Configuration management
  Database change management
  Functional tests




                Licensed Under Creative Commons by Naresh Jain
                                                                 14
Improvements on my future projects


  Heavy focus on automated tests and refactoring.
  Exchange programs
  Good roll-off plans for the team members.
  Scratch your personal itch day.




                Licensed Under Creative Commons by Naresh Jain
                                                                 15
Conclusion
Decrease in communication bandwidth
 Communicate, communicate and over communicate
Lack of visibility into project status
 Correct and timely feedback
 Open and honest work culture
Configuration management
 It’s the tool, that differentiate Humans from the rest
Art of Command and Control structure
 Self organized team of motivated individuals
Cultural difference
 Is it a problem? Was fun! Creative Commons by Naresh Jain
               Licensed Under
                                                             16
References
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
C2 Wiki - http://c2.com/cgi/wiki
              Licensed Under Creative Commons by Naresh Jain
                                                                   17
1 of 17

Recommended

Distributed AgileDistributed Agile
Distributed AgileNaresh Jain
8.4K views120 slides
Refactoring FestRefactoring Fest
Refactoring FestNaresh Jain
14.6K views38 slides
Pair ProgrammingPair Programming
Pair ProgrammingNaresh Jain
12.5K views73 slides

More Related Content

What's hot(20)

Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New Waterfall
Naresh Jain68.1K views
XP And Scrum PracticesXP And Scrum Practices
XP And Scrum Practices
Naresh Jain9.2K views
Agile TestingAgile Testing
Agile Testing
Naresh Jain15.8K views
How does pair programming work?How does pair programming work?
How does pair programming work?
Ferdous Pathan4.8K views
MVP HacksMVP Hacks
MVP Hacks
Naresh Jain7.6K views
Software testing agile_environment_wpSoftware testing agile_environment_wp
Software testing agile_environment_wp
Cristiano Caetano432 views
Creating value using Agile Methods- Nanda LankalapalliCreating value using Agile Methods- Nanda Lankalapalli
Creating value using Agile Methods- Nanda Lankalapalli
India Scrum Enthusiasts Community469 views
OSSCube - Zend WebinarOSSCube - Zend Webinar
OSSCube - Zend Webinar
OSSCube1.9K views
Iss 05Iss 05
Iss 05
PMInstituteIndia788 views
Agile Software DesignAgile Software Design
Agile Software Design
eduardomg23408 views
What is this thing called Agile?What is this thing called Agile?
What is this thing called Agile?
John Goodpasture1K views
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
Ajay Danait4.6K views
11 best practices_for_peer_code_review11 best practices_for_peer_code_review
11 best practices_for_peer_code_review
SmartBear Software962 views
CTLR 2010 Issue 7 Waterfall ContractCTLR 2010 Issue 7 Waterfall Contract
CTLR 2010 Issue 7 Waterfall Contract
susanatkinson487 views

Viewers also liked(13)

Managing IterationsManaging Iterations
Managing Iterations
Naresh Jain5.8K views
Continuous Deployment DemystifiedContinuous Deployment Demystified
Continuous Deployment Demystified
Naresh Jain7.7K views
The Limited Red SocietyThe Limited Red Society
The Limited Red Society
Naresh Jain6.2K views
TDD OverviewTDD Overview
TDD Overview
Naresh Jain7.4K views
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
Naresh Jain25.5K views
Agile Testing In Offshore - Oslo MeetupAgile Testing In Offshore - Oslo Meetup
Agile Testing In Offshore - Oslo Meetup
Jan Petter Hagberg1.2K views
ScrumBan Evolution - What is you next step?ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?
Sebastian Radics2.2K views
Introduction to WaterfallIntroduction to Waterfall
Introduction to Waterfall
Karl Scotland4.5K views

Similar to Offshore Agile Maintenance(20)

Practices of an agile developerPractices of an agile developer
Practices of an agile developer
DUONG Trong Tan1.4K views
Agile Product ManagementAgile Product Management
Agile Product Management
SVPMA1.3K views
Poor Man's KanbanPoor Man's Kanban
Poor Man's Kanban
Chicago ALT.NET899 views
Agile Software Development - Making Programming Fun AgainAgile Software Development - Making Programming Fun Again
Agile Software Development - Making Programming Fun Again
Orange and Bronze Software Labs820 views
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti7.7K views
Agile Injection, VarbergAgile Injection, Varberg
Agile Injection, Varberg
Fredrik Wendt424 views
Agile sdlcAgile sdlc
Agile sdlc
Bhawani N Prasad4.7K views
AgileAgile
Agile
Jeff Bollinger768 views
U Xmagic Agile PresentationU Xmagic Agile Presentation
U Xmagic Agile Presentation
Our Community Exchange LLC1.1K views
Leading Agile Product DiscoveryLeading Agile Product Discovery
Leading Agile Product Discovery
Armond Mehrabian4.3K views
Presentation 20111102Presentation 20111102
Presentation 20111102
dgarlough768 views
Agile presentation adriana feb 2012Agile presentation adriana feb 2012
Agile presentation adriana feb 2012
Adriana Beal930 views

Recently uploaded(20)

ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web Developers
Maximiliano Firtman161 views
Green Leaf Consulting: Capabilities DeckGreen Leaf Consulting: Capabilities Deck
Green Leaf Consulting: Capabilities Deck
GreenLeafConsulting177 views
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum203 views
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya59 views
ThroughputThroughput
Throughput
Moisés Armani Ramírez31 views
Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic Meetup
Rick Ossendrijver24 views
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet49 views

Offshore Agile Maintenance

  • 1. Offshore Agile Maintenance - Agile 2006 Conference eXperience report Naresh Jain naresh@agilefaqs.com http://agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1
  • 2. Project background Challenges with distributed/offshore team My observations The Holy Grail Small things that made a big difference Lessons for life Improvements on my future projects Licensed Under Creative Commons by Naresh Jain 2
  • 3. Where, why and how did it all start? 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. Licensed Under Creative Commons by Naresh Jain 3
  • 4. Challenges: Distributed/offshore teams Decrease in communication bandwidth Lack of visibility into project status Configuration management Art of Command and Control structure Time difference Cultural difference Licensed Under Creative Commons by Naresh Jain 4
  • 5. Painful Distributed Development: Root cause My observations Lack of trust Loss of context, both business and technical Delay in feedback cycle due to increase in distance and time difference Duplication of efforts Change is inevitable Licensed Under Creative Commons by Naresh Jain 5
  • 6. XP Practices used on the project Planning game – 2 week iterations, story cards, Iteration Planning Meetings Small releases – 2 to 3 months Refactoring Pair Programming Collective code ownership Continuous integration/Automated Release Test Driven Development Standup meetings Coding standards Licensed Under Creative Commons by Naresh Jain 6
  • 7. What we did not have/could not do? Onsite Client Metaphor Simple Design 100% Automated testing 40 hour week / sustainable pace Licensed Under Creative Commons by Naresh Jain 7
  • 8. Small things that made a big difference General practices: Empowered small teams Freedom to try new things Fun work place with lots of outings, parties, ice-creams, food, etc Licensed Under Creative Commons by Naresh Jain 8
  • 9. Small things that made a big difference To address lack of trust: Results matter Life is more than just a pay cheque Building a personal rapport Brand ambassadors and cross pollination Licensed Under Creative Commons by Naresh Jain 9
  • 10. Small things that made a big difference To address delayed feedback cycles: Retrospectives Involve the customer Daily client driven demo on Dev env EOD Status mail Seamless collaboration between Developers and QA 100% Automation Refactoring fests Realistic measures of progress Licensed Under Creative Commons by Naresh Jain 10
  • 11. Small things that made a big difference To address loss of context of business/technical problems and decisions: Involve the customer IM Chats Regular Conference call Demos and functional walk thru by Client Acceptance tests Brand ambassadors and cross pollination Pairing SCube sessions Licensed Under Creative Commons by Naresh Jain 11
  • 12. The Holy Grail Structure and execution of the project Planning During the iteration End of iteration Release process Big win! Licensed Under Creative Commons by Naresh Jain 12
  • 13. The Holy Grail… How did we manage with lack of tests and documentation? Unit and functional tests QA Automation Red light goes on to say its time to begin Log files and other artifacts are your friends Positive feedback cycle: Refactoring Licensed Under Creative Commons by Naresh Jain 13
  • 14. The Holy Grail… Automation is your friend till THE END Installation process Release process Configuration management Database change management Functional tests Licensed Under Creative Commons by Naresh Jain 14
  • 15. Improvements on my future projects Heavy focus on automated tests and refactoring. Exchange programs Good roll-off plans for the team members. Scratch your personal itch day. Licensed Under Creative Commons by Naresh Jain 15
  • 16. Conclusion Decrease in communication bandwidth Communicate, communicate and over communicate Lack of visibility into project status Correct and timely feedback Open and honest work culture Configuration management It’s the tool, that differentiate Humans from the rest Art of Command and Control structure Self organized team of motivated individuals Cultural difference Is it a problem? Was fun! Creative Commons by Naresh Jain Licensed Under 16
  • 17. References 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 C2 Wiki - http://c2.com/cgi/wiki Licensed Under Creative Commons by Naresh Jain 17