Many entrepreneurs praise the merits of outsourcing development work overseas, while others have sworn off due to horrible experiences. Should you outsource development overseas or hire a developer for your team?
The Benefits of Outsourcing Overseas
Cost – Obviously, the cost of labor is much cheaper overseas. Why pay a local developer $150/hr when you might be able to get the same work done for a quarter of the cost, or less, from another country? Then, you could use the cost savings to build a bigger, more feature-rich application.
Labor arbitrage is seen as the biggest pro for outsourcing. If you can get more bang for your buck for the “same thing” elsewhere, many entrepreneurs think it doesn’t make sense to pay more for someone local. (When costs are equal, hiring locally generally always trumps outsourcing.)
However, comparing labor costs isn’t as easy as you might think. This great ZDNet post from an outsourcing firm urges entrepreneurs to consider the extra time associated with managing and preparing an offshore project. Often, comparing explicit costs leads to the fallacy of not considering opportunity costs and to assuming that one hour of labor is equal everywhere. Whereas, in fact, this survey showed that 62% of offshore IT contracts cost much more than businesses expected.
Short Term Commitment – The most underrated benefit of outsourcing is the ability to bring in an expert on a project basis without committing long term (and paying the associated costs). You may really need someone with one skillset now but need someone with a totally different skillset in a few months.
No Office Distractions – This may seem silly, but many office environments are huge distractions for developers. With lunch, office chit chat, and commuting, there is little time left for developers to get actual work done at the office. Additionally, this usually means developers must work way more hours than necessary, which hurts morale and possibly company culture.
The Benefits of Hiring Full Time Developers
Buy In – Developers who work for you full time have bought into your idea and have high opportunity costs for working with you. They are investing time and energy into your idea and have a vested interest in the outcome. That’s huge. They are less likely to bail for a number of reasons and, if the fit is good, will be long term players.
Relevance – Developers who are sitting next to you know what’s going on and can change directions quite easily. A new feature may take priority after a casual conversation rather than waiting for an allotted meeting time. They also know what challenges the business is facing in other areas, such as sales and marketing, and can offer potential solutions or fixes.
Aligned Interests – Freelancers, by nature, define success by securing clients, delivering on projects, and working on multiple projects. Entrepreneurs, by nature, define success by building businesses that generate revenue and disrupt markets. This takes a long time. A freelancer (especially one who is outsourced) will take you only so far.
The Downside of Outsourcing Overseas and Possible Solutions
Quality – A huge issue when outsourcing overseas is quality control. How do you make sure the code that is being written is high quality? How do you even judge the developers on outsourcing sites who list their portfolios? A common practice for large overseas dev shops is listing a general portfolio of work the firm has done (usually the best developer). You can’t be sure what you’ll actually be getting.
TechVibes recommends a couple of strategies to mitigate this risk: hire someone local to act as a consultant and do some of the legwork, and have companies in the running do a test project to see whether they are a good fit.
Another option is to have candidates do a technical interview. Some outsourcing sites like eLance and oDesk have tests that candidates can take on their own platform, but I’d encourage a personalized test. (At the end of the day, you can’t be 100% sure the candidate who performed the coding test is the one you are hiring due to the nature of those platforms.)
If you go the technical interview route, here are some common questions (and their answers). For more inspiration on technical questions, check out platforms like TopCoder that create coding competitions for developers. Here’s how Eric Ries recommends doing technical interviews.
Remember, the point of the technical interview is to make sure the candidate actually can code. (Surprisingly, many programmers who apply for jobs, can’t program). Once they pass, you’ll want to ask behavioral questions to make sure there is a personality fit.
Code Collaboration – Collaboration is a HUGE challenge when outsourcing overseas. Depending on which country you choose to hire a developer in, there can be major cultural issues pertaining to the statement of work. Software development is organically a collaborative process, but you can’t really expect developers overseas to understand what you’re asking because they are coming from a different context. That’s why writing extremely specific requirements is key to having a good experience outsourcing.
Why? Scrum works because it allows projects to self-organize, provides transparency into project work, and emphasizes communication from team members. The fact that all participants follow a framework or process is important to ensure consistency.
Without Scrum, project owners are left in the dark until work is completed, and by that point, needs or preferences may have changed. Having this kind of organized process is super important for distributed teams that lack organic methods for communication. To learn more, check out this instructional video on how Scrum works.
Logistical Challenges – Many entrepreneurs don’t consider the challenge of being 100% remote and having a developer in a very different time zone. They may have to wake up in the middle of the night for conference calls with the dev team, a time when they likely wouldn’t be doing their best work.
A way to get around this is to hire a team with a project manager who is either local or in a closer time zone. Many large shops hire U.S. based project managers to mitigate this challenge.
Project managers provide a buffer between clients and developers: they can make sure non-technical needs are translated accordingly, and in the case of outsourced development, they can make sure some of the cultural issues related to hiring developers overseas are taken care of.
The Downside of Hiring Full Time Developers
Cost – Health insurance is ridiculously expensive. (We just shopped for it at Matchist, and it came to $1500/month for our CTO.) So are developers’ salaries. Unless you have a technical cofounder who is willing to take a bulk of compensation in the form of equity (considered unicorns these days), hiring a developer can be cost prohibitive.
Time – The time it will take to find the right developers and convince them to join you may be more than you think. Different from an outsourced worker who you can switch out on a project-by-project basis, a full time developer needs to be someone who is a fit from both a skill perspective and a cultural perspective. Since demand for skilled developers is so high, finding the right developer may take you away from other pressing issues with your business.
In all, my general recommendation to people who ask whether they should outsource development overseas or hire a developer is that the right answer really depends on the situation and usually is a hybrid. If someone is a technical founder who can easily relay technical requirements, judge code, and cut through the crap (pardon my French) associated with hiring outsourced workers, that may be the best solution.
Another alternative many entrepreneurs don’t consider is hiring a U.S. based freelance developer. Increasingly, talented developers are choosing the freelance lifestyle and the flexibility it promises: ability to work on a wide range of projects and opportunity to travel. These developers tend to enjoy working with startups and collaborating on cutting edge technology. They also are much cheaper than hiring someone full time and often don’t want equity.
If you’re looking for a developer, and you’re deciding whether to outsource overseas, I’d recommend asking yourself these questions:
- What am I looking for in a developer?
- How much time do I have to spend doing the search?
- Can I write comprehensive technical requirements and judge how well code is written?
- How important are collaboration and feedback to the success of my project?
- Where does cost fit into the equation?
Answering these basic questions definitely will assist you in figuring out which choice is best. Also, make sure to talk to other entrepreneurs who have chosen the different paths and ask about their outcomes. If you go this route, talk to as many people as you can, as a variety of perspectives makes way for patterns in best practices.
About the Author: Stella Fayman is CEO and cofounder of Matchist, the best place to hire top U.S. based freelance developers. She founded Matchist to help entrepreneurs connect with top developers and to help developers find projects based on their skills, experience, and interests. Stella is also cofounder of Entrepreneurs Unpluggd.