Have you ever considered outsourcing the development of your product? If you have, I’m sure you’ve come across this dilemma. What’s better - partnering up with a software agency or hiring freelance developers? There are lots of articles about the pros and cons of both solutions out there but we wanted to share how we see it, being an agency ourselves. I promise not to be biased!
Costs, rates and commission
I’m pretty sure that the first thing that pops in your mind when you think about it is the price. Yep, agencies usually charge more than freelancers because they charge commission. It ranges from 50 to 100 per cent per hour, and sometimes even more in Eastern Europe and Asia. This is what they live off. The commission obviously isn’t for nothing - agencies do a lot of work for you that you have to do yourself when you choose to go with freelancers. They pick the right people for your project requirements, they assure the quality and manage the process. Although, if you are at the stage that you need an urgent boost of developers and the budget is tight you might need to handle it on your own. If you have the required tech knowledge, time and people in your team to look for freelancers and manage the collaboration with them, this can be a very cost-effective solution for your project.
Expertise in managing software projects
Speaking of tech knowledge, it matters not only when it comes to the quality of code written by the developers but also in terms of overseeing the process of collaboration with developers and project management. Essentially even the best devs in the world won’t make your product development succeed if the project is managed poorly, there is chaos everywhere and people are wasting time not knowing what to do. This is one of the main pros of working with agencies. If you don’t have an experienced project manager or a CTO in your team with a solid tech background it can be hard to manage the work of freelancers. Planning the development of your application and preparing tasks for the developers, as well as, looking for them and verifying their skills requires time and expertise. Agencies usually have experience with many projects and probably encountered most of the problems that you are about to face in the development of your product. They’ve been there, done that, and they have a number of handy solutions to help you overcome obstacles and reach your goals. Benefiting from a dev shop’s experience can save you from learning these common development difficulties the hard way.
Risk management and commitment
Let’s look at this from a bit different perspective. When you have deadlines to release your software and you are obliged by your investors to meet them, you need a reliable solution that involves some risk management. Unexpected unfortunate events happen, one of your developers can get a better job offer and quit, or they can get sick or have an accident and not be able to work. When it is your freelance developer and it’s one of two developers building your entire product, it puts your release date at major risk to suddenly reduce the velocity by 50%.
Looking for a substitute freelancer takes time, while a dev shop is able to assign a new developer to your project with similar skillset within a few days. They usually have developers working on internal projects while they are waiting to be assigned to new clients. Agencies care about their reputation and realise that happy clients generate more clients. They take responsibility for the project, therefore they’ll do their best to make sure you get what you need and when you need it even if any sudden problems occur.
When you work with a freelancer you can agree to whatever terms of your collaboration work for the two of you. You can have a different contract with each of your developers and there is a lot of flexibility with that. If you need a full-time back-end developer and only a part-time front-end one at the start of building your product and then it changes as the work progresses, you can stay flexible, as long and you find a developer that wants to work this way. Freelancers often work on several projects at once so they don’t mind jumping from project to project when there are no tasks for them at one of them. Agencies tend to want to keep one developer on a project full-time to keep the amount of work predictable, let their devs fully focus on one app and not have to shuffle them between clients. Even though most dev shops follow the Time and Materials model, they usually have a template contract with some basic rules set by their lawyers. Some of these regulations can be very beneficial though. At The Masters we provide a one-year warranty on all the code produced by our devs, so in case of any problems, we fix them free of charge.
Within an agency, devs can help each other
Let’s go back to the quality of the code itself for a moment. Another important factor in outsourcing development is that in software houses programmers can consult each other and help one another when a tricky problem pops up. They can take a moment, go to a whiteboard, sketch it out and discuss the best available solutions with the team. The more devs there are to discuss it with, the more ideas you get access to. Freelance devs working from home don’t really have that chance and it can take them more time to research solutions on their own. This makes a difference if you pay them per hour of their work or if the project is time-sensitive. What’s more, dev shops vouch for their developers and the quality of their work. That’s why they often provide them with regular courses and workshops and an allowance to attend conferences and meet-ups to make sure they keep up-to-date with all the latest trends. Investing in the knowledge of their employees makes dev shops confident of their programmers' skills.
What’s better then?
Just like one-size-fits-all clothing never actually fits everyone, there is no ultimate all-purpose solution for boosting every company’s development. Figure out what’s the most important thing for you at the stage that your company is at. Consider whether it is low cost, resistance to risks, flexibility or the quality of code. At the end of the day you can always change your mind as the company evolves and the primary needs change.