We all know the payoffs that can result from employing the Agile methodology and employing it well: from highly effective self-managed teams, increased flexibility and realtime change management ... to tight quality control and heightened collaboration.
But what happens when you are already doing Agile in-house and then want or need to expand your Agile development circle to include an outsourcing partner that is 5,000 miles away?
Does the progress of the Agile work get delayed, or even worse, derailed? Does the spirit of team cohesion and collaboration shatter?
Elastic Path, a Vancouver, BC-based company that is in the ultra-competitive, fast-paced market of e-commerce software found that doing distributed Agile with an outsourcing partner can achieve just the opposite. It can not only be a great shot in the arm to a project's resource pool, but also it can provide true team scalability, pump-up expertise levels significantly and heighten quality when you do it with the right team, tools and techniques.
Extending Agile to Meet Growing Business amp; Development Requirements
As a way of staying in step with a compressed time-to-market environment for new releases of its e-commerce platform, Elastic Path was already leveraging in-house Agile development for maximum collaboration, heightened productivity and more flexible change management.
However, when it "upped the ante" by wanting to further accelerate a redesign of its web-based Commerce Manager product using Agile, it became quickly apparent that the company would need help beyond its in-house development team.
The mission at hand would include a pilot program to migrate Commerce Manager to the more advanced Eclipse RCP platform with the goal of giving online store owners a more flexible, feature-rich, and easily interfaced and maintained application for the management of product catalogs, sales orders, inventory, shipping and customer profiles.
Now looking externally to help get the job done, Elastic Path wanted an outsourcing player with domain knowledge and Eclipse development expertise, as well as a seasoned partner in distributed Agile.
It was looking for a provider that was interested in a long term, value-add relationship vs. a one-off project and someone who could scale resources to meet its needs and keep development costs steady.
"We were looking for an outsourcing player that could deliver a wide range of skills quickly and flexibly and that understood the "business" of software product development," said Gordon Janzen, COO of Elastic Path.
Can Agile Do That?
Elastic Path's set of requirements were not that easy to fulfill, as distributed Agile resources are still relatively scarce despite the fact that Agile can actually be even better suited to an offshore vs. waterfall/sequential development environment as it can provide heightened project visibility and feedback, high responsiveness to change, accelerated time to market and overall quality and efficiency gains.
In order to leverage these benefits and avoid potential pitfalls, it was critical for Elastic Path to have access to development and management talent that knew how to tackle the challenges that can come with distributed Agile such as teams across multiple continents and time zones, the inability to meet face to face daily, language and cultural barriers and a lack of trust that can result from an "out of sight out of mind" mentality if left unchecked.
Finding the Right Team
Wanting to bypass these issues, Elastic Path went through an extensive search before deciding to partner with Luxoft, a global provider of high-end software application and product development services with resources in Central and Eastern Europe, North America and Asia.
Luxoft was chosen because it brought a successful track record in distributed Agile, a team with seasoned Scrum Masters and XP Coaches, and a proven Agile infrastructure that included tools and processes for effective distributed communications and development.
Luxoft was also able to provide nearshore management capabilities right in Elastic Path's home town out of its Luxoft Canadian headquarters in Vancouver, as well as quickly build a team that included offshore developers and testers based in the Russian cities of Moscow and Omsk.
This combination of nearshore and offshore talent would prove critical for Elastic Path's success with distributed Agile.
Making Distributed Agile Work - Challenges, Opportunities and Structures for Success
While some standard in-house Agile techniques could be successfully applied in the same way to a distributed Agile environment, others required modification like information sharing, documentation levels, communication channels, status tracking and reporting and meeting frequency.
Starting off as a pilot program to redesign the Commerce Manager product, Luxoft's global team worked side-by-side with two Elastic Path groups sharing source code and a bug tracking system, and using the same iteration planning and daily status update processes. A Scrum-based distributed Agile development process was also used in the project with three week iterations.
Other structures put in place to ensure success included source control systems that supported multisite synchronization, a centralized repository for Agile project management and a shared test infrastructure. By using common source control and Cruise Control based on continuous integration, the global team ensured the quality of the build and a quick functionality feedback loop.
A Sharepoint site was also maintained to give a detailed view of the team's progress and was accessible by everyone providing a virtual corkboard to track progress.
Complementing the Sharepoint site was the use of Jira as a task and backlog management tool for both testing and development, allowing for a large reduction in documentation and much more agility to changing requirements.
To keep the team in touch further, the use of dedicated IP telephone solutions and an internal conference calling system allowed them to quickly, efficiently and affordably maintain rich, personal, daily communication globally.
The team also used instant messaging at all times of the day and night for quick feedback and turnaround of issues, and e-mail was leveraged with one golden rule ... all emails had to be answered by end of business on the day received, even if it was just an update on when the full answer was coming, so that critical items would not fall through the cracks.
Collaborating with speed and success, the pilot project quickly grew into an Elastic Path/Luxoft Offshore Development Center (ODC) with Luxoft scaling its team rapidly and doubling the dedicated offshore resources. The project reached a successful conclusion with the release of Elastic Path Commerce Manager 6.0 after six months and created an ODC that was 22 developers and testers at its largest and 12 at its smallest to maximize budget and resource management. This ODC is now an integral and flexible part of the Elastic Path development team going forward.
It's All About Having the Right People-In the Right Places
To keep things moving smoothly beyond these techniques and tools, and at the heart of the success of the program, was having the right people, in the right places, playing the right roles.
The Luxoft project manager in Vancouver served (and continues to serve) as the primary interface to the Elastic Path team and drives the technical and business process plans and goals, training, QA and measurement efforts throughout the in-house and Luxoft resources. This project manager also acts as the Scrum Master for the Luxoft offshore team while simultaneously serving on the Elastic Path Scrum team to bring the information and recommendations back full circle.
Further, the Luxoft tech lead provides a similar linking role, but interfacing through Elastic Path's architectural team and collaborating in real time with the company's in-house developers and Luxoft's offshore resources.
Having two channels of communication -- with status and task commitment coming through the project manager, and design and technical communication coming through the tech lead -- ensures faster turnaround and efficiency when dealing with issues and rapidly changing requirements.
This well-oiled relationship structure has created a highly successful work rhythm where Elastic Path often feels that Luxoft anticipates its needs and potential stumbling blocks even before it does in-house, making the project management, development and QA team even more responsive and strategic.
The Payoff for EP
As a result of the successful pilot and the ODC work, Elastic Path has benefited extensively from distributed Agile by gaining:
- Higher productivity
- Shorter time to market
- Competitive advantage by allowing quick response to changing market requirements
- Reduced risks
- Higher quality
- Reduced waste of time, effort and investment
- Cost containment.
Successful Distributed Agile can be Tough but can Happen with the Right Team, Tools and Techniques
Extending Agile to a distributed model is not for the faint of heart as it can be a challenge. But if you can construct the right team with the right skills and expertise, and leverage proven tools and techniques, you can reap tremendous benefits in terms of scalability, productivity, cost management, risk reduction and improved quality.
So go ahead ... go forth and distribute Agile with confidence and success!
About the Authors
Michael Vax is the VP of Technology at Elastic Path in Vancouver BC (www.elasticpath.com)
Stephen Michaud is the General Manager of Luxoft Canada Ltd based in Vancouver, B.C, (www.luxoft.com)