One year ago, one of our potential customers asked for our feedback about whether it would make more business sense for them to recruit people and perform their mobile product development in-house as opposed to working with us.
His exact words were 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 their project, just as the ones that followed, was of substantial scale, we decided to expand the idea into an article potentially useful for both parties.
Doing the development of the product with an internal team or going with an external supplier is an age-old dilemma we will hereby explore in detail.
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 with regard to intellectual property
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 several customers has shown us 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 that started with their own development team but that, due to all sorts of circumstances, were not 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 realize it comes with different challenges. The in-house team is by no means a guarantee of efficiency, productivity or product understanding. In most cases it’s quite the opposite.
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 is most of the times not good at testing automation or front-end development. A scalability expert is not necessarily good at managing the development process. And the list can go on.
- Access to the recruitment market – A mobile product development company is constantly recruiting so there is always a pool of potential candidates that 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.
- Redundancy – A good services company usually has processes in place for knowledge sharing. This is to make sure that any single person leaving the company will not affect on-going projects for customers.
- 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. Is this the case when recruiting in-house? Think again.
- Processes – working with people outside your team always requires a higher level of discipline in communication and planning. Deciding day-to-day what to do next can no longer be an option. Some people may find this a drag, but in our experience, it helps start-ups a lot. A product owner will be tempted to constantly ‘rework’ pieces of the system that have been put in place or will have to face procrastinating decisions. Now, there is a person in the game whose single responsibility is to make measurable progress and deliver!
- Quality – If you do a lot of anything, most of the times 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 with teams of over 15 developers to whom it makes sense to work with us on only a very small and specific area of their system.
However, in the vast majority of cases, for most startups it simply does not 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 constantly maintaining communication between them and the external team, the productivity gains will quickly out-pace the financial benefits of having your own developers. It's up to you.
YOU MIGHT ALSO BE INTERESTED IN
The Essential Role Of Trust In Product Development
As you get ready to build your product, you'll need a team you can trust to take the best possible decisions.