It can be difficult for the non-technical founder of a startup to decide on the best way to hire a team of developers. How you structure that first team depends on many variables, including these:
How much funding do you have ?
How quickly do you need to on-board a team ?
Do you have a clear idea of the features you want in the product ?
Are their executives on your team with technical knowledge ?
We will take a look at a few different options for hiring a team of developers.
The most obvious course of action is going out and hiring permanent employees who are co-located with the management team. There are several advantages to this:
Intellectual property stays in-house
Efficient communication flow
Perceived value to investors is high
Close control over project planning and execution
Flexibility in changing requirements - no negotiation is needed
No language or cultural barriers
But there are disadvantages too:
Depending on where you are located, your cost of employment will be high. This speaks to the amount of funding you have available.
Time to on-boarding is likely to be high - you have to hire everyone ranging from a head of engineering to a manual tester. Interview them, make a job offer, etc.
You have to have in-house capacity for managing a development team
It can be costly to downsize a team if you have to pay severance
At Rosewood we see this model in many well established businesses that are either profitable of have received funding beyond Series A.
Possible to most commonly used alternative to hiring a team is to outsource the development work entirely. In this situation the company would select a vendor and collaborate with them to define the business requirements. The vendor would typically quote a blended daily rate and an estimate for the number of days that will be required to complete the development. Again we can identify several advantages to the model:
No delay in on-boarding a team
No commitments towards employees
You have a contractual agreement with the service provider and you have some recourse if delivery fails.
All costs (except project overruns) are well defined -no overheads for office space etc.
But there are several significant downsides to the solution, including:
Your company's incentives are misaligned with the incentives of the service provider. You want to save cost and be productive. They want to maximise billable hours.
Operational and implementation knowledge is going to remain with the service provider unless you develop in-house skills.
You have to closely monitor the quality of work - do NOT assume everything is OK. Close monitoring of project progress and quality of software is highly advisable.
We have seen this model used in quite a few new startups. We have more than once seen that the model failed, to the extent that the code created by the outsource company had to be discarded or nearly completely refactored.
These are the two extremes on the spectrum of working with a development team.
At Rosewood we recommend one of a few possible hybrid approaches.
Employ a fully remote team of developers, guided by local technical management. Your primary considerations here will be cost and availability compared to your local circumstances.
Employ an off-shore, co-located team of developers, guided by in-house technical management. Here cost and availability will again play a decisive role, coupled with flexibility.
In both these cases it is critical to have in-house technical management capability. These models offer the business the ability to have de facto ownership of intellectual property while gaining at least some of the advantages of both full outsourcing and full in-house teams.