As the cost and demand for high-quality developers are higher than ever before, startups need to be creative to expand their development teams, and hiring offshore employees is one way to accomplish that. Such a move has its perks and its challenges. Let's discuss what they are.
There is a known ritual amongst computer science students, when at the end of their first and second year of studies, big companies (like FAANG) come to universities to interview students as upcoming new talent, to hire them as interns or for student positions.
Many second-tier students– those who aren't strong enough to make it with the big companies– will find their first job at a startup company. Those left behind will have no choice but to work for big software development houses to get some much-needed experience to eventually pivot to the big leagues.
What makes me bring this up?
You need to make sure that any employee that you hire will be able to work on your company’s projects and work on them well. The better talent is typically chosen by bigger, more well-known companies, with teams of more than 20 employees. That means, if you're a startup, it will take some time before you reach the level of hiring the best, straight off the bat.
It is also important to note the quality of employees you will get if you choose to hire from a software development house, which normally has over 500 offshore developers, or a boutique agency, which will focus on their potential hires more, and thus give you a better outcome. Yes, scaling up a company is challenging, but the foundation of doing so cannot be done by cutting corners. You cannot scale up your startup by only employing people from an outsource company as your working power. Would you ever invest in a restaurant without a core team of chefs? The answer is no because having a fundamental team will be the backbone of your company; make sure any heavy lifting will be done by your team, not those who you outsource from software development houses. If you know how to code overview and have code policies as part of the company culture, your life will be much easier. Remember, offshore or software development houses cannot replace a CTO!
Offshore developers' prices are much more ‘startup friendly’ but be sure to ask if their price includes indirect expenses such as office space and equipment. Remember that the price you pay includes social benefits and is significantly cheaper than directly hiring new talent in most cases.
For example, the average monthly salary for a Java developer with 4 years of experience in Ukraine should range between $3000- $5000, whereas in the U.S. and Israel it ranges between $7000 and $8000 (without social benefits)
A good question to ask is whether this price includes a dedicated employee. It seems reasonable to me that it should, but doing your due diligence is important! Even if it's cheaper, it isn't worth it if your employee doesn't get the job done.
When working with a software house that provides you with your offshore developers, they will try to bombard you with any additional fees for any changes. For example, logically, during the development process, you will realize that you need more features included in the code. Since you are paying these offshore software developers by the hour, any “change request” will come with additional fees from the software house. They know it would cost you way more to hire a new agency to do that additional work, so will keep that in mind when charging you.
A good way to avoid these incidents is by hiring workers on a project-based basis rather than by the hour. For all projects, make sure you have an Acceptance Test Plan that outlines the project carefully so that you know once each task is completed, so is the project.
Intellectual property (IP)
Make sure you own the IP! When you go through the technical due diligence process, you will be asked to check that you haven't broken any open-source licensing agreements. So, before cutting corners and using tempting open-source solutions, please make sure you review their terms.
This kind of situation happened to me once, so learn from my mistakes. At the time, I found some "copy-paste" code from another project used in mine. Clearly, the developers cut corners and used code from a different project to make their lives easier, while not realizing the potential consequences of such an action. This type of work can lead to a slew of legal issues, so it's best to stay clear of it to begin with.
The bus test!
Imagine that you have a Guro developer who wrote the code for your project all by herself. But what would happen if she (God forbid) got hit by a bus? How will your project be affected?
Documenting the code– adding explanatory notes to it– is therefore extremely important! Once you add more developers to a project, you’ll want to have code that is easy to read so that they can "jump right in''. Making sure the code is written correctly with clear documentation seems like an obvious suggestion, but you would be surprised at how many employers don't prioritize making a project ‘object-oriented’ with legible comments. I once had a programmer on my team that used Hebrew words in his comments instead of English ones. No other employee will be able to understand it unless they are a native Hebrew speaker, including all my offshore hires. Now, imagine the opposite– imagine that my offshore employees made comments in their native language, be it Chinese, Russian, or Spanish– no one from my company, myself included, would be able to understand the code because of it.
The code language you choose for your company to use in its products should not be esoteric. If they aren’t and if you have questions, they aren't easy to find on "Google '' and most likely won't have a substantial developer community to chime in and help. So, make sure to choose the language you use wisely.
Try to choose languages with alive and diverse community support– more popular languages. A language without video tutorials, articles, examples of real applications, and the opportunity to ask the community a question will result in very slow progress. It will also be challenging to find employees that know that language, or time consuming to train any new employees to use it. Trust me, you don't want to even try to find a developer who knows Bash– it will be a painful feat.
Your project is working - how cool is that? Awesome! You have a perfect project that is running smoothly, but the second you try to use it practically, the servers crash!
To avoid this, be sure to work with a reliable server provider and make sure your testing plan includes a scalable solution. I strongly recommend using reliable servers and ensuring that the server provider architecture is the right one for your project. For example, in Amazon servers, ensure that the additional services, for instance, AWS S3, are appropriate for your project before you start working with that specific provider!
To conclude, there are many paths you may choose for your new venture, and your team is one of the most important moving parts of the startup machine. Make sure you are picking the right team and asking all the right questions. Never compromise on the quality of your team!
Written by Hanan Lipskin, founder and CBO of Keepers Child Safety