Since I began my career in the software development business back in 1998, the world has gotten smaller and smaller. Today, the idea of a distributed team, or one in which members are geographically diverse, is acceptable not only in the agency world but at many client organizations as well. The fact is, we're all highly connected, and these days the idea of being under one roof at the same time is less of a requirement for doing good work as a team.
But, still, there is misunderstanding concerning when to onshore, when to offshore, and how that all relates to the only thing that matters: the success of your project.
We reviewed the different types of agencies in this previous post, which not only explained pricing divergence but also defined agencies by scale and ability. I recommend you read it! But, we didn't really delve too deeply into the benefits and in some cases, restrictions, of the location of an agency, and it's individual team members. Truth be told, some roles are better geographically distributed than others.
I've always been open with clients about our company structure, and I want to summarize it here, in the interests of full disclosure. We've been partially offshoring work for over ten years. Our internal make-up consists of design, project and account management, business development, and some front-end development being here in our New Jersey offices. Our back-end team is located in eastern Europe, where we do most functional coding and system administration services. This breakdown makes the most sense and has enabled us to successfully work on our client's projects with a high success rate with a risk-averse methodology. But, that wasn't without trial and error in the early days of our business. Today, I will shed some light on what works and what doesn't when it comes to geography, as proper distribution of teams directly relates to your project's success or failure.
Offshoring vs. Outsourcing
Before we get too far into the topic, I wanted to quickly address some definitions as the terms offshore and outsource are dissimilar, yet often confused. In this article, I'm discussing location, but not a business relationship. That is the difference between offshoring and outsourcing. When you outsource, you are making a business relationship with some sort of contractor regardless of location. They can be onshore, offshore, or on the moon. Offshoring is a different term in that it purely means utilizing resources in a country other than your own. So, to be clear, this article speaks to locations of resources rather than how it is you have chosen to pay them.
What services must stay domestic
First, I want to summarize our findings when it comes to what work must stay domestic. Some tasks just can't be dealt with by offshore teams. Now, before anyone offshore reads this and gets angry, I want to explain that this doesn't come down to the skill a task requires. This is more about the handling of expectations and the ability of the specialist to relate to the client and understand their desired end result.
When you hear of nightmare offshore scenarios, typically, it'll come from poor handling of expectations. Trouble understanding requirements. Miscommunications. All of these items come from project or account management. Fact is, offshore companies, or those agencies that are 100% offshore with no onshore component other than maybe a sales guy, are awful at account management. Some of the problems are geography itself – time zones and communication methods make things hard to coordinate. Some of it is also cultural. The fact is, different cultures have different ideas of service and how to accommodate clients. Finally, a big part of it is also accountability. Offshore firms rarely are concerned about the bad review or the reputation hit. They are selling based on the commoditization of their resources. As such, the idea of account management is foreign to them, pardon the pun. For this reason, it's usually a good idea for the day-to-day communication between client and agency to happen with someone who is managing the project domestically and therefore serving as a firewall between resources.
The issue of culture also hits hard in the area of design. I've never seen offshoring design efforts work well unless the country you are offshoring to is culturally similar to the one in which you are located. It doesn't usually work well to offshore design work to Asia – not that there is anything wrong with Asia – but they simply have different values and aesthetics when it comes to design. Also, since design is based on persuasion, or making users accomplish the tasks you want them to perform, different cultures address those problems differently. Finally, in terms of design, there is also a need for the designer, or at least the creative director, to work closely with the client. Offshoring makes this nearly impossible. As an example, we prefer having kick-off calls, discovery sessions, and presenting our designs all occur via a call or meeting. That isn't always possible offshore, and even when it is, the experience isn't quite the same.
Finally, software architecture is something that we find is a form of art, and as such, needs to have a local component. By that, we don't necessarily mean choosing field names in a database or writing out specific snippets of code. But we do mean the overall strategy, planning, and layout of complex systems. This is the work of a software architect, or at a start-up, the CTO. Much like design, this requires a connection between the architect and the client. And, it requires the ability to translate business requirements into technical specifications. Typically, this is something that doesn't travel well to offshore locations.
In summarizing this section, it should become apparent that the high-touch disciplines are the areas where offshoring is hard. Anything with a client-facing role, or that requires some cultural similarities between client and resource typically is better served onshore.
What services work offshore
So given what we've spoken about above, what services work well offshore? Well, in our experience, it's work that can be adequately planned, documented, and architected. This means that development and other forms of technical production are great candidates to offshore. Why is this? Well, there are a variety of reasons.
First, design can iterate relatively quickly. You can have multiple renditions or revisions done in a day. Development, on the other hand, moves a bit slower. You can get away with daily updates on progress after development has started. As such, since the communication is at a slower pace, offshoring is a perfect scenario for development tasks.
Secondly, development feedback cycles are structured. You can test software, send feedback, and the entire process can be documented via tools such as Jira or Trello. Each issue has an entry and can be discussed and acted upon. The feedback you receive for other disciplines, particularly design, can have many more grey areas that are open to interpretation. Development doesn't follow this mold, and as such, black and white definitions of tasks help make distribution of the developers easy.
As mentioned, development is typically well defined and in many cases in the web industry, visually explained as well. When you build a custom web or mobile app, for example, you provide a written architecture in addition to either design or front-end coded files. This means that there isn't much room for error in interpreting functionality. Now, I'm not saying it's impossible to make a mistake, but the offshore model works well for this type of production.
Finally, another area where offshoring makes sense is repetitive tasks. This can be anything that has an initial learning period but then is pretty much on autopilot after. Support tasks, debugging, QA/testing. Even content entry – these tasks can be distributed without any painful misinterpretations.
Distributed vs. Under One Roof
Many people ask if it's essential to have everyone located under one roof or being totally distributed. There isn't a right answer. It depends on factors such as communication infrastructure and the preferences of the team members. Today, tools such as Slack make it easy to communicate in real-time as a distributed team. Weirdly enough, even folks sharing an office communicate more in Slack than they do face to face. But, even with these tools, not all folks prefer the isolation of working from home or being distributed. So, this really depends, and your mileage may vary depending on which approach you utilize.
About Cultural Differences
In this post, I mentioned cultural differences a few times. I want to be precise in my wording – there isn't any particular bias from one location to another when it comes to outsourcing. It's merely that different cultures work in their own ways, and that is something to be adjusted for, not necessarily avoided. Some cultures put an emphasis on service, and others on blunt truthfulness. What works for you may vary based on your own team's preferences.
How This Affects You
If you are a consumer or client of a web development agency, how does this affect you? In several ways. First, the most expensive agency will be the ones that are 100% onshore and located in one physical location. So, if you are looking for value, you may want to entertain looking at companies that are either distributed or have some level of offshoring in place already.
I'm a fan of value, and I believe that the highest value exists in the agency that has onshore creative and offshore production. This mixture is the best value to the customer, in that the agency is doing high-quality, locally produced experience work, and utilizing the global economy to produce the work in a way that directly benefits the customer's bottom line.
One last area of benefit that I want to mention is that agencies with offshore resources typically are also going to offer additional advantages in the way they are structured, most specifically in regards to the management of time zones. Agencies with offshore resources are most likely to have developers working through the night, or early morning, which means that teams with minimal overlap can conduct rapid testing and quality assurance on a near-daily basis. This is of great benefit to the client in terms of saved budgets on billable hours and quicker turn-around times.
In finalizing this post, I want to make sure there is total clarity about where the benefits of offshoring live, and when you should absolutely avoid it. I've been a fan of this model for many years and do feel it can be successful. But it has to be done correctly. You need to offshore appropriate tasks, manage them well, and leave the work that relies on substantial personal interaction local. If you can adequately navigate that balance, there is much success to be had in these new, global approaches to production.