Outsourcing Versus In-House Software Development
The demand for software development has grown massively over the last 5 years. So much so we have a consistent flow of companies who get in touch about outsourcing their software development for a number of reasons. Companies often assume that an in-house team is the always the best option but in the real world we are seeing this decision being reversed. So, the obvious question is why?
In this post we are going to look at the benefits and challenges of each option.
One team, focused on your companies’ goals can be great for the project. They will often know about the direction of the business as a whole, how the project they are working on fits in with the overall plans and goals of the business.
The ‘water cooler’ moments where just having a chat with someone will lead to a new idea on how to solve a problem. Also having direct access to other parts of the business to speak to the experts in areas that the software is being used and getting direct user feedback.
Complete Control of Development
You will control who does what and when, what order things are worked on and when they should be released.
You will be able to get changes started immediately, no need to see when the next development slot is available at your outsourced software company.
A lot of companies assume that the cost would be cheaper by having your own in-house team but that is rarely the case. If you purely look at salaries versus the hourly rate of outsourcing then that would be the conclusion but there are so many more costs to add on when developing in-house such as:
- Employment Costs – For example, employee benefits, holiday and sick pay.
- Office space and infrastructure – For example IT and infrastructure equipment, software licences and office items such as rent and utilities.
- Project management and training.
- HR cost – especially recruitment costs
Downtime / Utilisation
All projects go through phases and your developers are probably not going to be involved in all of them. For example, if you are working on a multi-phase project, the developer could finish one phase and then planning starts on the next. What does the developer do? Nothing, get laid off, go on holiday? An outsourced team would be put on to another project until you are ready to carry on.
Distraction From Outcomes and Goals
If you get stuck focusing on the day-to-day detail will this allow you to have focus on the end goal, making sure the software can be what it needs to be, making the higher level decisions. It is very easy to get bogged down.
Some of the above challenges should give you a clue to how much time you need to invest (yours or another employees) to keep projects on track and all the developers working at a high level of utilisation.
Critical Point of Failure
This is only applicable to small teams of developers, 1 or 2. Developers can, in normal circumstances, leave much faster than they can be hired. How critical that is for your business depends on the software. If it is in use and what it is being used for. A good percentage of companies that contact us about outsourcing their in-house development happen because their “only developer just got a new job”.
The ability to scale up and down as needed is a real benefit, especially on large multi-phase projects
You will typically be on an hourly rate, that includes development, project management and other disciplines your software development partner offers. The great thing about this is that you only pay for what you use and you will have quite a bit of flexibility about when you use those hours too.
Hiring a team, getting them set up, even getting a development process in place takes a lot of time, at least weeks and probably months. Outsourcing means you get to largely work with your partner to start when you want.
Normally one of the criteria of the software development partner you choose is the projects they have done similar to what you are starting on. That is a great from an experience point of view. On top of this you are getting their expertise on everything else they have done. If you have the right relationship with your partner (and you should!), they will always be looking for a better solution and always be able to suggest solutions to problems you present. In an in-house team you end up with more tunnel vision from the developers.
Outsource – Challenges
There are a couple of aspects to this. First you will typically have to plan meetings in advance more with an outsourced team. It is not that they will not be available, it is that they will probably be working with a number of companies, all wanting their time.
Secondly, they may take a while before they understand the jargon of your industry, or more specifically your company. Every industry has a different language and every company has a different dialect. Outsourced developers will need things explained to them more, especially in the early stages of your partnership.
You are investing in IP and that IP should have value. It should always be your IP which is never an issue with in-house development but has to be contractually yours in an outsourced arrangement. Always look who owns the IP in a contract and walk away if it is not you.
No outsourced development team worth their salt will not want your project to succeed, but they are not dependent on that success. In-house there is more jeopardy, the teams’ job can be tied to the success.
In most cases, there is no wrong approach. You just have to think through the benefits and challenges and see what is going to work for you. In some cases, this might change through the company’s growth. For example, a software startup might start in-house with the business owner also being the developer. Once the development requirements exceed the limits of the developer (time or ability) they might outsource. Then once resources (mainly money) are available it can be brought back in-house again.
If you would like to discuss your options when outsourcing your software development then please get in touch.