17

Click here to load reader

Offshore Agile Maintenance

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

Page 1: Offshore Agile Maintenance

Licensed Under Creative Commons by Naresh Jain

Offshore Agile Maintenance-

Agile 2006 Conference eXperience report

Naresh [email protected] http://agilefaqs.com

1

Page 2: Offshore Agile Maintenance

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

Page 3: Offshore Agile Maintenance

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

Page 4: Offshore Agile Maintenance

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

Page 5: Offshore Agile Maintenance

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

Page 6: Offshore Agile Maintenance

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

Page 7: Offshore Agile Maintenance

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

Page 8: Offshore Agile Maintenance

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

Page 9: Offshore Agile Maintenance

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

Page 10: Offshore Agile Maintenance

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

Page 11: Offshore Agile Maintenance

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

Page 12: Offshore Agile Maintenance

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

Page 13: Offshore Agile Maintenance

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

Page 14: Offshore Agile Maintenance

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

Page 15: Offshore Agile Maintenance

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

Page 16: Offshore Agile Maintenance

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

Page 17: Offshore Agile Maintenance

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