Highlighting the pros and cons of choosing an onshore freelance team versus working with a dedicated nearshore team in a software development outsourcing engagement.
A recent prospective client of ours scratched her head while deciding whether to hire a software team through an on-demand freelance website, or to search abroad for a proper company that she could use as a software development partner. Both alternatives seemed attractive to her because of the savings they promised to offer: between 30 to 100% savings when compared to hiring a reputable software development outsourcing firm onshore in the US.
But how to decide, then, between the two alternatives? Although there is no cookie-cutter answer to such a question, we've highlighted the advantages and disadvantages of each. To make the stakes more clear, we've structured our discussion using the claims of a popular freelance website dedicated to sourcing US engineers.
The freelance site claims that hiring a freelance team through their site is "30 to 50% less expensive" than hiring "their competitors" (which we surmise are other established software development firms in the US who staff their own engineers and offer their services via their own hired workforce).
- PLUS: Sites that agglutinate freelance developers can offer cheaper rates than established software development firms.This is due to the fact that, since people work from home, overhead is very light: freelance rates contain no implicit location costs, rent costs, insurance fees, training expenses, management overhead, marketing costs, etc. All the money you pay to a freelance site, minus a small commission for the "freelance website", goes directly to the engineer.
- MINUS: The benefits of the so-called "shared economy" do not apply equally to all business situations; setting up a software development team is not like ordering an Uber. If a software project is small and can be implemented by a single engineer, there are no issues in hiring a good freelance developer as the responsibility for getting things done is very clear and rests with one person, who is fully accountable for the job. However, when a project involves a team of engineers working together, different and important variables come to play that involve team dynamics. More specifically, a freelance team does not share a common company culture, does not answer to a specific corporate hierarchy, does not necessarily share a common methodology or approach to "getting things done", and does not have a clear escalation point if issues arise. Similarly, a freelance team might face trouble agreeing on a way of monitoring and following-up on a complex multifaceted project, might have issues when it comes time to claim responsibility for a mishap, might not be properly insured, and someone may even "drop the ball." Unfortunately, when these things happen, the freelance site may not be able to adequately compensate for the resulting impact on team capacity, project delay, etc.
Software development outsourcing model:
- PLUS: When we open the options to hiring a dedicated outsourcing firm abroad or offshore, choosing a structured business partner firm becomes competitive –or even less expensive—than hiring freelancers onshore. When hiring a software services company in a developing country, a company can expect to realize price savings in the range of 40 to 100% versus hiring software services with a firm that is local to the US, whether freelance or otherwise.
But hiring a company versus hiring a recently-formed group of freelance engineers comes with many additional benefits. Including the following 5 important advantages:
1. A company provides a clear and distinct corporate culture into which it hires and develops the engineers it deploys for a client.This culture imprints the project with specific behaviors pertaining to leadership and communication skills that can be instrumental to the success of an initiative
2. A company trains its engineers in specific methodological approaches that are coherent across the team, providing a common vocabulary and a minimum training standard that aids project coordination and establishes a minimum benchmark for technical solvency
3. A company feels responsible for minimizing the churn of the engineering team it assigns to a client, and is better able to manage expected or unexpected churn incidents than a sporadic team of freelancers put together by a website--the company can recruit faster, train faster, move resources around to fill a gap in a project, etc. which is harder to do for a group of chosen freelance specialists
4. A company has a clear leadership structure and escalation points should trouble arise, that is hard to mimic under a freelance scenario: because a company has a long-term reputation at stake, a company offers significant insurance and assurance and is willing to go the extra mile if something goes wrong;
5. If a project has a long-term orientation, working with a company can provide more stability to the knowledge base that is developed during the project than working with a group of freelancers (the company can generate processes and procedures to make sure the knowledge base always remains within the deployed team, even if specific resources within the team rotate. This is much harder to arrange within an environment where various freelance engineers interact, as there is no organizing principle above the freelancers that is willing to invest in knowledge perpetuation.
- Minus: As established before, overhead costs make working with an established software development company in a particular geography more expensive than working with freelance developers of comparable seniority in the same geography.
The freelance site claims as an advantage that it is "100% Onshore":
Onshore freelance site:
- Plus: An onshore software services vendor could potentially offer the power of face-to-face communication, so long as it is able to deploy engineers with enough geographical proximity to the client that in-person meetings are possible on a regular basis (and with little to no travel costs). Everything else being equal, it is hard to beat face-to-face interaction!
- Minus: However, the above only works if the onshore team is stationed in the same city or county as the client. With freelance engineers specifically, it is often the case that the team is dispersed, each engineer working from home in his or her own city and state.There is nothing wrong with this arrangement, but the "face-to-face" advantage is hampered by the fact that freelance teams tend to be more spread out, not less, than teams deployed by a specific software services firm (where engineers are usually staffed from a single physical location). All in all, "onshore proximity" is usually limited to sharing a time-zone, and should not be confused with "on-call face-to-face" proximity, which is unusual under a typical freelance scenario arranged through a website.
Software development outsourcing model:
- Plus: If the IT outsourcing firm is nearshore (say, a US client is partnering with an IT firm in Canada or Latin America) remote teams can communicate with the client real-time via Telco or chat or phone, creating an environment where agile (SCRUM) software development can thrive. When it comes to setting up an engineer team, nearshore software development is a competitive alternative to onshore freelance arrangements, both in cost and in time-zone effectiveness.
- Minus: When engaging in software development outsourcing with an offshore firm, time-zone compatibility can become an issue, especially if the time-zone difference is larger than 3 hours, as this generates a bothersome lag in communication that –in our experience— can slow a project down by at least by 30% and make agile (SCRUM) software development close to impossible.
The freelance site claims they have a deep bench and hence are able to find talent in 1 or 2 weeks, rather than having the client wait 60 to 90 days to find senior software engineers.
Onshore freelance site:
- Plus: It is reasonable to believe that a freelance website can staff new candidates to a project faster than a software services company can, given that the "friction" of adding an extra resource to the talent pool is so low. This is due to the fact that the freelance site, if professional, will screen its candidates for technical prowess, but is probably more lenient when it comes time to gauge cultural compatibility, past history of success, etc. since they are not assuming the cost of hiring the resource, but are simply signing him or her up as a freelance collaborator. Thus, it is not surprising to find freelance sites with thousands of available candidates in their talent pool.
- Minus: If your project has a short-term horizon, going freelance can be a good choice. However, if your project has a long-term horizon –i.e. you want to develop an application and then continue to enhance or maintain it, going freelance incorporates risks that need to be factored in. For one, freelance engineers have self-selected their modus operandi because they tend to like variety and the freedom to choose their own schedules, so do not be surprised if they suddenly decide to take a sabbatical and not continue with your project. Alternately, they may simply decide to stop at a certain point in the project because they want to seek a different challenge or technology, or they may take on too much work because they are short of cash, and end up spreading themselves too thin. Furthermore, it is more difficult to gain assurance that a freelance engineer –or a group of freelance engineers—are indeed dedicating 100% (or whatever % of their time you have hired) to your project, as they are self-reporting their time commitments. And, within the context of a long-term initiative, once you lose a freelance engineer, all the knowledge learned throughout the project goes with him or her, as it would be difficult to have that person train other resources to continue their job.
Software development outsourcing model:
- Plus: As mentioned previously, because software engineering firms have a reputation at stake, when they deploy a team of engineers they will make sure that the team is able to deliver to the standard of their value proposition. If the team doesn't, the good firms will change the team and not charge the client until the team does deliver. In contrast, it is hard for a freelance "company" to monitor and control a value proposition via the arms-length relationships it establishes with freelance engineers. Furthermore, the stability of a team –once established—is ostensibly better within the environment of a software development outsourcing firm than it is within the more fragile "arrangement" of a group of freelancers working together. This is not to say the outsourced software development outsourcing company will not experience churn, but rather to say that the company will be able to deal with the churn it experiences in a more effective manner, being able to recruit and replace talent that is similar in culture, technical chops and methodological approach than that which left the team.
- Minus: Companies that deploy their own employees are incentivized to keep everybody busy. Hence, they will undoubtedly take more time to build-up a team of resources to deploy for your project (as they will need to either reshuffle internal initiatives or hire additional people outside the firm to staff a new team). In our experience, it is common for a sizable software development firm (say one with more than 250 engineers) to take 4 to 8 weeks to staff a team of 8 to 12 dedicated engineers for a client. Furthermore, while freelance sites can be very flexible in the technologies they offer, outsourced software development outsourcing firms need to be very judicious in deciding what they specialize in, and –if they are professional—will keep their offerings within their field of expertise alone.
- Freelancing works well for small projects with a limited time duration.The larger the project and the longer-term horizon of an initiative, the riskier it is to seek savings under a freelance arrangement. Under the latter, freelancing –whether onshore or offshore—faces churn challenges, team monitoring challenges, performance accountability challenges, and knowledge-perpetuation challenges that are hard to solve unless a corporate umbrella exists that is willing to invest in mitigating such risks.
- Freelancing onshore does produce savings of 30 to 50% versus hiring onshore engineering firms. However, those savings can also be accrued –and oftentimes they can be increased-- if a client explores partnering with reputable offshore or nearshore firms in developing countries (preferably firms located nearshore in Canada or Latin America, in order to enhance communication via an adequate time-zone overlap).
- Freelancing can produce highly capable specialists quickly. However, the freelancing model is more ephemeral and does not provide the cohesiveness of culture, team monitoring and performance that a corporate environment imprints on a software engineering team. If you are seeking to develop a Line of Business application on which your company will hinge, be careful with the transience of freelancers: they can be a good model for solving a specific short term need, but they are fickle when it comes to maintaining an application for the long term!