His concern was the following: “We will need continuous development and working with an external agency will definitely be too expensive. Even though your prices are very competitive, costs don't match those of two developers employed in-house.”
Because this question popped up quite often since then, we decided to expand the idea into an article potentially useful to startup founders who’re trying to decide between hiring an internal development team and working with an external services provider.
Let’s start with the benefits of having the development in-house:
- Easier and more efficient communication
- Higher product ownership from team members
- Higher level of legal protection to what intellectual property is concerned.
Most of our customers, startups in the inception phase, claim that it only makes financial sense to hire their own team when at least one of the following conditions apply:
- selling of the actual technology you are producing is involved (algorithms, devices, etc)
- the technology you are working on is sensitive and/or disruptive and can or could be patented
- the project operates in a very high security environment (banking, national security, etc)
- you can afford to build a team large enough (~ 10 technical people) to cover all the key areas (design, UX, development, testing, project management, architecture, dev ops, system administration) and you still have some level of redundancy; this means that you are not entirely dependent on any one person.
The idea of starting with a few programmers and to ultimately take over the world seems to have stemmed from all the media articles that describe it as a mandatory condition for startup success. Nonetheless, our experience with over 150 customers has shown that it’s not necessarily true. As an external team, we’ve done projects for customers where we resolved all of the conditions above.
In fact, we’ve met customers who started with their own development team but, due to all sorts of circumstances, weren't able to manage the project until the end. On one occasion, we even took over development from an in-house team of 4 developers that had been working on the product for almost a year.
Therefore, if you decide to build your own development team it’s important to realise it comes with different challenges. The in-house team is by no means a guarantee of efficiency, productivity or product understanding.
So, what are the benefits of working with the right external team?
- Economies of scale – A specialised company that will turn over 10-20-30 projects (similar to yours) per year builds certain economies of scale.
- Specialised resources – If the aim is to build a team of 2-3 developers, it’s going to be difficult to find experienced people who can cover all the areas of product creation. For instance, a good back-end programmer might not be good at testing automation or front-end development. A DevOps engineer is not necessarily good at managing the development process. And the list can go on.
- Access to the recruitment market – A software development company is constantly recruiting so there is always a pool of potential candidates who can join the team. A process is usually in place to screen the candidates on their cultural fit as well as on their technical expertise. Since this is not a core competence of your company, getting a developer on board is going to be time-consuming and expensive, especially in the IT industry. It takes, on average, 47 to 57 days to fill a position and well over $4000 to hire 1 software developer.
- Redundancy – A good software development agency usually has processes in place for knowledge sharing. This is to make sure that vacations or people leaving the company will not affect on-going projects.
- Team scalability – A direct consequence of redundancy is that you have the option to scale the team up (or down) based on necessities. New people joining the team will, therefore, have a shorter learning curve until they become productive.
- Processes – working with people outside your team always requires a higher level of discipline in communication and planning. Processes become key here, as they help the entire team know how things are done. Moreover, knowing what the processes are means there’s room for improvement to gain efficiency and better outcomes.
- Quality – If you do a lot of something, (most of the time) you get good at it. With dedicated people on quality assurance, with quality engineering as part of the system design, with processes in place, even the ‘average’ specialised external team will create better software compared to an ‘average’ internal team.
As with everything, it’s not black or white. A hybrid model can also work. We have customers who have internal teams but they collaborate with us on certain specific areas of their system. Our team usually undertakes developing one full feature from a more complex piece of software and integrates with the client’s team as often as necessary. We become a sort of an extension for the in-house teams and, so far, collaborations run smoothly.
For Hindawi, one of world’s largest open access publishers of peer reviewed academic research, we’ve put together a dedicated team of 20 people who’ve worked externally for 2 years. In 2019 we helped them build an office here in Iasi and, then, transferred the entire team under their management, in a Build - Operate - Transfer model.
However, for most startups, it simply doesn’t make sense to build an internal team. There is enough challenge with sales & marketing and with keeping the business afloat. With a good in-house CTO in charge, and by maintaining a healthy communication flow between them and the external team, the productivity gains will quickly out-pace the benefits of having your own developers.Editor's note: this article was first published in 2013 and has been updated on August 27, 2020.