Pros, cons and alternative solutions
Having a great idea for an app? Done. Having it all thought through, preparing the business plan, setting measurable goals? ? Done. Finding people to work in your startup and make your product done?
If you are thinking about growing your in-house team, there are a few things that you should consider before you start the recruitment process.
Pros of growing an in-house development team
Having an in-house team of talented developers with great experience is really tempting and at some point it may seem to be the best possible option to get your product done. It appears to be safer than outsourcing because you have control over the whole project. You know what your employees work on and can react fast if they encounter any problems. As you work in the same office, meet your team every day and talk to them anytime you want, you have awesome communication flow. Moreover, you know that your data is safe and that you don’t have to worry about security issues.
Unfortunately, the cons may mask the pros. Having an in-house team of talented developers with great experience can turn out to be just as tempting, as it is risky.
Cons of growing an in-house development team
1. It’s hard to hire developers
The first thing you need to realize before growing your in-house team of developers is that you are not the only one who is looking for good developers right now. In fact, the demand for specialists from the IT sector has been growing invariably for the past few years and is not expected to stop or even to slow down. As it’s relatively easy to find junior developers, finding someone who can lead them is quite a challenge.
The idea of growing an in-house team means that you will need not only to reach those developers but also convince them to work for you. And it all takes time! Which leads us to another risk of growing an in-house team:
2. Time-to-market is getting longer
The time you lose on the recruitment process is just the beginning. Once you have your team, you need them to know each other, learn their strengths, know how to work with each other, work out some procedures etc. If you develop some product as a startup, you need it to go to the market fast. Time-to-market is crucial to your success. When you decide to build your in-house team, you need to know that it will take you months. And the longer you don’t sell your product, the longer it’s not making money. Speaking about money…
3. The list of expenses is getting longer
If you decide to grow an in-house team, you will need to rent an office that will fit all of you (preferably in a good location, close to the city center), buy some furniture and all the equipment. It’s a one-time expenditure but it won’t bring you any closer to having your product done.
4. The cost of hiring developers is higher
This applies especially if you are growing your startup in the US or in Western Europe. If you compare an average salary of a senior developer there with the average salary of a developer of the same level in Eastern Europe, you will see the difference. According to PayScale, it’s over 2 times cheaper to hire a software engineer in Poland that to hire one in Germany. (Source: Overcoming challenges for start-ups by integrating eastern and western ecosystems)
5. The demand for developers may change dynamically during the project
One month you will need 4 developers, next month you will need 7, then only 5. Having only the “secure” number of developers is (again!) longer time-to-market. And if you want to react to this changing demand, you need to hire or fire people which is generally not good for the team. Your developers may feel insecure and look for a different job, and even if they don’t, you will waste more time and money on the recruitment process. Every newcomer in the team requires proper onboarding and also means introducing new habits and ideas into the process.
Good news is that you don’t have to build your development team at the very beginning of your project. You can do it later, once you have your prototype or MVP and start – and it will be much easier then! Let’s now go through the possible alternatives to growing your in-house team:
Growing a remote team
Growing remote teams solves the problem of having office space and significantly reduces the problem with equipment. It also facilitates the problem of recruitment, as you get access to developers from all over the world. And, what seems to be the most important, it lowers the cost of growing your team. The possibility to work with people from cheaper regions of the world is a good chance to save some money. Then, you can put it into your marketing efforts or growing your team and going to the market faster.
Unfortunately, it doesn’t solve the problem of “making the team a team”. No matter if they work in one office or not, they need to know each other’s competence before they start working together. It also leaves you with the problem of changing demand for people over the project lifecycle. When you need an extra developer, you will need to find and hire him, and when you don’t need him anymore – you will have to fire him.
Badly, it also adds some more problems. As awesome communication flow was the main advantage of having an in-house team, it can become really tricky when running a remote team. Especially if your employees are from different parts of the world and they work in different hours.
Another possible option of developing your product without growing an in-house team is to outsource. The first advantage of this solution is that you don’t need to spend your time on the recruitment. Of course, you need some time to do your research to find a software development company that fits you best. The good thing is that you do it only once – compared to looking for a few people to work with, it’s still a win. And as you are not limited to the area you live in, you can reduce the cost by choosing a company from the country with lower average salaries. Just like in the case of growing a remote team. (My recommendation: Poland. And here is why it’s one of the best places to outsource your software development.) Also, you don’t need any extra time for your developers to start working as a team because they already do! And they are ready to start working on your project right after they get the requirements.
Another advantage is that you don’t need to worry about extra expenditures (like the rent of an office space or equipment) or about changing demand for developers. If you don’t need one in your project for some time, he will be simply moved to a different project.
Last but not least, as you have one contact person on the side of your contractor, the communication flow is much easier than when working with a remote team. And if you choose the company to work with wisely, making sure that you will have access to all the project files during the project, you don’t have to worry about losing control.
Does outsourcing have any disadvantages then? To be honest: yes. You shouldn’t choose a company from the country with time zone difference longer than 8 hours as it may cause some communication problems – one of you will be forced to work after hours. And if you happen to work with a company that doesn’t care about the quality of the delivered product, it will be difficult to scale. Fortunately, both these risks can be easily mitigated if you know how to choose an outsourcing company to work with and how to get on a project with one.