What you need to know about building a team, as a tech startup
This is one of the most important parts when you get funding because that funding is what determines what your next steps are. You should ideally be planning on a certain team size depending on how quickly you want to get to market and how large of a project it will be, this is all part of your pitch to getting funding. However, the reverse is also true, your team size will depend on the amount of funding you have.
Three types of developers
Agency/consultancy
This is where you hire another company to do part or all of your development for you. This is easily the most expensive route as your paying for both the cost of the employee and the markup from the company they are coming from. An agency is one that has a larger team in house, they typically work on new projects from scratch and until it's been delivered. A consultancy is more of a worker for hire, yes they can also provide expertise on a subject matter but it ultimately depends on how they are set up. The two terms have melded over the years resulting in a lot of companies being a hybrid of both.
On the plus side, they come highly experienced, you will usually hire them specifically for a type of technology they focus on. The other great thing about this route is that they can have the expertise to set you up properly from the get-go. By hiring an agency or a consultancy you will get the expertise of not only the people that are directly working on your idea but everyone at the company because at any point they can go and talk to someone more senior for advice. This will also give you access to those more experienced people at least in the beginning to set it up the project the right way. You can also mix and match developers as well, you might not be happy with one so you can ask for someone else. The beauty of this route is that you get access to a lot more than what you pay for. You get access to all the people in the company, sure you have to pay for it but it's there.
The downsides to agencies and consultancies
There are a few, for one they are very expensive. This is just the nature of the business, they have to cover both the costs of having this dev full time, as well as the time they don’t work so they have a pretty large margin on top of each developer. You can be looking at almost $1k a day for a decent developer in modern technology. This can go all the way up to many thousands a day depending on the reputation of the company as well as the skill of the developer and technology required. This often turns a lot of people away and it should because this can suck away your cash faster than sitting there and burning it.
Another downside is that the people who are working on it will be a lot less involved, they won’t care as much as someone who works for that company or has equity in it. They can be known to cut corners, struggle to hand it over when you bring developers in house and it can be hard to know where the developers are coming from. It’s quite common for a company in a 1st world country to then outsource the actual development work to people in India or Russia for example. You need to be careful who you go with if this isn’t something you want. I would stay very far away from outsourcing your development to another company unless you know and trust the company and the people involved. Time and time again people will outsource the development to countries such as India because it's extremely cheap, you can hire an entire team for the price of one developer in your country. However, time and time again I hear the horror stories of the code quality being so bad that before it could even go to market it all had to be thrown away.
I once knew of a company that outsourced their development to Armenia a few months went by and no real work had been completed. The owner gets more and more annoyed as it becomes clearer and clearer that nothing has been done. Until one day when the Armenian team presents the owner with a huge bill for using proprietary code that they wrote. What happened was they had spent their time rewriting parts of the system so it would only work with code that they wrote, this, in turn, meant that they could pull the plug on the code and the business would stop functioning. When the owner refused to pay the team sued him as well as hacked him. This is a horror story and I’m sure there are many more stories that highlight the positives from outsourcing to cheaper developers but from my experience, I have not heard a single good one. Again if you know and trust the business then it's up to you but I would personally pay the upfront cost to hire quality in your own country rather than 10 times that in the future when you get so far and realise it all needs to be thrown away.
Contractors and freelancers
This is where you pay someone money to do the development but they are usually solo acts, they don’t belong to any agency or consultancy. They will typically be cheaper than an agency or consultancy but they can ultimately leave at any time. They have no obligation to stay until the project is delivered unless you sign a contract saying that. This is positive and negative because you can get rid of them at any time without worrying about termination, however, they are much less interested in being part of the company so much as just doing the work and going home. It can be quite shaky to build your company on a whole bunch of people that have no real tie to your business. Yet they can usually start quickly, get up to speed quickly, do their job and you just pay them one fee. There's no worrying about various taxes or retirement contributions they sort it all out. Furthermore, if they don’t work you don't pay them.
In my opinion, I believe it's great to get them if you need a bit of added help for a small period but if you need someone for an extended period then it's not really in your best interests. Furthermore, if your company goes under you simply have to pay them the days they worked and be done with it, it doesn’t have to get messy.
Many will work their 5 days a week and 8 hours a day but sometimes they will just take time off and you won’t get any work done. Yes an employee can do the same but they need your approval to do so, you can bar them from taking leave when a big deployment is coming up.
Employees
This is the most obvious, you hire someone and they work for you. They get leave entitlements, you have to pay tax and contribute to their retirement funds. However, they will typically be much cheaper and you can often offer equity if they take a reduced salary which is much harder to do in the other two scenarios.
The major downside is that they can take quite a bit of time off and you still have to pay them, everyone has annual leave and sick leave which you still have to pay them. Furthermore, if they have a child, depending on the country but can be entitled to maternity or paternity leave which can last quite a long time, you might also have to pay for portions of it. These things can push a small business over the edge when your team might only be made up of a handful of people. One person might take 3 weeks of leave and sure enough, the whole team falls behind because they were a significant portion of the workforce.
On the plus side, you get someone whos more likely to have a vested interest in the company, that's probably why they chose to work for you. They believe in your product at least somewhat, which can often be a lot more than that of an outside agency or a contractor.
If you have your development team you will often have to hire what is called a “Tech Lead” or someone who has a bit of seniority in the technology field, especially if your not technical yourself. A lot of business owners find a few developers they like and hire them, often they can be quite junior as they’re a lot cheaper. This can bite you in the ass when 6 months down the line you haven’t got much to show for yourself because the team you built is too inexperienced to properly govern themselves and the direction of the company, at least from a technology standpoint. This can also be the case with freelancers and contractors if they aren’t experienced enough. On the flip side an agency should have someone whos more senior, yes they will cost more but really if you can afford one you should get one as they will make the whole build run a lot smoother. There will also be less wasted time which in the long run will save you money.
It's up to you
I’ve laid out the major options for you, it's up to you to decide which best suits you. It depends on just how technical you are because this plays a big part in who you hire and how you hire. The less technical you are the more you're going to need a more senior technical person, one way would be to partner up with someone who has a technical background, although this isn’t always possible. In that case, it would be best to hire a tech lead or a very senior developer to lead the team of either employees or contractors. If you go down the agency or consultancy path then you should make it a requirement that you get a senior developer with experience leading a team. There should always be one in a medium to a large-sized agency, even a small agency should have a couple but it depends if they are free or not.
Ultimately it's up to you which path you choose, but just be aware that whichever path you go down there will be positives and negatives. It's up to you which option will best suit your budget and experience.