Do note, this debate is constantly evolving in the app developer community. A couple years ago, most people would've told you to do everything in the United States and keep it local. However, it's 2015 and there are certainly circumstances that warrant the use of off-shore developers. I'll start by listing the 4 factors to consider when making the on-shore versus off-shore decision.
1. Complexity of the Project
You can break projects out into low, medium or high complexity.
If you are building an app which is self contained: low complexity. This means the app doesn't communicate with a server or make any network calls. Pretty straightforward.
A medium complexity app will integrate with web services and send & receive data from at least one server. The server should have documented API's and be relatively stable & robust. For instance, on-demand beauty app Glamsquad integrates with small business management software Booker.
A high complexity app will integrate with multiple data sources and 3rd party technologies, some which are new to the market. An example of this would be a live-streaming mobile app that we developed at Applico. The app integrated with YouTube’s live streaming SDK, which was new to the market. Because of its newness, no documentation existed. When we ran into issues with the SDK, we would communicate directly with YouTube’s team as these issues were news to them as well. Imagine the time lag in communicating these issues back and forth between developers in different time zones.
The higher the complexity, the higher the likelihood that you’ll want to work with onshore developers. Why? Proximity. Complex projects require in-person meeting and collaboration, plain and simple.
2. Breaking Out Your App’s Layers
The presentation or design layer of your app is the front-end interface, which is what your consumers will interface with the most. This software is high-touch and it’s important that the user experience is seamless and intuitive.
In my experience, it can be more difficult to get all the details of your app's user interface and user experience ironed out with offshore developers. This is primarily due to communication issues and/or language barriers. However, if you have an off-shore developer who has a firm understanding of the English language, that could help mitigate this concern.
The middle layer is the business logic and it dictates how certain functions are performed. If you request an appointment with a hair stylist, the business logic determines which hair stylist you are matched with based upon a number of criteria. When dealing with either onshore or offshore, make sure the middle layer’s documentation is as tight and detailed as possible. Your app’s functionality depends on it.
The persistence layer is the back-end infrastructure, servers and databases. If you have thorough system architecture documentation and are integrating with 3rd party technologies that have been around for a while, using offshore developers for the middle and persistence layers could be a viable option for you.
Generally speaking, with your mobile app’s strategy, design and product managers onshore, you’ll need a technical architect at the very least to entertain offshoring for any of the above components.
3. Time to Market
If you are under a tight timeline and need to get a product to market quickly, offshore development probably isn't the best solution for you. Iterations and feedback loops naturally take longer. Having your developers onshore should enable you to move more quickly and avoid communication delays. Furthermore, if you’re looking to develop using an agile approach, onshore is really your only option. Offshore resources perform better when operating under a waterfall approach with fixed, detailed requirements.
4. Your In-House Team
Do you have a technical co-founder or lead on your staff as a full-time employee? If not, you have an increased risk with off-shore development. It's important that you have a technical team member who can oversee their work and help ensure that the work product is of high quality and progressing according to schedule. Are your off-shore developers fluent in the same language as you? If both parties are not fluent in the same language, this will naturally lead to a number of challenges throughout the project.
In conclusion, offshore developers can certainly serve a role and should be factored into your decision making when considering a development partner.
At Applico, we will use third party vendors when we think it’s appropriate on a case-by-case basis. If we are up-front with our clients about the pro's and con's of using outside resources, we have found that our clients appreciate the honesty. They still expect us to deliver a quality product on-time and in-budget, but if we can do it in a distributed manner while saving some cost, then everyone is happy.
For more information on iOS and Android mobile app development, please contact us. To learn how you can develop an “Uber for X” marketplace or content startup in 2 weeks for $15,000, read about our Platform Modeling offering. To learn more about all the different “Uber for X” companies in the market, visit our startup database at PlatformInnovation.com.