The choice between in-house or agency development is often made quite early on in a company’s history. The main factor to consider is what does your business do?
If you are a tech start-up or your product is your application you should absolutely have your own in-house development team. For everyone else you should make your choice based on what you are willing to commit to.
Finally, the most important question is: Do I want to run my business AND a software development business?
The mistake a lot of businesses make is hiring in-house with the expectation of cheaper development or more control and what can happen is the opposite. You have to be committed to taking on the additional responsibility of running a development team to be successful.
Are you committed to recruiting new developers? These are very expensive hires, both in terms of salaries but also with recruiter fees added to the mix. A great developer can transform your company for the better and a terrible one can waste your resources.You will need to delve a little deeper into what developers look for in the workplace and in career progression. If you’re hiring a good developer you will probably need to pitch to them why your company is who they should choose to work for.
In an agency this is a non-issue, they handle all of the costs of recruitment and often have enough developers and resources to cover any leavers with zero interruption to services. Because this is what they do they also have the right culture to keep their developers around indefinitely.
Developer tools don’t come cheap, have a look at Jetbrains these are the tools of choice for your developers. In-house you commit to the entire cost, through an agency the cost of tools is spread across their clients so relatively speaking you will only end up paying a fraction of these costs.
Aside from investing in your developers is taking on the cost of your own infrastructure and hosting. This can also be expensive and will vary from company to company, sometimes this one can actually present a cost saving to bring in house. Even working with an agency you will have the option to do that or they will even handle all the costs, negotiations and renewals.
Sometimes agencies will provide that at no cost or they may pad in a percentage to cover their admin around the work.
Dealing with leavers can be a difficult process, given the terms on which staff leave you may end up locked out of your own infrastructure without any secondary member of staff with the knowledge to jump back in. At this stage you may end up dependent on a freelancer temporarily, jumping to an agency relationship or recruiting ASAP.
These can be mildly inconvenient or incredibly disruptive to your core business depending on your reliance.
If you are new to employing developers you may not be aware of what level of handover is sufficient and additionally having the expertise to monitor the appropriateness of work to be passed on to a new developer.
This is a part of agency life, your development agency will have years of experience dealing with this and refining their process. A good agency disconnects the project from the individual developers to allow it to be worked on by anyone.
By far the most difficult aspect of hiring developers is having the ability to assess if the work you are receiving is of an acceptable quality. It may work on the surface but:
Software development happens behind closed doors so if you are not a developer you require an extraordinary level of trust that corners aren’t being cut and that stability is not being sacrificed.
A development agency has to know how this works and be able to ensure quality. Ultimately they are responsible for any shortcomings so there is no incentive to provide poor work and everything to be gained from creating high quality work.
Could managing your own development team create more distractions in your business that takes away from the core business?
There is a passive effect that requires more and more people from your business to get involved, some time from the CEO, a bit more from the board, some senior managers and you start to see a hidden cost in the form of lost time.
This lost time can still exist with an agency, but will generally be localised to the member of your team that is responsible for managing the requirements of the software piece. Overall, liberating more of your organisation to focus on the core offering.
With development there are a lot of passive costs that we have covered and potentially more:
When looking at a comparison between in-house and agency you cannot simply compare the would-be salary vs the service costs because one is an all encompassing price and the other is a base price.
This masking of costs can often make agencies appear more expensive at first, but when you control for all factors the cost drops significantly and the value offered starts to dramatically outpace in-house.
Agencies operate by being effective, a lot of their value can come from knowing how to solve a problem and leveraging all of their experience and resources over various clients.
When you are working with an agency, consulting often becomes a bonus at no extra cost. This is because agencies want you to succeed, the better your business does the better theirs does too, so it is really not unusual to have your team call them up to bounce ideas off or get general steer in the right direction.
You may find this even happens across other services that you are not directly paying for, although that would be at the discretion of the agency, we wouldn’t want to claim that is how everyone does it, especially as agencies make their money from being experts and knowledge is their product.
It really depends on how you were reading this article.
Did each section fill you with excitement about the challenge and reward? Then you may want to hire in-house. Or did each section fill you with fear around new risk? Then you may want to hire a development agency.