Click here to load reader
Upload
naresh-jain
View
6.180
Download
0
Embed Size (px)
DESCRIPTION
Agile 2006 Conference eXperience report by Naresh Jain on his experience maintaining a project from offshore using Agile values and principles.
Citation preview
Licensed Under Creative Commons by Naresh Jain
Offshore Agile Maintenance-
Agile 2006 Conference eXperience report
Naresh [email protected] http://agilefaqs.com
1
Licensed Under Creative Commons by Naresh Jain
Challenges with distributed/offshore teamMy observationsThe Holy GrailSmall things that made a big differenceLessons for lifeImprovements on my future projects
Project background
2
Licensed Under Creative Commons by Naresh Jain
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.
Where, why and how did it all start?
3
Licensed Under Creative Commons by Naresh Jain
Decrease in communication bandwidth
Lack of visibility into project status
Configuration management
Art of Command and Control structure
Time difference
Cultural difference
Challenges: Distributed/offshore teams
4
Licensed Under Creative Commons by Naresh Jain
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
Painful Distributed Development: Root cause
5
Licensed Under Creative Commons by Naresh Jain
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
XP Practices used on the project
6
Licensed Under Creative Commons by Naresh Jain
Onsite Client
Metaphor
Simple Design
100% Automated testing
40 hour week / sustainable pace
What we did not have/could not do?
7
Licensed Under Creative Commons by Naresh Jain
General practices:
Empowered small teams
Freedom to try new things
Fun work place with lots of outings, parties, ice-creams, food, etc
Small things that made a big difference
8
Licensed Under Creative Commons by Naresh Jain
To address lack of trust:
Results matter
Life is more than just a pay cheque
Building a personal rapport
Brand ambassadors and cross pollination
Small things that made a big difference
9
Licensed Under Creative Commons by Naresh Jain
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
Small things that made a big difference
10
Licensed Under Creative Commons by Naresh Jain
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
Small things that made a big difference
11
Licensed Under Creative Commons by Naresh Jain
Structure and execution of the project
Planning
During the iteration
End of iteration
Release process
Big win!
The Holy Grail
12
Licensed Under Creative Commons by Naresh Jain
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
The Holy Grail…
13
Licensed Under Creative Commons by Naresh Jain
Automation is your friend till THE END
Installation process
Release process
Configuration management
Database change management
Functional tests
The Holy Grail…
14
Licensed Under Creative Commons by Naresh Jain
Heavy focus on automated tests and refactoring.
Exchange programs
Good roll-off plans for the team members.
Scratch your personal itch day.
Improvements on my future projects
15
Licensed Under Creative Commons by Naresh Jain
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!
Conclusion
16
Licensed Under Creative Commons by Naresh Jain
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
References
17