Agile and Offshore Contradictory or Synergistic A Practitioners

  • Slides: 16
Download presentation
Agile and Offshore – Contradictory or Synergistic A Practitioner’s Viewpoint November 7, 2007 www.

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

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 of seasoned professionals with extensive experience in offshore software Product Development •

Experienced 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 i 2 – managed product portfolio with multiple offshore teams Manager at Mc. Kinsey & 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. Alfa. Laval, First Guarantty, Cyberdrawer, etc. – BSME IIT Bombay, MBA IIM Calcutta Confidential

Our Clients Confidential

Our Clients Confidential

What is Agile? • Agile development is the ability to develop software quickly, in

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

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

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

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

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

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

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

Dual Shore Agile – What Works? Intense and frequent communication across the teams X+Y 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:

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-

Dual Shore Agile – What Works? Common development code-base, development- and test environment Deployment- and test environment Onshore Code-base Development environment Application code Offshore 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

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) – hemant@synerzip. com – Office Phone: 469.

Contact Information • Hemant Elhence (Dallas based) – hemant@synerzip. com – Office Phone: 469. 322. 0349 – Cell Phone: 214. 762. 4873 • www. synerzip. com Confidential