Should We Outsource Development, or Hire an In-House Team?
Jon Mifsud · 26 Jan 2017Most companies, at one point or another, ask this very question - should we hire, or outsource? This article is an attempt to highlight the differences between the two so that you, the project manager, can make an informed decision which you a fully comfortable with.
A Balance of Time and Budget
First things first - your primary concern will most likely be the cost. Agencies tend to be more expensive than freelancers, which are in turn more expensive than hiring an employee. At least, that’s what it looks like on paper, if you are working by hourly billing.
However, the choice is rarely that simple. A website, or a web application, can be fairly complex and, in most cases, will require a specific skill set. An agency or a freelancer, with their partners, can easily supply this. Whilst jack of all trades (i.e. individuals who can singularly design, develop, even market your website) exist, they are very few and far between, and most of them would happen to be unavailable. Therefore, that would mean that for a high-quality job, you might need to hire multiple individuals to cover the different roles.
Let’s go back one step. What budget and timelines do you have at your disposal? Yes, they are very important! A rush job will, in most cases, cost more - resources would have to be freed up to accommodate the request. Additionally, a large agency would have more resources, so more team members can work on your project simultaneously, reducing the time you need to wait. If your timeline and project are relatively short, that takes out the in-house option - recruitment can take a significant amount of time and, regardless of your budget, keeping someone on a salary with little or no day-to-day work after your website is published is a waste of resources. If your budget is on the small side, a smaller agency or freelancer might be in a better position to help, due to reduced overheads.
Don’t Forget Experience
By now, you should have a good idea of where you should be leaning. However, there is something equally important that you might have to consider - experience. Regardless of whether you choose an agency or an in-house developer to lead your project, you need to make sure they have the necessary experience, that they would ideally have dealt with similar projects or worked in similar environments.
Remember that hiring a junior is a little bit of a risk; first estimates tend to be fairly inaccurate and, should there be a serious problem they encounter, they will have nobody to count on to help them get the job done. From our personal experience, a junior can easily waste hours researching, trying to fix a bug, whereas a more experienced developer would have pointed out that same issue in a few minutes.
This also relates to options of technology. Agencies and freelancers tend to have their preferred technology stack, a way to maintain and update their code as well as lodging and tracking issues. All of these would need to be set up for your own in-house team if you decide to go that way. Keep in mind that technology can have a significant impact on server costs and licensing requirements for your staff, so it’s important to ask what their stack and required software looks like.
Bring Out the Contract
That pretty much looks into the various aspects one should consider when choosing between hiring an in-house team or outsourcing the project. One last point - your contract structure. When hiring in-house, you are paying a fixed salary for the employee to turn up for their 8 hours a day. When you sign a contract with an agency or freelancer, there are different options - not everyone might work in the same way. The three most common methods are:
1. Hourly pricing
This method usually involves an initial estimate which does not tie into the final price. You are billed on a bi-weekly or monthly basis, the actual number of hours billed may vary, and if not properly managed this will end in a spend much larger than originally anticipated. However, it allows you to quite easily increase and change the scope of the work.
2. Fixed pricing
This might involve a research phase, possibly with a fee, before the actual project starts. Then a quote would be provided, detailing all the work which needs to be done. This scope document defines your expectations and what that agency (or freelancer) is going to deliver. Anything over and above is usually placed out of scope, requiring a new work order or scope change. This, too, tends to come as a fixed cost. On the plus side, you’ll know exactly how much the work is going to cost, and what you will get in the end.
3. Retainers
This is usually part of a maintenance agreement once your website is up. However, we have at times been approached on retainers, particularly to consult and support companies who are developing in-house, or on the basis of an agreement which guarantees that we are allocating a specific amount of resources on a monthly basis to the particular company or project.
Lastly, it’s important that whoever you get to do the job is able to support you after the website goes up. You’ll also need to know the costs of such support, be it on a retainer or as-need basis. If you are looking to hire someone in-house, make sure that they can provide you with local contacts that can work with that particular application stack. You don’t want to get stuck should that in-house developer become unavailable.
Did you ever have to make such a decision? What didn’t you do, and are you happy with the decision you took? If you are still doing your research, we do hope this article shed some much needed light.