Offshore Agile Maintenance

8,360 views

Published on

Agile 2006 Conference eXperience report by Naresh Jain on his experience maintaining a project from offshore using Agile values and principles.

Published in: Technology, Business
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,360
On SlideShare
0
From Embeds
0
Number of Embeds
3,082
Actions
Shares
0
Downloads
253
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Offshore Agile Maintenance

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

×