With the demand for tech talent at an all-time high, many companies are looking to expand their hiring pool by searching outside of their local area, which has been one of the major reasons for the expansion of the outsourcing industry. For those looking to take advantage of global talent, an important question is whether to hire individual freelancers or to seek an agency with which to set up a more formal collaboration.
A lot of the CTO’s and tech leads that I speak with look cautiously at working with agencies, believing that they are unnecessarily expensive compared to individual freelancers - after all, an agency has overhead to consider, and why should you pay for another company’s HR staff or administrative costs when you could just hire directly? In fact, there’s a fair amount of pros and cons with hiring freelancers over agencies, which I’d like to address in this post.
Now obviously I’m fairly biased - being an employee of a software development company, I clearly lean towards giving preference to agencies. But prior to working at Binary Studio, I was a freelancer for nearly four years, and also hired freelancers for individual projects during that time. I can tell you with sincerity that there are times when one of the options will be more suited to your project than the other. Let’s take a look at the factors and compare both models one by one:
Raw Costs
If you are looking at strictly the dollar figure you will spend to employ a developer, freelancers will win out almost every time against agencies. The reason is simple - overhead! Freelancers have no major overhead costs that they need to consider when quoting you a price.
Agencies, on the other hand, need to pay for office space, administrators, managers, marketing, accounting, HR staff, and all the rest. That stuff costs money and is added to the total cost of hiring an agency to help you with your project. This is why when you are given two equally talented developers to choose from, the individual freelancer will almost certainly be cheaper than the agency-employed one.
Hidden Costs
However, once you start considering the hidden costs of recruiting freelancers, the scales tip a bit. Firstly, you need to consider the time, energy, and money spent on recruitment. Hiring good developers over the internet is an exhausting process, and a much different process compared to hiring in house staff. If your project aims to grow and you anticipate expanding your development team, you are going to need to go through the recruitment process every time you seek to add a new member.
Not to mention the setbacks you will have when one of your original freelancers gets tired or decides to work on a different project, in which case you will need to employ your own HR/recruitment staff to find a suitable replacement. Then the question becomes: is it worth paying the outsourcing development team to handle that for you, or to bear that burden yourself?
Also worth noting is that each freelancer is going to have to do their own accounting, marketing, and workspace. Naturally, they will work that into the cost of their salary. However, that is time and resources spent on work that is not software development, so in a way, you are going to be paying for that twice as you are losing valuable development time from your programmer and paying him to do stuff which isn’t programming related. Ouch!
Very Specific Requirements
A lot of companies look for employees who fit their very particular idea of the ideal candidate. If your project requires a technical person with a strong background in something non-technical, for example, then you might be better suited for a custom-tailored freelancer who has experience with that subject.
Let’s say you are looking for a developer who is also an amateur musician to help you work on your music recording app. Someone with a strong technical background but no interest in music production is probably not going to appeal to you!
I will tell you now that agencies generally don’t have the qualifications to find these “unicorn” developers - they may have strong standards for technical and communication skills, but they will be hard-pressed to find such a specific person for you. You might get lucky and find a team that has worked on a similar project, but not necessarily one that is filled with music recording enthusiasts - that would be a rare unicorn indeed!
Here’s another example from personal experience - let’s say you need a native Russian speaker who is living in low-cost Eastern Europe but will work and be on call during Pacific Standard daytime. Eastern European agencies will have a hard time advertising for such a position (“Looking for a skilled developer who is also a vampire willing to work graveyard shifts!”) and will be hesitant to hire someone for such a specific role, but there will always be some individual freelancers who will rise to the challenge and work with your specific requirements.
That being said, if you come across an agency that has done a project which fits closely to what you are looking to do, you can draw from their previous experience, perhaps even more so than from an individual freelancer. Agencies work together in teams, and even though some developers might be working on different projects, they all eat in the same kitchen and share their problems and solutions with each other. This can also bring fresh ideas to the table which you wouldn’t normally get from a single freelancer, or provide quick answers to problems which a single freelancer might spend a long time clearing up due to his lack of support network.
Working Relationship
This is somewhat of a toss-up - you can have good working relationships with both freelancers and agencies, but they certainly differ a bit in their nature.
Freelancers by definition are non-committal - they work for a set period of time and then are expected to go their own way when one or both parties see fit to end the contract. Many freelancers are so by choice because they don’t want to get stuck in a long-term project that will become mundane and boring after the first few months. Others prefer to keep their options open, dabbling in a variety of different tech stacks and platforms to buff up their portfolio, build references, and eventually demand a higher salary.
Granted, you can hire on the freelancer as a full-time employee, but then you run into the problem of providing all that overhead and commitment yourself, which may not fit into your budget or business plan. Still, you can develop a close, albeit short-term relationship with a freelancer which may very well end up becoming a long-term engagement if the project pans out and your circumstances allow it.
Meanwhile, working with agencies is a very different matter. They will always be interested in your project and continuing collaboration, assuming their business model doesn’t change drastically out of the blue. Although individual developers may come and go, the company will always try and put forth a suitable replacement in order to keep doing business with you.
This accommodates very long-term relationships as the company will have a vested interest in staying with you, since they won’t get bored or tired of the project, and they will try to do everything in their power to keep you satisfied. Freelancers, on the other hand, will be happy to leave if they feel they’ve outgrown the project or can get more money elsewhere.
Accountability
This is an area where I believe the agency wins, hands down. Making sure there is a third party between the client and developer to ensure the programming team is keeping up on their side of the bargain is one of the greatest strengths of hiring an agency to work on a project. They can keep track of the hours, quality, and feedback from the client in order to make sure everything is completed to standard.
For particularly complex products, it’s absolutely crucial to have this accountability in place, otherwise, you are going to waste a lot of time checking in on your freelancers to see whether they are doing everything the way you want it done. It’s a lot easier to go through one project manager who is overseeing a team of developers in his own office than it is to individually check in with several different freelancers, each with their conflicting interests and projects that they are worried about.
Another thing to consider is that when a freelancer drops a project, they cause a huge disruption among the remaining team that an agency can cope with much better. Integrating a new freelancer into a project is difficult - if it happens too much, people will lose the feeling of project ownership and obligation to produce a high-quality product. Worst-case scenario - enough freelancers will jump ship that it causes the rest of the team to abandon the project as they lose hope that it will ever be finished!
This is why all big projects with 10-20+ person development teams either work in-house or hire an agency. Freelancers are just too fickle to manage at that level, and hiring an agency to handle the internal management will inevitably be worth the extra overhead when compared to managing a group of freelancers.
Even smaller projects can benefit from this added level of accountability. If you don’t have a tech background and hire an individual person to create an app for you, it’s going to be your word against his if the product doesn’t turn out the way you want. The freelancer can always be content with walking away and finding another project to work on, as he’s already been paid - and you will be the one stuck with the costs!
However, a good, reputable agency will go out of their way to communicate things between you and the development team, and will not hesitate to replace personnel if something goes wrong and standards are not being met. People get sick, family emergencies happen - and an agency will cope with this for you as opposed to leaving you high and dry with an unfinished project. This added level of security is one of the greatest reasons to consider hiring an agency over a freelancer.
Conclusion
Depending on the size, scope, and requirements for your project, both freelancers and agencies can provide you the tech talent necessary to get your product on the market in a timely and efficient manner. Just bear in mind the advantages and disadvantages of both and make sure to choose the one most suitable to the task at hand:
- If the task is small enough to be handled by one person quickly and you don’t expect that you’ll never need to grow your team, or you need a niche specialist and the risk is manageable - a freelancer may be your best bet.
- If the project is complex and requires efficient teamwork, you are most likely better off with an agency.
- If you don’t have previous experience managing freelancers, don’t assume that it is going to be an easy thing that you will learn on the fly - you’re going to have a lot of headaches which you need to be ready to cope with.
- If you need a backup plan in case the freelancer cannot cope, consider finding an agency that can provide you with an alternative if things go sour.