If you have considered making a software product, chances are you have thought about who will actually develop the software. If your team is made up of software engineers, you will be off to a good start. But what if none of you has that background?
One approach is to look for software engineers to join your team. In exchange for their work, you can give them shares, renumeration or both. In other words, do it in-house. The other is to hire companies that build software as a service, i.e. outsource.
Let’s address the elephant in the room: cost
In-house
If you are paying a fresh grad to do full-stack development, it can cost you S$ 4K-5K (or even more) in Singapore a month, for as long as you engage this person’s service. (The median software engineer salary in Singapore is S$ 57K).
More often than not, you will need a few: one person to do frontend, maybe one or two to do backend, at the bare minimum, assuming the design is already taken care of by someone else. The expenses quickly add up with more people added to the team.
In addition, there is usually no lack of well-paying and fulfilling career opportunities for good software engineers to pursue at established companies. The competition for people with this skillset is fierce.
It is, however, possible that you manage to convince them to believe in your vision. And they dedicate their time to working on your now common goal without asking for immediate compensation. If this works out, it has the best outcome.
But in reality, it can be challenging to find people who are compatible with the original team’s vision, values, and working attitudes. Idea theft, money, relationship loss, and law suits are possible ramifications when conflicts cannot be resolved. Think about the debacle where Mark Zuckerberg and the Winklevoss brothers fought over who founded Facebook that resulted in a US$-65-million settlement.
Outsourcing
To outsource, you can engage a company specialised in building softwares (outsourced development center or ODC) in the country you are based in or in emerging markets like China, India, and Vietnam. If the country you are based in is a developed market, the cost is probably no cheaper than doing it in-house. From my experience, engaging an ODC in China and India can cost half as much as in Singapore.
There are two modes of engagement for outsourcing: dedicated manpower vs project-based. The first option allows you to hire any number of developers with the skillsets you need. The ODC usually has a rate card detailing how much a head-count with different levels of experience in a certain skillset charges. You pay by the headcount you hire multiplied with the number of hours they work for you.
Skillset | Experience level | Man-hour rate |
Front-end web developer | Senior (3-4 years) | US$ 25 |
Example of a rate card entry
This can be an attractive alternative to hiring in-house developers if utilised properly. Other considerations required for this option will be discussed in part 2.
The second mode of engagement is project-based. This can easily be the cheapest alternative if the ODC is in an emerging market. You provide them with a requirement document explaining what your software should have. Based on it, they will give you a fixed-price quotation with a fixed timeline and a fixed set of deliverables. This can cost 30-40% less than the first engagement mode provided by the same company.
This option gives you upfront visibility on the cost incurred, provided that you are absolutely clear about what you want, which is rare for a young startup. Any requirement change after the contract is signed is considered a change request with additional charges, which can get out of hand if not managed carefully.
Does cost determine everything?
If cost is the ultimate factor, hiring an ODC from an emerging market on a project basis tends to be the most economical option. The most expensive in terms of monetary value is probably hiring a team of full-time in-house developers.
But can there be value in paying a premium to get a product built? Let’s find out in the second part of this discussion.