This article first appeared in DevOps.com on April 6th.
These days, even refrigerators can be programmed to tell you when you're running low on a certain food or when something has expired. Washing machines, coffee makers and toasters all use software to bring a more connected experience to their users.
And a lot of the technology being developed today is targeting large-scale problems, too. Artificial intelligence can help with health care, driving and learning; blockchain can help with human trafficking and tracking blood diamonds; and data analytics can shed insight anywhere from credit-worthiness to cardiac risk.
As demand for such technologies has grown, however, the brainpower behind them has been spread thin. Canada, for example, is predicted to have 218,000 tech jobs open by 2020—but not enough people to fill them, and the United States is certainly not better off. This pushes companies to offshore to places such as India to meet their development needs. But while software offshoring can offer these companies much-needed affordable technical expertise, there is one glaring problem: Traditional software offshoring does not work great for Agile development.
Here's why, and what you can do instead.
Challenges with Traditional Offshoring
In the Age of Agility, the digital transformation of industries is generating unanticipated software opportunities that rely more on creativity and reaction time, and less on technical grunt work.
Under Agile development, software developers must work in close collaboration with a cross-functional team to constantly learn from client feedback and deliver new code that can be tested with real clients every one or two weeks. This approach serves to speed the velocity at which a company can test hypotheses about what the client wants without wasted time and effort.
During this process, iteration is key. Engineers will deliver a minimum viable product (MVP) and quickly test to see if it works. They'll gain valuable feedback from real clients and gradually iron out the kinks until the product is market-ready. But with the traditional software offshoring model, a high level of flexibility and iteration velocity is very hard to achieve.
Under this model, a company in Silicon Valley and its software outsourcing partner in Asia or Eastern Europe may have at most two or three hours of overlap to coordinate their work. Conversations between team members thus become limited, occurring either very early in the morning or late at night.
In an effort to communicate more frequently, the U.S. team begins to generate documents with instructions and recommendations that the foreign development team can read when they begin their workday. However, this generates complexity, diminishes real-time conversations and the insights they produce, and makes iteration a paper-heavy process. This is not the fault of engineers in the United States or abroad; it is simply a natural restriction imposed by geography.
But it can be avoided.
Opportunities with Nearshoring
U.S. companies at the forefront of the digital age are realizing that to make software outsourcing work, they have to ensure it doesn't sacrifice their agility and capacity to iterate. For this reason, companies have begun engaging in nearshoring—that is, they're outsourcing to places in which the time-zones more closely coincide.
Under nearshore software outsourcing, engineers in the United States and their foreign development teams are both awake at the same time. This provides the opportunity for significantly more real-time communication rather than enduring the disjointed paper-heavy communication in offshoring. As a result, project ideation and the creative cycle of market feedback and iteration are potentialized, and the software engineering process can run in tandem between the on-site client and the nearshore partner.
For companies in the United States and Canada, the benefits of nearshoring can be realized by looking to Latin America, which offers a rich supply of talent. In particular, Colombia, Mexico, Argentina and Brazil offer sophisticated services, cultural compatibility and strong communications infrastructures.
Not only do most Latin American engineers understand English—the majority of software engineering texts and materials are written in English—but they also often rank ahead of India in terms of quality. According to Stack Overflow, Peru, Colombia, Chile, Argentina, Mexico and Brazil each score higher than India in terms of "Average Reputation of Top Users." And this is no surprise, considering that Latin America is home to various unicorns, including Argentina's software development company Globant, as well as MercadoLibre and Despegar.
Far-shore software outsourcing services will not go away, and will still be used for certain types of projects that involve application rewrites or application maintenance. However, when push comes to shove, the companies tracing the new frontiers of technology would be wise to look at Latin America for nearshoring opportunities. India may be marginally cheaper than Latin America, but the additional flexibility and speed-to-market gained by nearshoring versus offshoring has no price tag. In the age of agility, only leaders and effective innovators will thrive.
PSL delivers high-quality software engineering solutions by mastering advanced processes and technologies, such as big data, machine learning, and DevOps, among others. The company's reliable nearshore model, coupled with its top-tier, extensively trained software engineers, allows for efficient agile iterations and a focus on continuous experimentation.