Anyone familiar with software development practices of the late 1990s onwards, particularly in the insurance industry, will remember the rush to start mass outsourcing software development to cheaper resources in far flung parts of the world. The advances in the speed of internet communications technology of that time facilitated remote working possibilities that had previously not been viable. It became the new model for rapid application development.
There are several immediate advantages to outsourcing development of a software project. Number one is scalability. There is normally a robust pool of resources in most outsource organisations, and typically the scaling can be performed relatively quickly and painlessly. It is often the case that wage requirements are much lower in the countries which such outsourcing arrangements take place in, therefore it is easy to over-provision resource a project to create a safety net.
This brings us to our second major advantage for outsourcing – cost. It can be incredibly cost-effective to use an outsourced operation. An organisation doesn’t need to bear the human resources, environmental, or indeed salary related taxation costs – these are all factored into one single price. This creates a fairly clean view of the cost of any project which reduces project planning and financial forecasting risk to some degree.
Thirdly comes expertise. Most of the time, tasks will be outsourced to vendors who specialise in their field. The outsourced vendors also have specific equipment and technical expertise, some of the times better than the ones at the client organisation. Effectively the tasks can be completed faster and with better quality output. This allows the client to concentrate more on the task of running their business and not micromanaging development teams.
There are definite headline benefits to the outsourcing model, however it is not a one size fits all solution for everyone. This practice has come in and out of fashion a few times and we are sure it will continue to do so. As well as the pros mentioned above, there are also several detractors to the outsourcing vs in-house debate, and it is because of some of those reasons as detailed below that ICE InsureTech chose to stay firmly in-house with our software.
Too often software developers put their focus on cheap and fast delivery of software application development but that does not always end up being the most cost-effective solution in the long run. The number one focus for any team in terms of its software development should simply be on delivering efficient code and a quality product. A team of outside programmers, no matter how skilful and professional, will never have the same motivation to deliver excellence as an in-house team that have “skin in the game”. There are also subtle quirks for localised insurance markets – user experience can suffer greatly if these are not accommodated for and this is a risk with outsourced development. The key to any good team normally lies in its leaders. It is very possible to outsource software development to a team with good leaders already in place. A lot of outsourced developers recognise this and are very strong with project management capabilities and agile development methodologies well implemented. The driving force for successful software development needs to come from the top. Without having a day to day involvement in the development of a software system, it is impossible for a leader, especially a senior leader, to understand the breadth and depth of the system they are responsible for developing.
If leadership is strong in the team, then there is a good chance the whole team will be motivated to deliver. But if you want a team to go “above and beyond” and truly deliver excellence you cannot wholly rely on an outsource team. Whilst the numbers of staff are easily multiplied in an outsourcing arrangement, it is rare that a team will ever have 100% focus on your individual project. It is feasible that your project manager may have more than one project for more than one client at any given time. This lack of total focus does not lend itself to producing the absolute best system possible.
There is also the practical nature of outsourcing. Whilst communication and file transfer is easily resolved with modern internet speeds, there is still an unresolvable time difference with most locations, and there are often barriers to understanding if you are dealing with a team whose native first language is not English. This is not a question of education or proficiency – more often than not outsourcers will be highly educated, trained, and skilled, but this is more about the subtle nuances in communication that are often lost, and the need therefore to spend more time explaining requirements than perhaps one would with an in-house team.
Security is another major factor in the Outsource / In-House argument. No matter how tight the contract, trusted the third party, or niche the codebase, there is always a risk that your outsource development team may not play fairly and you may see your IPR plundered. This can cause a legal minefield with international outsource arrangements straddling multiple zones of legality. Companies face security and confidentiality risks even in-house – that’s a fact, but these risks definitely grow when sensitive project requirements and details are shared with outsourced resources.
Outsourcing can work for certain types of software development very well. Mobile app development, which tends to focus on smaller applications for mobile devices with limited functionality for example, is an area which we believe outsourcing is particularly suitable for. When you are creating a fully featured insurance platform, however, we don’t believe that outsourcing is the best solution. There are several contexts to the insurance process, and various elements of an insurance solution will need to be aware of these, and so it makes the best sense to keep all development under one roof. There is also a lot of insurance industry knowledge that needs to be translated into a modern insurance solution – in such an instance it is vastly preferable to have more than one in-house software expert to keep checks and balances. Finally, no organisation can fully support an application that they don’t have the in-house skill to totally understand and repair. If code is left to an outsourced supplier without full transition of knowledge to an in-house team, there will always be a need to rely on those outsourced suppliers for some element of support, and this is often laden with unavoidable issues.
For more information, please contact ICE InsureTech