|
|
Agile Distributed Delivery Model has the ability to leverage an agile development approach to specifically address the needs of distributed teams that span across time zones. This model complements uncompromised quality, risk management, and project visibility, coupled with frequent software releases that are essential to delivering and maintaining high-quality, high-value business and technology solutions.
Xebia has found that offshoring complex software development adds new risks and challenges in managing the software development process.
The success of offshore software development process requires good understanding and management of the following issues:
Following Agile approach and extending our SCRUM based iterative software development model to India, helps in mitigating the risks and meet our delivery commitments at significantly lower costs.
The key elements of our offshore software development model, Distributed Agile, are as follows:
Some elements of our approach would apply to any software development project whether it involves offshore work or not, but these elements play a critical role in making offshore software development engagement a success.
People, Process and Technology are deployed effectively to mitigate offshoring risks and expedite the value delivery.
The OneTeam concept is based on not splitting teams based on geographical boundaries, but rather create multiple teams that all have team members in both the onsite and offshore locations. This will lead to better understanding of specifications and delivered software, a natural urge to collaborate, knowledge sharing and a more unified goal for the whole team. Also, this is more inspiring to the team members, leading to high productivity and better results. Xebia has overcome the communication barrier to make this effective.
A Scrum team will have a Scrum Master locally and a Team Lead in India. The team will have a flat structure with every member being hands-on and involved in active coding. The functionality is developed in collaboration across the locations with shared code ownership. As the team is ready to handle more functionality we will split the teams into multiple scrum teams each with 7 +/- 2 people (team size dependent on project and client’s current team structure). Each team will have a Scrum master.
To ensure fluid communication between teams, when multiple teams are working on a product, a scrum-of-scrums is introduced. This meeting has representatives of every team coming together daily to discuss the things that are happening in each team, and where possible dependencies might occur. These meetings are lightweight, and involve the same style as the daily standups that are kept within the teams.
They exist around the three basic questions:
This way, teams can see how they might help or block each other. These meetings are highly efficient and effective.