Recently we’ve been asked if we could find an application developer for an external company. Since the scale of the project is small, the investor was looking for a separate specialist to bring his idea to life. At that moment he did not consider an outsourcing team. But what is the best way to offer an investor in such a situation? What are the pros and cons of working with an in-house developer and an outsourcing team? After all, different cases require different solutions.
Therefore, for a complete picture, we’ve decided to describe three different cases, so that everyone can draw their own conclusions and use the most suitable option for themselves in the future! So we propose to divide our cases according to their budgets and tasks.
First case. The development budget is $ 10-30 k. Development time: from three months to a year
Let’s say that you are an investor with no technical background, and you have your own idea of the application you want to create. And you either have no development experience at all or no experience with the technology you need.
The very first, and most important task is to find a developer. What difficulties you will face in finding a qualified employee:
· Labor market. It is very difficult to find good developers right now. IT-market has a huge demand: salaries are rising, but the qualifications of developers remain the same. If you have a startup and the development process is short, it will be difficult to interest the developer. Right now everyone wants to have a usual comfort, some “goodies”, a cool team, and of course, career prospects.
· High salary. Of course, people are ready to implement a great idea, but money talk is still on. Sometimes, in order to attract a specialist, the only way out is to offer a salary higher than the market range is, and this is really a large amount. But a specialist with a high salary still is not a real guarantee of a quality result.
· The lack of expertise in the process of the selection of a candidate. You need to check the level of a specialist and understand whether he will be able to implement your idea. With the absence of a technical background, this will probably be impossible to do. This is a big problem because checking only on the soft skills is not enough.
So let’s imagine you’ve interviewed and found a specialist. There are still risks that can arise in the process:
- This is life, and you can simply dislike the developer as a person, or will not see the desired result in the desired time frame. And you’ll have to look for someone new again.
- The developer can leave on his own (to another company/team), and when you find a new one, you will hear that everything needs to be rewritten. And there is nothing to be done about it, because, perhaps, the first developer wrote everything well, and the second one is not experienced enough. Or maybe the first one really wrote the code badly, and the second one is more fortunate. Or the first one used the wrong architectural approaches, and the second one does not know how to work with it. Those can be common cases, but the outcome is always unpleasant because everything needs to be redone.
What about the advantages of working with a developer here?
o There is a chance that an on-staff employee can be cheaper than an outsource team (in case you are tech-savvy and can control it yourself).
o If you theoretically avoid the risks we’ve mentioned above, you will save money, but, talking from the experience, this rarely happens. And are those savings worth the guarantee that you will definitely create this app or game?
Now let’s see what are the advantages of working with an outsourcing company:
o an outsourcing company takes full responsibility for the development (if you need to change the developer, they are in charge of it, not you);
o inside the company there are people who are familiar with the required technology, and there is always an opportunity to consult with colleagues and find out how to finish a particular task;
o money/risk ratio; very often outsourcing companies offer a middle-developer for work (who makes 70% of the application), but at some points, he needs the help of a senior. In this case, the check for the services of the company can be much lower (for example, middle dev will cost $ 4000 and a supervisor from the company another $ 1000, while a great full-time developer will cost $ 6000-6500 per month). Also if the developer is controlled by someone experienced, the risks that he will do something wrong are reduced;
o outsourcing companies value their reputation, they have other clients, reviews, and the company will not leave you for no reason;
o you can take a break in working with them (to search for investments, and so on).
Second case. The budget is $ 150-300 k. Development duration: 2-3 years
Let’s think you already have the budget to develop a full version of the product, which means working on it for up to three years. When you are planning this process for several years in advance, it is important to have your own team. Having it in the future makes it possible to have more sale valuations and brings more investors’ interest.
If you have the time and budget, you automatically have something to offer the developer. This is stability, and a startup spirit (attract people by the fact that they will be not only developers but also active participants in the creation of a project/company, possibly even partners).
The only thing you cannot offer here is professional growth. And as the market still remains tough, it will be difficult to find a developer too. At the same time, all the previous risks have not disappeared, although some difficulties have slightly diminished.
Therefore, it would be better here to start building a team in partnership with an outsourcing company, gradually looking for their own people to join the staff. This way you will always have multiple points of control:
· people in your company who will watch what the outsourcers are doing;
· feedback from outsourcers about the person you hired on the staff;
· gradual transition of the project entirely to the in-house team.
Thus, it creates an ideal case: you eliminate estimating problems, you stimulate both teams to write clean code, and the developer communicates with the others. Thanks to this, the working terms become more understandable, as well as the scaling process itself.
Third case. Your own team and company
Let’s imagine that in this case you already have your own product company, which employs from 10 to 100 people. And is there any point in cooperating with an outsourcing company in this case? Here are the reasons to explain why there is:
1. Fast scaling. Basically, any company that grows and scales faces similar problems. For example, you received investment and you need to create more features, for this you need more developers. And the labor market comes here again. You’ll need to look for developers, but there are very few of them available. Therefore, an outsourcing company will help you scale more rapidly: make some features faster and move faster with the product itself. And we know that from the point of view of the product, the winner is not the one who saved $10 k on the development, but the one who was the first to appear on the market.
2. New practices. The company often has its own well-established working techniques: how you write the code, how you structure and manage the project. And often they are formed historically: from the first employee and after it goes just like a snowball. If the budget of the company is small, then often junior developers establish those techniques. Or even in the best possible scenario – if you have great developers from the very beginning, there is always some room for growth and improvement.
By partnering with an outsourcing company, you can rely on their expertise and learn a lot. It is very likely that they have already implemented something that you have not yet covered. In doing so, they will create features much faster than your internal team can. You also get all the same advantages as in the previous version, when in-house and outside developers will stimulate each other because let’s be honest, that’s how it works.
But if you have no budget at all or you still have decided to find a separate specialist, you should pay attention to such important things:
1. Learn about their experience. To do this, you should call the companies where he/she worked, look at his previous projects, ask for feedback. Remember that technically you are taking a pig in a poke, so it is a must to create such research.
2. Do not be quick to make a job offer. Now the market is very overheated, and middle-level developers who earned $ 2,000 can go all-in and ask for $ 6,000. Therefore, sometimes the high salary requirement of a developer does not speak of its quality. Check everything again and again!
3. Engage a technician who can help you with an interview. If you have no technical background at all, this method works best. From your independent consultant, you will find out if the vacant developer is worth the fee he is asking for, and you will have a better understanding of what kind of specialist he/she is.
Let’s say you decided to hire an in-house developer! But how do you measure the effectiveness of his work if you don’t have a technical background? This is a really difficult task. But here are some tips that might help:
· If you like or dislike the way, the app/game looks like is already a significant indicator;
· You can also (as in the case with the interview) hire independent consultants to understand if everything is good with the technical part (even outsourcing companies provide such a service);
· Ask a developer to prescribe all his tasks and try to control the timeliness of their implementation;
· Attract external forces if you have constant fuckups with estimates (this is a sure sign that something is going wrong);
· Pay attention to another red flag – the presence of many bugs as an ongoing basis;
· It is advisable to receive a code/project review and validation from external consultants at least during the first six months.
But still, even these moments do not guarantee you that a developer will be a great employee and won’t fuckup the project and leave you with nothing at some point. Be careful not to get caught by a developer who may deliberately create an unscrupulous product in order to simply make more money. Remember that saving here is illusory that can come out pretty badly.
Having described the pros and cons of all situations, we would like to give our own recommendations for each of the cases:
A very small budget: when you simply do not have enough budget for an outsourcing company or for an expensive specialist, then try to get at least technical advice first. It would be very helpful to hire another freelancer or company to conduct a technical interview, have a chat with the person, find out about them, their past job, and etc.
There is a budget and you can afford a good specialist or an outsourcing team. Our recommendation here is to hire outsourcers because it neutralizes the biggest risks, and, most likely, the budget for their work will be either the same or even less. And you will get more flexibility in this case: for instance, you can stop the process for a couple of months, look for investors, and so on.
Big budget and fast-growing company. Start building your internal team, and you will only get advantages here. But use outsourcing for different tasks, so you create healthy competition between the internal and external teams, which only makes everyone grow.
If you are a strong, established company, then it makes a better financial deal to delegate development to an outsourcing company, because they give you strong guarantees. And you will get the same healthy competition between developers and avoid a lot of unnecessary risks.
In any case, what to do here is only your choice. We hope our recommendations were valuable and you will get all your dream projects done in the best possible way.