Once you have decided to build an application you have basically three options to get it built:
1) Hire some developers as employees 2) Hire freelance contractors to build the application, or 3) Get an agency to build the application for you.
Within these three options is a spectrum of risk and price and the decision is not as straightforward as anyone would hope. There are also vast differences in which choice you would make depending on the type of application you are building. For example, the decision process to build an online store or company marketing page is vastly different from building highly bespoke custom systems.
To simplify matters somewhat, this post will focus solely on building custom applications. Also, nothing in this blog is legal advice, it’s just my personal opinion; you should see a lawyer before making any legal decisions.
Hire Employees
A full time employee is a full time resource and the per hour equivalent is very cost effective, even at a more experienced level. For relatively little investment, you can probably get an intern to start your application, but be prepared that your custom application will likely need to be rewritten. It takes experience to build a stable app.
You will generally need someone with at least a couple of years of commercial experience (if not more) before you can trust that they won’t leave security holes that, for example, compromise all of the data in your database. Whilst cheaper upfront, hidden costs can sometimes outweigh the lower investment. There are statutory benefits such as superannuation and leave which need to be met. And employees are harder to “scale down” than contractors or agencies.
Depending on the size of the employer, the length of employment and the contract characterisation, a process must be followed to end the employment relationship. According to Fair Work Australia companies with less than 15 staff will have a harder job dismissing employees after one year of employment, and companies with more than 15 staff will have a harder time to dismiss an employee after six months of employment.
If your employee will earn over $136,700 your enterprise agreement will state your options. Unfair dismissal proceedings can be initiated by the employee after termination if they were fired without a valid reason based on the employee’s conduct or capacity. The process of getting rid of an employee can take months and will be reset if the employee shows even a slight improvement. Ending employment relationships need to be navigated carefully and lawyers aren’t cheap.
Independent Contractors
Contractors are an attractive option for many companies. They issue invoices for work performed and can be used on an as-needed basis. Removing them is relatively simple in that aside from an express agreement otherwise, their role can be ended at will. They do not carry the same regulatory obligations for employers - just payment of the invoice.
They do however have to be genuinely independent. Many employers have fallen into the trap of hiring a person as a contractor, even through a company entity, with the result that the person was deemed to be an employee. If a contractor obtains a high percentage of their income from one party and does not have other genuine clients then they will most likely be considered an employee. If they are in effect getting all their income from you as the employer then they are definitely employees. This is also a trap for employers when contractors later come back to claim their unpaid entitlements. The Tax Office has no problem requiring employers to settle super claims even though you agreed a better rate because you thought there were no statutory obligations.
On the costs side, contractor rates are almost always more expensive than an employee’s equivalent rate. Some of the best developers are locked up as employees but there are also a lot of contract developers who know what they are worth. However, unlike employees, contractors do not have a guaranteed income and most find it hard always chasing the next project. There are also no statutory benefits such as sick leave and annual leave.
In terms of quality, this varies greatly and usually the cost of the contractor will be a fair indication of their skill level. You will quite often get a good application built by a contractor, however if they are sick, or want to leave and work somewhere else, or you just don’t get along well with them, you could be left with needing to find the next replacement.
Hire an Agency
Agencies charge the most of the three options. They have overheads like non technical staff and insurance. Some agencies even have offices you can visit. Of course these overhead costs are factored into a customer’s bill. Agencies provide ready-made teams which will often function better than any team that you arbitrarily put together. I recently read a great book called “Give and Take” by Adam Grant that gives many examples of an individual losing performance when they change teams. This highlights a great advantage of an agency - ready-made teams. Looking for a developer may take you three months in the current tech talent marketplace. You’ll take a few more months bringing developers into your culture and figuring out the technical debt. Agencies fill this void. When you need to build something fast go to an agency. The other problem that agencies solve is when the client has no technical understanding. Most agencies will act in the capacity of a CTO as well as implementer.
Not all agencies are created equal, but that is the subject of another of my blog posts, with information which could help with choosing an agency, ‘Why some application development agencies charge less’
Conclusion
The choice to use employees, contractors or an agency ultimately comes down to what technical resources you have available and how fast you need to get the product to market, while handling the risk of it all going wrong. For the more risk adverse or companies lacking technical understanding an agency is the only option. If you do have the technical understanding and you can foresee the project being big enough to support a full time developer then you should probably hire a developer. If you have short term work and technical understanding then a contractor might be the best fit.