Gathering an in-house development team makes sense when you have money or can attract good specialists.
For almost everything else, outsourcing works just fine.
Outsourcing offers so many options these days that it's easy to get confused. Some companies work on a 'turn-key' basis; some offer to expand your internal team with their programmers. Some will provide you with a Project Manager, and some won't.
In this guide, we’re explaining the types of outsourcing models, their pros and cons, and how to choose the right model for your project.
Location-Based Types of Outsourcing
We can divide different types of outsourcing models into two categories:
- Location-based (how far away from you the team resides)
- Relationship-based (how you're going to work with them).
Let’s start with the location-based types of outsourcing.
Onshore development means the team resides in the same country as you do. Your developers may live in another city, state, or region. For example, you can't find a good price-quality ratio in Philadelphia, PA, but there's the right company in Seattle, WA.
How onshore outsourcing works
It's the most convenient option on the list as you're working with the team from your home country. Usually, there's no huge time zone, language issues, or cultural differences.
But if you live in countries like the USA, Canada, or Australia, onshore development may cost a lot. That's because these countries set the highest development rates that go up to $150/hour and more (according to Clutch & GoodFirms)
In case you want to develop something complex like a ridesharing app or an Instagram-like social network, the process will take 1,000-2,000 hours and will cost you ~$150,000-$300,000.
Not all startups or even companies can afford to bear such expenses.
Nearshore outsourcing means delegating software development to neighboring countries. For example, you live in Germany and hire a team that resides in Poland. Or live in Poland and hire a team from Ukraine.
Usually, the time difference between you and your developers doesn't exceed 1-3 hours. For example, Ukraine is a nearshore country for Western/Northern Europe and the Middle East (UAE, Israel).
How nearshore software outsourcing works
Nearshore development is usually more cost-effective compared to onshore. In Germany, software companies charge $80-$100 per hour, while in Ukraine or Belarus the costs are twice as low—**$37-$50/hour**.
Offshore development means you're working with a team that resides in another country. Usually, there's quite a distance. For example, you live in Philadelphia, PA, and hire developers that live in Berlin, Germany, or Kyiv, Ukraine.
How offshore IT outsourcing usually works
It's more affordable but can be harder to maintain due to time zone differences and language barriers.
If you have an experienced Project Manager, you probably won't experience any of these drawbacks. A good PM will draw a communication plan to keep in touch when and where it's convenient for you (emails, Skype, Slack). And they speak English well, too.
Relationship-Based IT Outsourcing Models
Let’s move on to the popular relationship-based outsourcing models. There are three of them:
- Staff augmentation
- Managed team model
- Project-based model
Let’s take a closer look at each.
Staff Augmentation Model
- How it works: A company expands its in-house staff by outsourcing IT specialists (usually, a few specialists at once) temporarily
- How to pay: 8 working hours/day per specialist multiplied by hourly rate
Let’s say you have a successful iOS app and you want to release its Android version. But your in-house team lacks expertise. The most obvious solution would be recruiting qualified Android developers. Which takes time, especially if you need specialists for a few months.
Instead of going through the traditional hiring process—searching, interviewing, onboarding—and losing time, you can contact an outsourcing company. They’ll provide experienced Android programmers for however long you need.
That's how the staff augmentation (also called 'extended team') model works.
Outsourced specialists become a part of your in-house team and cooperate with your employees. While you (or a person you trust from your company) remain in charge of the development process and workflow management. You have full control and full responsibility for the project.
Developers become a part of the client's in-house team
The staff augmented model works best for short-term services. For example, when your in-house specialists are on an extended vacation or there's an increased demand for developers.
It's still good for long projects. You can: fill a skill gap, cut costs, or save time when hiring in-house employees takes way too long.
Still, there's little sense in hiring an extended team for projects that take longer than two years to finish. Same if you require skills on an ongoing basis. There's a risk your augmented staff may turn over within such a period.
Staff augmentation pros:
Quick access to developers
You expand your development team whenever you need and for exactly as long as you need. No recruiting or HR assistance is required.
Lower costs & fewer efforts
Although vendors charge a fee for their services, the price is often lower compared to in-house employment:
You're not paying for workers' office space, hardware, software, taxes, training, and coffee machine. These are your vendor’s problems.
You're not paying for recruiting or HR services. Recruitment, onboarding, and turnover costs are also your vendor’s headache, not yours.
You're working with lower development rates. Hiring a middle-level developer from Canada or the USA costs three times more than hiring a middle-level developer from Belarus or Ukraine.
Access to top talent
You get access to high-level engineers and other IT experts. Without offering them hefty full-time salaries, office perks, and ping pong tables to retain them.
With staff augmentation, you can have as many IT specialists as you currently require. For example, you may start with two Android developers, then expand your extended team with a back-end developer and a QA engineer.
Your outsourcing partner will just deliver new resumes for you to choose from.
Full control over the project development
You’re hiring a team of experts while having full control over the development process. You can either do it yourself or assign a responsible project manager or a CTO who’ll be reporting to you.
- How it works: A client hires a development team to do a specific scope of work. The outsourced team doesn’t work directly with the client's in-house team but usually reports to their PM, CTO, or the clients themselves.
- How to pay: 8 working hours per day multiplied by hourly rate
Working with a dedicated team means you’re hiring a team of IT specialists to carry out the tasks you don’t want to delegate to the in-house team. For example, if the process demands specific skills your employees don't have and the company doesn't want to invest in.
The dedicated development team falls somewhere between staff augmentation and a fully outsourced approach we’re going to discuss next.
Much like the augmentation model, the dedicated team is assigned to your project. You get a group of tech pros who’re wholly and solely focused on your product.
But they don't become a part of your in-house team. They work independently. The management either goes on the outsourced team's side—you get both a Project Manager and IT specialists. Or on the client's side: the team reports to you, your PM, or CTO.
You get a few IT specialists you manage on your side
As for the team itself, roles are usually cross-functional. For example, you may only need iOS programmers, back-end developers, and QA engineers to monitor the product's quality.
Or maybe you need a full-set team—a business analyst, UI/UX designer, mobile and web developers, QA engineers, and so on.
Here’s an example of a full dedicated team:
- Business analyst
- UI/UX designer
- QA engineer
- 1-2 iOS developers
- 1-2 Android developers
- Back-end developers
The number and roles depend on your project. The outsourcing vendor should be able to pick specialists according to your requirements.
The number and roles depend on your project. Your outsourcing vendor should be able to pick specialists according to your requirements.
A dedicated team is the best option when you need people for specific tasks. For example, when your core team is busy with the main product and you need someone to work on a side project.
Managed team pros:
More control over the process
You have more control over the development process as the team members are de-facto your employees. You communicate with them directly, they report directly to you. Which makes altering the scope of work faster and less painful.
Most probably, people in the outsourced team have already worked together on quite a few projects. They're familiar with each other's pace, work and communication styles.
You choose a dedicated team based on their proven experience with similar projects. If they successfully released a few fitness apps similar to yours, chances are there will be fewer tech issues with your product.
Less time spent (optional)
With a dedicated team, you can forget about day-to-day team management if you don’t have time for that. Just ask your tech vendor to assign a PM who’ll be responsible for team management.
- How it works: A client fully delegates software development to an outsourcing company from planning to release.
- How to pay: 1. Number of hours required to complete the project (agreed beforehand) multiplied by hourly rate (Fixed price) or 2. Number of hours required to complete the scope multiplied by hourly rate (Time & Material)
The project-based model is the most traditional and most common in software development.
The client agrees on the project requirements, which are then written in a specification, and decides how often they want to hear from the team's Project Manager.
Full workflow management falls into the PM’s hands that your tech vendor provides. They're fully responsible for delivering the final product according to the specification and timeline you've agreed beforehand.
Project management goes on the tech vendor's side
Under this outsourcing model, you have the least amount of control. It's the vendor's Project Manager who's in charge of the development team. But your team is not isolated—you have a PM who regularly reports you, shows demos, and so on.
It's up to you to decide how often you want to meet with the Project Manager and the team. For example, you have only one free hour on Thursdays. Or maybe you want to speak to the team twice a week.
The frequency usually depends on the project specifics and its requirements.
Besides, the team often needs your approval, especially when it comes to documentation and design. For example, if UI/UX design is done on our side, we always approve wireframes with our clients and only then get down to concepts and screen-by-screen designing.
Project-based model pros:
Clear timelines and outcomes
Together with your outsourcing partner, you define timelines and deliverables before the work begins. That gives you a full understanding of what you'll receive at the end of the scope: screen-by-screen app design, implemented features, and so on.
Minimal time commitment
Some approvals are required, but mostly it's Project Manager who makes sure the work is done on time and with decent quality.
You can focus on your high-priority tasks.
Responsibility lies on your vendor
You're responsible for documenting project requirements and specifications (the vendor's BA team will need your cooperation). But the execution and delivery lie on your vendor's shoulders.
How to Choose Between Outsourcing Models
Below, we’re listing a few tips that’ll help you figure out which model fits your project best.
When to Choose Staff Augmentation Model
- You already have an in-house team. You can't 'augment' a team which doesn't exist. So the first requirement is having an in-house development team and needing a few specialists to expand it (temporarily).
- You have a tech lead on your side. Working with an augmented team means that management is done on your side. You need to have a tech lead or a CTO with enough experience and domain knowledge.
- You need expertise you don't have in-house. The augmented staff model is for businesses that need specific expertise—Android development, DevOps, automated quality assurance, and so on.
- You need to expand the team quickly. In-house recruiting takes time, especially if you're looking for a person with non-common skills, let's say, for a Flutter developer. With the staff augmentation model, you find the person much faster—you just contact the company you like, look through the developers' CVs, and interview them. That’s much faster compared to months of recruiting you may require to find the right specialists locally.
When to Choose Dedicated Team Model
You have a Project Manager on your side. It could be a Project Management, a CTO, or CEO, or other tech lead. The point is, you need to have an in-house team with relevant domain experience.
You need tech expertise in a specific area. A dedicated team works well if there are tech gaps you need to close. For example, if your in-house team works on a mobile app and you need someone to create its web version. If you've never worked with a tech team before, it's better to turn to a project-based model that allows building products from scratch.
You want to remain involved in decision-making. With a dedicated team, you stay fully involved in the development process—features, functionality, prioritization. You may not manage the team daily, but it’s you who makes decisions.
When Project-Based Model Works Best
Here’s when the project-based model works well:
- You have limited resources. The project-based model works well if you have a limited in-house engineering force or no team at all.
- You’re a startup. With this model, even the least tech-savvy businesses can develop a custom software product from scratch. The tech vendor will provide everyone you need to start a project—Business Analysts, designers, developers, QA, and other specialists.
- Your in-house team is busy working on the core product. You can outsource the development of your second-best product without the burden of management.
- You have a clear vision of the product you want to build. You may not have the documentation yet, but at least you should make an exact list of features and tech requirements (platforms, languages).
|Parameters||Staff augmentation||Dedicated team||Project-based|
Tech expertise (client)
Now, every software development project is unique. That's why vendors offer a few models that fit the needs of different projects.
If you have doubts, the best way to pick the right outsourcing model is to consult with your vendor. Describe your project, requirements, time and budget constraints. And don’t forget to mention whether you have an in-house team or not, as well as what level of flexibility you expect.
Which outsourcing model to choose?
Tell us about your project, and we'll pick the best model for you.
At Cleveroad, we usually work with the project-based model, building products from scratch. Still, staff augmentation and dedicated team approaches aren't uncommon to us.
For example, we used the augmented staff model to work on Blockbuster, a video-on-demand platform. Our iOS and Android developers became a part of our client's team.
Henrik Loop CTO Blockbuster, TDC gives feedback about cooperation with Cleveroad
Gathering an in-house development team makes sense when you have money or can attract the right specialists. For almost everything else, outsourcing works just fine.
Especially if you're on a tight budget or no company in your country fits your requirements.
We can divide different types of outsourcing models into two categories:
- Location-based (onshore, nearshore, offshore)
- Relationship-based (Staff augmentation, managed/dedicated team
- project-based model)
These are three common software outsourcing models:
Staff augmentation model Managed/Dedicated team model Project-based model
Staff augmentation model implies that outsourcing specialists become a part of your in-house team and cooperate with your employees. While you (or a person you trust from your company) remain in charge of the development process and workflow management.
Dedicated team model means you're hiring a team of IT specialists to carry out the tasks you don't want to delegate to the in-house team. In this case, outsourcing specialists work independently from your in-house employees.
Project-based outsourcing model means the client fully delegates software development to an outsourcing company from planning to release.
Project management goes on the vendor's side, and the outsourcing company is fully responsible for delivering the final product according to the specification and timeline.
Consider your project, tech, and business requirements.
Staff augmentation model works well if you already have an in-house team and a tech lead who will monitor their performance.
Dedicated model is best if you need tech expertise in a specific area, want to remain involved in decision-making, and have a Project Manager on your side (optional).
Project-based model works well when you have limited in-house engineering force or no team at all. If you're a startup with little tech knowledge. Or when your in-house team is working on the core product, and you want to delegate the development of your second-best product.
Give us your impressions about this article
Give us your impressions about this article
So easy to understand, explained in a very simple way. Thanks to whoever designed this!
thanks very much, I read about the subject in many page but I understand it here.