My answer is always: it depends. So I want to outline some of the challenges and drawbacks here.
When to Hire a CTO
In almost every scenario I recommend startups find a technical co-founder who can spend all of their time building and managing their software. I make this recommendation for a few reasons:
- It’s important to have someone who can speak about technical assets.
- Having someone from the get-go to retain the technical knowledge is incredibly important.
- They add value to the team.
- They add a lot of credibility when pitching investors.
- In-house engineers produce higher quality code (in general, not always the case).
Although they can be hard to find, technical co-founders can make or break software businesses.
When to Go The Dev Shop Route
The only scenario in which I actually recommend working with a dev shop is when you already have someone technical on your team. In these instances you have some leverage that can ensure quality of code. When engineers at a dev shop know that you have in-house engineering talent that will be conducting code review they feel pressure to produce quality code.
On the contrary, code quality will suffer if they know that you do not have any in-house engineers. Likewise, they know that the project will no longer be their responsibility in a few months time. Why does this matter? Code quality is very important because without quality code:
- Routine maintenance becomes difficult and costly.
- Changes and improvements are more time consuming.
- Down the road when your business is growing your software most likely won’t scale to support your needs.
If you have an engineer who can work with the dev shop and monitor their work, then working with a dev shop is a great way to complement your in-house resources so that you can build and iterate faster.
I recently brought on an offshore engineer. Before we kicked off the engagement I was incredibly skeptical and had very low expectations. However, with proper product management and daily code reviews we have seen incredible results at less than 1/10th of the cost of working with our own engineers.
Make sure you have engineering talent and if you need more resources temporarily or cost effectively then consider complementing your team with a dev shop.
Special thanks: Martin Trust Centre, MIT
Edit: Javier Rojas, 16/04/20