– Agile and Offshore Software Development

Download Report

Transcript – Agile and Offshore Software Development

Agile and Offshore –
Contradictory or Synergistic
A Practitioner’s Viewpoint
November 7, 2007
www.synerzip.com
About Us (Synerzip in a Nut-shell)
1. Offshore software development partner for
small/mid-sized technology companies
•
•
•
•
Focus: A/B round funded technology start-ups
Deep experience in product development and testing
Full software development life cycle
Engagement flexibility: Fixed-Price OR Dedicated-Team
2. Actually reduces risk of development/delivery
•
•
Experienced management team
Light-weight but robust Agile process
3. Reduces cost – dual shore team providing 50%
cost advantage
4. Offers long term flexibility – allows (facilitates)
taking offshore team captive
Confidential
Experienced Team
Team of seasoned professionals with extensive experience
in offshore software Product Development
• Hemant Elhence, Chief Executive Officer
–
–
–
–
Co-founder & COO of ECMi, venture funded software product company
Product-line VP at i2 – managed product portfolio with multiple offshore teams
Manager at McKinsey & Co, Consultant at TRG
Software engineer at Digital Equipment Corporation
– BSEE IIT Delhi, MSEE Univ. of Massachusetts, MBA Univ. of Chicago
• Vinayak Joglekar, EVP & Chief Technology Officer
– Co-founder & CTO of ECMi, lead offshore (India) development center
– 22+ years experience in software architecture design & product development,
has built and mentored 100+ teams, hired 1000+ software professionals
– Successfully delivered off-shore software projects for 20+ companies incl. AlfaLaval, First Guarantty, Cyberdrawer, etc.
– BSME IIT Bombay, MBA IIM Calcutta
Confidential
Our Clients
Confidential
What is Agile?
• Agile development is the ability to develop software quickly, in the face
of rapidly changing requirements
• Agility is achieved by adhering to well understood practices, discipline,
and feedback
• Various flavors are practiced in the industry – SCRUM, Extreme
Programming (XP), Adaptive Software Development, etc.
• From Agile Manifesto of 2001: “Agile approach values…
–
–
–
–
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, items on the left
are valued more”
But, Agile is not an excuse to do maverick development without due
attention to requirements analyses, thoughtful design, robust
development & testing
Confidential
Why Adopt Agile Approach?
When done properly…
• It is just more suitable for fast moving companies
– Builds software which is more likely to delight customers
• Embraces “changing requirements” as a positive,
• Allows more innovation - relieves the product managers of the fear of
committing to an irreversible change
– Builds better quality, robust code
– Provides better visibility and delivery predictability to management
• It lends itself well for working effectively with offshore/
distributed development teams
– Quick release cycles (Sprint) and scrum make the efforts put in by the
offshore team more visible leading to trust
– Requires less onerous documentation around requirements, thereby main
bottleneck in leveraging offshore is dramatically reduced
Over 70% of large & small companies have plans to
adopt one or more of the agile practices this year
Confidential
Agile in Practice Today
• Core practices, widely adopted
– Small, collaborative teams, 5 to 8 team members
– Frequent and intense communication – in-person, IM
Chat, email, conf-call/skype, video-conf, etc.
– Delivering working software in short iterations (Sprints)
~ 2 weeks, time-boxed, demo & customer feedback
– Initial requirements captured as “user stories”, welcome
changing requirements
– Continuous integration
• Other practices, with limited following
– Test driven development
– Pair programming
Confidential
Agile with Offshore Team?
• Inherent limitations
– Customer-Vendor “contractual” relationship
– Face-to-face communication with “customer” limited/non-existent
• Geographical boundaries
• Conf-calls limited due to time-zone and connection quality issues
– Business context difference may make requirements difficult to
understand, requiring more detailed docs
– Developer skill/experience level tends to be low
• Inherent advantages
– Geographical dispersion forces requirements to be written,
elaborated, and in that process analyzed upfront
– Forces good development processes – bug tracking, version
control, daily builds, automated testing, wiki, etc.
– More focused teams, less likely to be distracted by news-du-jour
– Cost advantage allows proper staffing to handle the Agile discipline
– TDD, test automation, etc.
Confidential
Need for Flexibility
Leveraging Offshore Advantage
High - “Evolving/
Emerging”
Requirements
Agile Model, All
On-shore
Low - “Known/
Given”
Requirements
Dual-shore Agile
Waterfall Model,
All Offshore
Low
High
Need for Dev Speed (for given $$ budget)
Confidential
Dual Shore Agile in Practice
US Location
Product Lead/
Customer
Scrum Master
Agile Team #1
US Location
Agile Team #1
Confidential
Agile Team #2
India Location
Agile Team #2
Dual-shore Agile in Practice (Contd)
•
Don’t split an Agile team across continents, rather have a full unit of Agile team
offshore
– Offshore team follows the SCRUM and other processes locally
– Daily SCRUM over phone, across the ocean doesn’t work
•
•
Ensure that there is a designated owner in US client team for the offshore team
Designate an on-site Product Lead, a representative of offshore team
– Participates in requirements gathering and planning phase with US “customer”
– Participates in both scrums – US team’s as well as offshore team’s
•
Hold offshore team to same standards
– Assign equally complex/challenging work
– Expect working software demos at the end of each iteration
•
Encourage and facilitate high degree of communication
– Emails, IM Chat, Skype calls, conf-calls, video conf-calls
– Periodic in-person visits by team members to allow “face-time”
– Flat, developer-to-developer communication
•
Ensure proper dev process and infrastructure – common source code control,
bug tracking, wiki, etc.
Confidential
Dual Shore Agile – What Works?
Intense and frequent communication across the teams
X+Y
ABC
ABC!
X!





X & AB
X - OK
ABC!


 



X
ABC
Onshore
Offshore
Highly dynamic, interactive and communicative working environment
locally – affects the communication between the teams
X+Y
ABC & D
X?
X+Y!
ABC!
X+Y!
And D?
D?

 



Onshore
Confidential
OK
D!
X+Y!
ABC!
XYZ

D!
X
ABC

 



Offshore
Dual Shore Agile – What Works?
Direct, developer-to-developer connection






Project managers


Communication bottlenecks
Reasons:
Control?
Language & comfort zone

Project coaches



Confidential
 



Direct communication
Less information loss
Less waiting
Challenge:
Asian hierarchical orientation,
Language

Dual Shore Agile – What Works?
Common development code-base, development- and test environment
Deployment- and test
environment
Onshore

 
 

Offshore
Code-base
Development
environment
Application
code

 
 

External
System 1
External
System 2
Sending code, deploys, etc back and forth via email because some can not
ABC and others can only XYZ is a living nigtmare
Confidential
Agile-Offshore Synergy- Summary
• While Agile is a sound approach, it is often
misunderstood and abused in practice
– Agile is not an excuse for no documentation, no requirements
analyses, no planning, etc.
– US teams are often short-staffed – can’t handle TDD, etc.
• Offshore location of dev team forces a
“appropriate discipline” striking effective balance
• Lack of “face-time” forces written, albeit informal,
communications – which forces clarity and
minimizes misunderstanding
• Offshore team allows cost effective resource
augmentation, to handle the Agile discipline
Dual-shore Agile allows the flexibility of Agile process,
with cost/speed advantage of offshore, while guarding
against the common pitfalls
Confidential
Contact Information
•
Hemant Elhence (Dallas based)
– [email protected]
– Office Phone: 469.322.0349
– Cell Phone: 214.762.4873
•
www.synerzip.com
Confidential