Outsourcing software development means mainly a few main models, which can be looked at from two different perspectives. You can either analyse it according to the forms of cooperation (project-based outsourcing and staff augmentation outsourcing model) or the forms of compensation (Time & Materials and Fixed-Price models). Let’s have a look at the first division.
Forms of cooperation
Project-based outsourcing
Project-based outsourcing is a model that gives the in-house software development company a lot of flexibility to plan and execute (usually the whole of) the project while the customer simply worries only about the end result.
This means that it is the development team that takes care of the whole of the project or its coherent definite part. It can be either, for example, an entire PWA app, website etc.
What is very important in this model is that the client does not have to provide any technical input or support. He can focus on the business and marketing without having to worry about the management of all the small steps and early stages of the project.
Staff Augmentation
Staff augmentation is a model that aims to reinforce the core competency of your in-house staff with specialised software developers that will become a fully incorporated part of your team. It requires the client to manage the whole project. This means that the software developers will simply do their job without much possibility of providing you with innovations or unique expertise except for the stated area of their responsibility.
This model is especially useful when you do not want to hire any new employees permanently and already have some ‘technical’ personnel in your team, yet their time is limited by other day-to-day tasks. Such a mix of in-house staff overseeing the job of the outsourcing programmers can be truly miraculous. In the staff augmentation model, the hired company does not have that many responsibilities compared to the project-based outsourcing.
Forms of compensation
The other possible way of distinguishing between different types of outsourcing models is the ‘money-based’ focus. We’ll discuss the Time & Materials and Fixed-Price models, but if you want to learn more about pricing models in software development, read our article that covers that topic.
Time & Material model
The time and Materials (T&M) model relies on the so-called ‘costs of resources’, that is, developers’ hourly rates (their salary) and the additional costs of materials.
In this particular situation, it is important to focus on the milestones your outsourcing team meets on the way, not the fixed price for the whole project. After each one of these steps, you should thoroughly analyse it. Go through the number of hours, and multiply it by the earlier agreed hourly wage (time) and add to it any additional costs of materials. This way, you can be sure of what exactly you are paying for and, at the same time, have better control over your project.
It is a very elastic model because, despite the earlier estimates, you pay only for hours worked.
Fixed-Price model
The Fixed-Price model guarantees you a fixed amount of money you will have to pay for your project. Notwithstanding the overtime, you can be sure that your budget will not change.
What you need to know is that at the very beginning, you must undergo a very detailed specification of your project in order to be able to predict technologies used, the very amount of hours the programmers will need for each feature and set the fixed sustainable price.
This model may not be the best choice as such analysis is a long process not always done right. Within most of the projects in the industry, there are at least a few highly dynamic changes one has to implement along the way. Due to the fact that one has to plan a few months' work and analyse very many factors, there is a high risk of having to change or redirect the initial assumptions. It can be caused by changes in the market or things that affect all of us globally – for example, the coronavirus pandemic. Overall, just like in everyday life, it is really difficult to be able to predict every possible scenario that may happen.
In the end, barely ever a ‘fixed price’ is truly the ultimate fixed price. Despite all these facts, the Fixed-Price model is a good idea when your project is rather small and very well defined – for somewhat 2-4 weeks of developers’ work. However, you need to be aware of Fixed-Price contract risks and challenges that we describe in one of our articles.