Agile and (Offshore) Outsourcing in Software Development: The Eternal Love/Hate Story

Articles

Agile and (Offshore) Outsourcing in Software Development: The Eternal Love/Hate Story

May 20, 2013

Agile is far from being a purely hype-driven software development phenomenon. In fact, if you think about it, it’s a very natural methodology to embrace for technology vendors.

First, a company that develops its own high-tech product—hardware and software—has to deal with constantly changing requirements. You get new clients (especially new key clients at the dawn of the new product development), and they bring new requirements. You hit the market with a new version, and you get feedback that affects your roadmap. You start developing something only to be met with unforeseen technical obstacles or come up with a new inventive approach that simplifies everything but affects the way your project looks and feels. In short, you never know how your requirements will change in three months from any point in its lifecycle.

Second, by definition, it is hard to make reliable time/effort estimates for new development. Since it’s new, your previous experience and statistics work only to a certain extent. Besides, we always try to utilize the best possible technology (note: I didn’t say the newest or the most buzzed about—there’s nothing wrong with looking for the best tech for the job) available at the time we start a new project, be it a new product, a new major version, or a port to a new platform. With that come regular technology changes, accompanied by the learning curve (or, more appropriately, the mastering curve) trial-and-error periods. So your initial estimates are never on the mark, and you have to work on improving them through the entire project.

And third, even before the well-known “Individuals and interactions over processes and tools” and “Working software over comprehensive documentation” principles of agile were formulated, software development was all about individuals. However you tried, the documentation was never complete or up-to-date, and for the best results, you had to regularly consult with product gurus who’d worked with the software for years and knew all the architectural gotchas and recent changes to the design.

Combined, all that leads to agile being a natural approach for new software development, at least in my opinion. Now, let’s throw in the second popular concept in today’s high-tech/IT world (although it’s not limited to this): outsourcing (parts of) product development to (offshore) providers. Given the inherent “constantly changing requirements” + “no good estimates” + “dependency of individual” characteristics of software development, I guess you wouldn’t be surprised that my own principle for successful outsourcing in this field reads as “Communications over technical skills.” One of my first posts this year was on this exact topic—the importance of communications for software development outsourcing—and I hope you now see another reason why it is so important.

But besides the general philosophical interrelation between communications, flexibility, agile methodologies, and specifics of software development, there is a more practical question: how to combine using agile methodologies with working together with remote teams provided by outsourcing companies. There are two main aspects to that question: finding the right business model and organizing the work of a distributed agile team. I break the rest of this article into two posts devoted to these two aspects:

– Andrey Pronin, SVP, Strategy, Technology, Marketing, Auriga

   ·   

Relevant News

News

Auriga Baltics Again Awarded “Strongest in Lithuania” Certificate

Auriga Baltics Again Awarded “Strongest in Lithuania” Certificate

We are proud to announce that Auriga Baltics, Auriga’s engineering center in Vilnius (Lithuania), was once again awarded the “Strongest in Lithuania” certificate. For the

Auriga Joins the Aquantia Ecosystem Development Program

Woburn, MA – Auriga, a leading software outsourcing service provider, announced that it has been selected as one of the first members of Aquantia’s new...

Auriga Opens New Engineering Center in Russia

Auriga, an expert software R&D and IT outsourcing services provider, continues to strengthen its presence in Russia. In spring 2018, the company opened a new...

World’s #1 software engineering outsourcing provider:
fully-managed dedicated teams and projects;
new software development, sustaining engineering, software testing