IT outsourcing has come a long way since its inception in the 70s - 80s. From outsourced data centers in the 80s to APS (application service providers) in the 90s to MSP (managed services providers), IT outsourcing is continuously evolving and changing.
According to Gartner, IT outsourcing is the use of external service providers to effectively deliver IT-enabled business processes, application services and infrastructure solutions. With cloud computing evolution, today IT outsourcing can also include relationships with providers of software-, infrastructure-, and platforms-as-a-service.
Traditionally, outsourced IT functions have fallen into one of two categories:
Understanding Collaboration Models in IT Outsourcing
As the software outsourcing industry evolved, a number of different collaboration models emerged. Because different vendors use different terms for these collaboration models, they can oftentimes be confusing.
So we’re going to list out all the different collaboration models for software development outsourcing and tackle the benefits for each model and what criteria you might consider, so you can decide what is the most suitable model for your organization.
Simplifying things, outsourcing models can be categorized based on three main factors:
- Location: Onshore/Nearshore/Offshore/Multisourcing
- Type of relationship: Staff Augmentation / Project-based / Dedicated team
- Pricing model: Time & material / Fixed price / Dedicated team fee
IT Outsourcing Models: Location Wise
Onshoring refers to the transfer of your software development to an external provider within the same country. In this model there is no timezone difference, language barriers or cultural gaps, but the big challenge is accessing the same limited pool of engineers.
Nearshoring is the outsourcing of software development services to a provider on the same continent. With nearshoring the outsourcing provider is in the same or close time zone.
Offshoring: refers to the outsourcing of services to a provider in a more distant country. The time difference with the service provider is typically at least 5–6 hours.
Multisourcing is the use of various simultaneous location-based outsourcing engagements from multiple providers. This is a model mostly used by large corporations and enterprises to ensure each IT service is sourced to the best possible vendor.
IT Outsourcing Models: Relationship Wise
Project-based
In a project-based model, an IT outsourcing provider commits to deliver a project in a fixed budget and timeline. The provider makes an estimation of the amount of work needed to complete the project, based on well-defined specifications you will be providing.
In this model, the responsibility for delivering the project falls entirely on the outsourcing partner. However, because they will be working on a fixed budget, any additional features or changes you would like to add will need to be evaluated and will most likely impact both the budget and timeframe.
When is the project-based model best suited?
- You want to build a relatively simple application, with well-defined requirements, that are unlikely to change. In this case, a short-term engagement, where you know the outcome and the budget involved is the best option.
- You have limited or no in-house software development resources that can oversee development.
- You need to stay within a budget - eg. startups looking to launch an MVP or a company that wants to build in-house a non-core business application.
- Your company needs to develop a specific product developed but without the burden of project management.
Staff Augmentation
In this model, you are effectively borrowing resources from a specialised provider to supplement your own in-house team during spikes, usually for a predefined amount of time.
With staff augmentation, you have full control over the delivery and outcome and handle the team and project management.
When is the staff augmentation model best suited?
- You want to retain full ownership over the development process and output. That implies having the technical leadership to manage the tech team and project.
- When you have an internal engineering team and need to add specific skills or expertise.
- Speed up your software development, for example when you have a spike in activity or have a new project you want to retain control over.
- When you need to add talent to your team quickly; with the current IT skill gap, in-house recruiting can take weeks or months so a quick solution can be working with a provider that has the right talent available.
- When your company needs the flexibility to scale the engineering team up or down, as the business requires.
Dedicated Teams
In a dedicated team model, also known as a managed team or customer team, you will work in close cooperation with an outsourcing provider to create a team that will work integrated with your in-house one. Both your company and the outsourcing provider share responsibility over execution and deliverables.
Because the managed team acts as an extension of your own in-house team, this model requires trust, great communication and compatibility .
In a dedicated team setup, both your company and the provider share responsibility for deliverables and most of the time team management.
When is the dedicated team model best suited?
- When you’re building a complex application and the scope of work is not well-defined upfront because requirements change often. In a customer-centric world, companies need to respond fast to users’ feedback and requirements for new features. Thus the product's specifications will evolve along with the product.
- When you want to retain full control of the product vision.
- When you have an in-house technical leader with relevant experience. As responsibility is shared with the outsourcing partner, you’ll need to have an experienced in-house product owner, product manager or CTO to lead the entire engineering team.
When it comes to selecting a collaboration model for outsourcing your software engineering work, you need to consider what type of product you are developing, how well defined your requirements are and if you are looking for a long term engagement.
IT Outsourcing Models: Pricing Models
There are a number of pricing models that you can use when collaborating with an IT outsourcing partner.
- Fixed-price / Fixed-cost - based on a well defined scope of work and requirements, the IT outsourcing vendor estimates the workload needed to complete the project and proposes a fixed budget.
- Time and Material - the IT provider invoices the amount of work delivered to the client at the end of the month. The parties can agree on an hourly or monthly rate per type of expertise or blended rate (a rate that covers different roles -developers, testers- and levels of seniority). This is a flexible model that is best suited for long term software development and maintenance projects: the scope of the project is not defined at the beginning of the collaboration and evolves over time.
- Dedicated team fee - in this model the IT outsourcing provider invoices the actual expenses incurred for services plus a profit margin. This is a very transparent model and is most commonly used when building dedicated engineering teams. The expenses invoiced represent the cost with human resources, infrastructure, management and operational fees.