In an ideal world, your initial founding team would consist of a highly experienced full stack engineer, a product visionary and someone with business acumen. As life doesn’t always hand out the perfect situation on a silver platter, we sometimes have to take alternative routes to achieve our wildest goals. That’s why sometimes we outsource. Yeah you heard me. I said it.
I consider myself more of a business guy but with an ever-growing technical and product knowledge base. I’m learning to code but I currently have the technical ability of a 12 year old. I can tell you for sure that I didn’t code this website. Taking that into account, over the past few years I’ve hired in-house developers, as well as outsourced, and have had mixed experiences doing both. Here is where I explain the down-and-dirty of each…
Why Outsource Development Work?
Labour costs – one of the biggest upsides to outsourcing is the potential to reduce labour costs. It’s a simple formula: if you can find the same level of talent working remotely but at a fraction of the price, you can direct more cash towards building a more dynamic product and also to other areas of the business. Though, it’s generally true that if the costs match, then having an in house developer is better in the long term.
I’ve had experience working with developers from India, Eastern Europe, Germany and also here in Spain and although the performance has varied considerably, the hourly rates have all cost significantly less than it would to have a full time developer in house.
Project specific hires – it’s not easy to find a “unicorn”, the mythical creature that can do anything and everything, front-end, back-end, mobile, the mambo and so forth. It’s more than likely that you will find yourself in a situation where you need an extra expert; possibly some extra front-end work doing, a mobile app and the like but you don’t necessarily have the need (or funds) to employ someone full time for these tasks. Most good outsourcing firms (unless you choose an individual) have a pool of talent with varying skill sets giving you the opportunity to source what you need for certain timeframes instead of having to assume the behemoth costs of employing that extra someone special.
Office politics – working in a bustling startup office can be distracting, especially when people don’t respect the productivity processes put in place. More than anyone, developers are the group whose productivity can be most severely affected by interruptions in the workplace. It can be beneficial to have someone out of the office, head in the books on your project without any external distractions (assuming they don’t have their own office distractions or episodes of “Silicon Valleys most hot and famous” to watch).
The Benefits Of Having Someone In House
Shared vision – a co-founder with a share in the company or a full time developer with vested options who both share the vision of the company and live the daily culture are much more committed than a freelance developer whose main priority is maintaining his or her client base. When outsourcing, you pay for the hours done. You think they really care about putting in the extra work if they aren’t getting paid for it? Having someone vested in the long-term vision of the company is a powerful resource, someone entrepreneurial minded who wants to build something that will change peoples lives and who will do what ever it takes to make it happen.
At the same time– an in-house developer is living and breathing your culture, experiencing the day-to-day of startup life. Being in the same office and the same meetings facilitates the individual to understand the same business objectives and challenges enabling them to create product better fit for the end user. In house engineers can connect more easily with other departments, grasp how things are moving and react with agility increasing the chances of achieving said business objectives.
Challenges With Outsourcing Development Work
Quality – I’ve come across some atrocious and some outstanding developers through outsourcing. My technical knowledge when I first started hiring developers was pretty limited so I learnt the hard and stressful way. Given the wonderful resources on the ol’ World Wide Web, I’ve managed to put together a more effective process for interviewing developers. Given that my coding ability is extremely basic I always do this in collaboration with our CTO. Believe me, finding someone who is capable of doing the work you need doing can be harder than it seems.
It’s essential to be very explicit about what you need and that you list all of the qualities and experience you are looking for. Reviewing the previous work of the team you’re assessing isn’t good enough as a pretty website will not tell you whether the team is capable of building what you need. Get your tech co-founder or someone with a lot of experience to do a technical interview/test to make sure the developer is capable of executing the job. There are plenty of resources online such as Interview Street with their own technical interview. Assuming everything is to your liking and that the developer has actually built something before, I always recommend doing a personal interview to see if the individual moulds well into your culture. Even though they wont be working in the office with you, they will be working hand in hand with your team and it’s important for them to share the same values. Choosing the wrong people can be the downfall of your business. Also always make sure you put anyone new on a test period. If they don’t do the job well after 1 month then hasta luego.
Managing from a far – It can be a challenging task to track the work that the outsourced team is doing as everyone is used to using their own methods. Also, given that the developer is most likely working from a different country, cultural and language factors can cause trouble.
Being able to produce concise and clearly defined PRD’s (project requirement documents) that the developers can understand is essential. For managing tasks, I’ve found Bitbucket extremely useful for monitoring workflow and changes to the code and also Trello for debugging and small new improvements.
Time can also be a disadvantageous factor if the developers you have contracted are located in a completely different time zone than you. As you don’t want to be ruining your beauty sleep and getting up at 4am to manage them, try and find someone that isn’t located on the opposite side of the planet.
Downsides Of Having Someone In House
Cash money – with averaging wages of a good developer in top companies starting at roughly $120k per year, with expected benefits such as full medical insurance, an aerobics instructor in the office, free food and so on it can be hard to find good talent. The access to talent also depends heavily on where you are located. In Spain its is extraordinarily expensive for a company to employ someone, and with the current economic situation, companies can’t offer competitive wages which causes a lot of the high quality tech talent to relocate to the valley where they can do yoga all day until their hearts content. This process of finding someone of high value can take a lot of time so the opportunity cost must be assessed too.
So What To Do?
I’d always recommend doing everything possible to have a tech co-founder as this will save you more time and prevent you from making as many mistakes as I have along the way.
If you do decide to outsource then make sure you ask the right questions, that you know exactly what it is you are looking for and how long you are prepared to spend searching. Good luck!
What experience have you had with outsourcing developers?
Panoramic view of Riga via Shutterstock
Robot replacement via Shutterstock
Freelance work concept via Shutterstock