April 25, 2017
We’re all a part of the digitization era. That means that companies which once relied on an offline business model must move it (at least partly) to the online world. Therefore more and more companies face the same struggle: Should I hire an in-house team or outsource it to a software agency?
Money is not the only factor when it comes to such a decision though. An in-house team could have a bigger picture and be more aware of the product vision. You know exactly who the people working in your team are, you avoid rotations (which are common in software agencies), and have better control over the overall quality. For example, an in-house development will work great for competitive industries, such as various SaaS platforms, where software is a core of your company. The uniqueness of the product and the technology used is usually key in gaining the edge over the competition.
You get to have a team of experts who are invested in the project, everyone’s working towards the same goal, and communication is easier when you have all your team in one place. You can adjust the development processes and customize the product according to your specific business needs.
However, in many other cases, hiring your own team might pose challenges that outweigh the gains for the company. Today, we’re going to dive deeper into this subject.
Software houses exist because of profit margin. That means an hour of outsourced developer costs more than in the case of an internal expert, right?
Well, that’s only one side of the coin. The truth is, every in-house employee generates additional expenses you cannot ignore.
From the hiring process itself to overhead costs, having an in-house team is an expensive affair. First, you need to make sure you get the people you need, with the right experience. This can only be done when you’re expert at evaluating people’s technical skills, or with the help of experienced recruiters.
When you do have a team, you obviously need to pay developers their monthly fees, whether they’re working on a specific project or not, and regardless of their productivity. When working on one project, tasks are bound to get held up between the teams, so it might be the case that one team will be waiting for the other one to finish.
And all the time, you’re facing overhead costs whenever either team is idle. The same occurs when there’s simply less work in a project, or people are off sick or on vacation, and the planned work is not getting done.
Again, this may not be a problem when your team has already gone through all the stages of the team formation (Forming, Storming, Norming, and Performing).
There are also all the employee benefits, taxes, health insurance and whatever your company offers to get the best talent. And these days, you really need to step up your game to compete with other companies in order to get – and keep – the best class IT experts.
Even when you offer really cool employee perks, you always run the risk of people just leaving your company for another one. And no wonder – according to this research, changing jobs accounts for a 10-20% pay increase, as opposed to a 3% pay rise in a steady job in 2015. And the salaries in the industry are high to begin with, with no sign of a downward trend anytime soon. It’s the developers that now have the luxury of deciding where they want to work.
Of course, the average job tenure will depend on several factors, such as location and age: The Hacker Life provides some interesting data on tech employee turnover in several locations, including the Silicon Valley area. When a team member does decide to change jobs in the middle of a crucial project, not only is your development held back, but you also need to spend extra time and money to find a new person for the team, onboard and train them.
In fact, the cost of replacing an employee earning $30,000–$50,000 a year is estimated to amount to 20% of their annual salary.
With an outsourcing partner, you also outsource those risks – and don’t have to worry about staffing yourself. That’s one giant weight off your shoulders.
To make sure you create a team that will be able to achieve the goals you set for your company, you need to get together people with all the right skills. This, of course, depends on the technology you’ll be using and the final result. The more specialists in different fields you’ll need, the bigger the team – it’s that simple.
Building such a team could take months—months you could actually spend on development itself if you decided to outsource it.
A software house’s advantage in this respect is the fact that you can work with people specialized in different areas, without the need to actually hire them. A good compromise might be to outsource some of the work you simply don’t have the resources for. Even giants with most of their development in-house, such as Google do it to keep up with the amount of work and the deadlines.
An interesting example is Buffer who decided to work as a remote (or distributed) team in 2012. They claim that step has increased their productivity (and obviously lowered the costs), while they still technically work as a team, with regular get-togethers to keep that team spirit alive.
A dev team doesn’t only mean hiring developers – it’s a much greater machine than you might initially think. To get the results you want, you really need to make sure you’re managing the process right. You can do this on your own, but if you don’t have enough experience, you’ll probably need to hire extra people to do it for you, such as scrum masters or project managers.
No matter if you go for the waterfall or agile methodology, you’ll need an established process and people in control of it. You’ll also need to adjust the existing roles within your marketing, sales, and product development departments. This will take time and mean extra costs you will incur before you actually start seeing tangible results.
This means both scaling up and down. Within the confines of an in-house team, there’s only so much you can do at a time. Expanding your project(s) means either overloading your people with work or hiring more people – and then we’re back to square one.
Same goes for scaling your projects down – as I already mentioned in point 1. The amount of work will change depending on the stage of product development and this will be reflected in the number of people you’ll need on your team. When there’s less work to be done, you still pay people the same. So your productivity plunges while the costs remain as they were. And that’s never something a business wants.
This one follows from all the above. When time is crucial, and you have few resources, you’re probably best off outsourcing to start right away and see quick results. In-house development will require an investment of time, effort, and money before you can count on the results. It might also prove less productive if not managed right (see point 4), which again will cost you money.
It doesn’t mean that you can outsource your product right away without any preparation. For some of our clients, it’s even 6 months from the first contact to the first line of code. In most cases, on the other hand, the process is shorter and typically takes 1-3 months to start development.
Of course, there are companies that do successful in-house development – including both industry giants and smaller businesses with great products. As I said in the beginning, there are multiple factors to solving the outsource vs. in-house dilemma, but mostly, this will depend on your expectations, the resources you have available, and your company’s strategy.
What are your experiences and observations when it comes to the pros and cons of in-house vs. outsourced development teams? Let us know in the comments.
Wanna hop on the IT outsourcing train?
Our devs are so communicative and diligent you’ll feel they are your in-house team. Follow the biggest enterprises' practices and choose a software development company with a track record. With 100+ projects in our portfolio, you can rest easy.