Agile : How to work in an Onsite-Offshore Model?

images

Image Source : Google

Agile software development and the breed of agile methodologies (XP, SCRUM, DSDM, etc.) have gained popularity since 2001. Agile methodologies were primarily founded for software projects executed at a single location. Today, with many adopters and practitioners across the globe, agile methodologies are showing promising results in multi-site projects too. Offshore delivery models have been successful in application maintenance and enhancement projects for more than two decades. In the case of development projects, iterative lifecycle approaches are more widespread and acceptable than the classical waterfall approach in delivering results and ensuring customer satisfaction. Distributed agile software development involves software projects done by agile teams located across geographies.

why-agile

Image Source : Google

Agile process is finding more and more acceptability among Corporations. This process is ideally suited for major IT implementation projects running for long duration. The major problem in such projects is that the entire Requirement or the entire scope of the project is not known at the initiation phase, and hence the project is divided into iterations or Sprints.

Innolution_ScrumCycle drawing_final with copyright

Image Source : Google

Each Sprint is usually of a fixed duration for ex: 2 weeks, and more importantly, the work done in a Sprint has to be complete by itself and has to be demonstrated to the stakeholders, with a working piece of software. One of the fundamental tenets of any agile software methodology is the importance of communication between the various people involved in software development. As the agile manifesto states “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” Extreme Programming emphasizes this with its practice of a single open development space where the team can work closely together. Cockburn’s book spends a lot of time talking about the importance of physical proximity in agile methods.

Distributed agile is the application of agile methodologies such as XP, Scrum, DSDM or any other home grown methodology based on Agile Manifesto and Agile Principles.

key-principles-of-agile-methodology_blog

Image Source : Google

The trend that’s been grabbing the software development world recently is the move to offshore development, where much of the development work is done in lower paid, ahem more cost effective countries. Offshore development seems opposed to agile development in a couple of ways. For a start it immediately goes against the notion of physical proximity, since by definition offshore developers are a long way away. Secondly most offshore organizations favor the plan-driven approach where detailed requirements or designs are sent offshore to be constructed.

There are major challenges with the Agile process with a geographically distributed team, or an onsite offshore model. Delivery of working software at regular intervals at a sustainable pace and responding to the changing needs of business users are the imperatives of agile. However, one must understand the challenges involved in distributed development. These challenges fall under four broad categories: 

  1. Communication & Coordination
  2. Time zone differences
  3. People, culture and leadership style
  4. Change Management

Distributed Agile in offshore outsourcing is when two or more teams of different organizations from different countries participate in an agile project. The success of distributed agile projects involving offshore teams depends on several factors: project type, volatility of requirements, distributed governance, skills and competency of team members and the culture of participating organizations. Those who have succeeded in distributed agile projects in the offshoring context agree on the symbiotic relationship between distributed agile and offshoring. The organizational culture of participating organizations plays a major role in nurturing distributed agile ecosystems. A good mindset, open communication and collaborative participation among organizations, results in a positive relationship that supports distributed agile projects. Without these elements, organizations continue to function with differences in understanding and expectations on distributed agile.

agile

Image Source : Google

A typical Onsite – Offshore model in Agile Development looks as defined below in the picture.

reducing-cost-with-agile-14-728

Image Source : Google

To overcome all the hurdles and impediments of Distributed Agile with multiple teams there is one very innovative way which we came up with after long continued discussion with the customers namely Agile Delivery Factory.

wordle-agile

Image Source : Google

Our current component setup needs huge efforts just to maintain dependencies. We have more fire fighting among our teams than cooperation. We have conflict of mindsets of methodology (Agilists vs Waterfall vs those who are in between both worlds). Too many good people with good knowledge leave the team within this long period of battling to deliver. Everyone is trying their best already, but people are exhausted and their mood is low.

capture

New Perspective of Agile Delivery Factory
Transformation from Component Teams to Feature Squads.

capture_1

The Transformation Begins
5 Key Principles of an Agile Squad

capture_2

Agile Delivery Factory (ADF) – Team Structure – Idea of SQUADS

capture_3

Small & agile teams to enable efficient project delivery.

capture_4

What will change?

  • Offshore and Onsite Squads to be equally E2E responsible for implementations
  • Additional supporting roles Offshore are opened i.e. Business Engineering, Project Management, Test Management
  • Onsite squads will no longer do task coordination with offshore. Coordination will be ensured via Enablers
  • A System Squad will be formed (shared offshore and onsite)
  • Squads have a new roles that is called “Squad Captain”
  • Every squad will stricly apply Agile Principles for implementations and will be coached if needed
  • Heavy investment to Test Automation and Automatic Regression testing will be made to ensure frequent releases

Agile Delivery Factory (ADF) picture1

Image Source : Google

  • Understand why we do stuff and the value of it
  • Really finish stuff
  • Easily implement and/or integrate a new screen
  • Easily implement and/or integrate a new service
  • Don’t break shit in production
  • Easily ramp up new team members
  • Easily share knowledge
  • We trust and are proud of our deliveries because
    • we don’t have recurring tasks and bugs

capture_5

This slideshow requires JavaScript.

We have contributed to several success stories using the Agile Delivery Factory Model in our Organization. Every year we see many new releases kicking off in this model. We have experienced the symbiotic relationship between distributed agile and offshoring and so have our customers. We believe that distributed agile will be increasingly adopted over the coming years. Considering the success and benefits of distributed agile, the number of distributed agile projects in this engagement is on the rise.

images

Image Source : Google