Choosing a software development company is easy. If you have done it a few times already. If you are a first-timer or even a second-timer – it is a hell of a challenge. And when you are finally almost sure that this is the company you want to cooperate with, they ask you: "Which software development model do you prefer, outsourcing vs outstaffing, “Fixed Price”or ”Time & Material”?". Here we go again, the things become dizzying.
To make your life a tiny bit easier, I am here with a concise comparison of the essential software development models. So, let me show you what is the difference between outsourcing and outstaffing and between the “Fixed Price” approach and the ”Time & Material” approach. To make it crystal clear, I will use the example of a house.
Outsourcing vs Outstaffing
This question most certainly will throw you off if you have little to no experience with software development agencies: “Outsourcing or outstaffing”? The two models are similar, both stand for offshore software development, and both offer dedicated developers. How do you tell them apart? How do you make the rights choice?
Let’s start with outsourcing software development – a more complex approach. Imagine that you have no in-house development team, no technical specialists in your company, but you need to develop a software product. If it is only one project, which will be completed and closed in a few months, does it make sense to recruit in-house developers? Most likely, even if you decide to invest in hiring, onboarding, training, and then, offboarding, professional engineers will not be willing to start working with you full-time for such a short period of time. In this case, the more rational choice is to outsource your project to an external team of developers – an outsourcing provider.
Outsourcing means giving your software product idea to a remote development team and them giving you a final product. The outsourcing software development team composition depends on your project requirements – it may or may not involve business analytics or UI/UX designers, but it must involve software engineers, QA specialists, and a Project Manager. If you partner up with outsourcing companies, you are free to choose whether you want to monitor the project closely or you fully trust a PM with it.
The House Example
For example, you want to build a house, but you do not want to build it yourself. You hire a construction team, tell them your wishes or show blueprints if you have any, and leave them to it. Building the house is their job now. You can visit the construction site daily or weekly, or you may even come back a year later when it is entirely done. Once they finish, you shake on it, finish all the payments and documents, and tell the goodbyes. Now, the house is all yours.
The circumstances when you would require outstaffing services are different. To engage in outstaffing, you must have an in-house development team. Imagine that you have a team of developers, designers, testers, PMs, whom you have hired permanently and who work full-time with you. What if at some point you have some urgent development needs, and the team has no time or resources to manage them? You can hire another full-time specialist if the increased scope of work is going to persist. If the increase in workload is a temporary issue, you should engage in outstaffing instead.
Outstaffing equals hiring a remote full-time or part-time specialist, who will act as a temporary member of your in-house team. This model lets you hire basically any software development specialists or a couple of them – depending on your project needs. Outstaffing, however, requires project management to be ensured on your side.
The House Example
Imagine that you have decided to build a house yourself, and your friends or relatives agreed to help you. The work on it is long underway, but at some point, you realize that you have nobody who knows how to deal with wood. You go to a local construction company and sign an agreement with a carpenter, who will now work hand-in-hand with your development team. After their job is done, you end the cooperation and proceed to do what you have to.
Fixed Price vs Time & Material
Supermarkets have fixed prices for everything they have in stock. Banks have fixed commissions. Service providers like barbershops or gyms also offer a price that you know beforehand. And that works perfectly fine. When you start a software project, you would also expect to know its price in advance. You would want to compare the prices of different vendors and to know which budget you need to cover.
So, you go to a software vendor and ask something like "How much would it cost to build a website?". If the vendor is honest with you and respects your business, you will not get an answer immediately. There's a good reason for that: websites may be quite different, and the word "website" does not tell much about the things you have on your mind. Sadly, a note that "it's an e-shop" will not help much here either. If at this point, you get a simple answer about the price, you definitely want to think twice before partnering up with this vendor.
At KeenEthics, for the time being, we have never had two identical projects. Obviously, most of them have had something in common. For example, you would need a login feature for most web-applications. But even login flow might have quite a lot of differences. Do you need social login? If so, which social networks should be supported? Do you need password recovery?
There are two models that will help you decide on project pricing – Fixed Price approach and Time & Material approach.
The Fixed Price approach lets you know the project price beforehand. You negotiate and confirm the price, and this is how much you will pay once you receive the final product. A conscientious software vendor would try to figure out all your requirements. Here, you will have to answer multiple questions starting with the overall business idea and finishing with minor login details. The UX-expert might try to prepare mockups of the final product, which you will be expected to critique. All the information will be documented, detailed, and decomposed into actual tasks. Only after that, the software engineers will estimate the time needed to complete each objective. Based on this estimation, the actual price will be calculated. Obviously, this takes quite some time. For larger projects, it might take months to finalize and document all the requirements, which increases the end price of the project.
However convenient it sounded, this approach is quite risky. In most cases, following this approach still will not give you a 100% accurate estimate. As a rule, the estimation process is conducted with the help of previous experience and intuition, which still leaves some room for deviations. Deviations produce risks. And risks also make their way into the final price. One side is always losing. Either the price is too high and you end up overpaying, or the price estimate is too low and the software development company is left underpaid. The latter case bears an important risk to you as well – as soon as the software development company starts going beyond the budget, they may compromise quality in the pursuit of ending the project sooner to reduce expenses.
The Fixed Price approach is sometimes employed in outsourcing but almost never used in outstaffing.
The House Example
You negotiate the price of the house with your construction team. They review all the requests and blueprints, ask you about everything in the smallest details, and tell you the final price of the house, which includes labor costs, costs of materials, and costs of equipment. Now you know the final price, so you can start planning your budget and collecting the necessary amount of money. When you are shown the completed house, you have to pay the negotiated price, and it is not important if the currency rates changed, the work was finished much sooner than expected, or the resources appeared to be quite cheaper than expected. Also, if you want to implement some slight changes, you have to sign a separate contract and negotiate a different price because these changes were not covered in the previous one.
"Time & Material" Approach
The Fixed Price approach has a simple and flexible alternative – “Time & Material”. Prior to the project start, the team gives rough estimates, and if confirmed, they proceed to development. Each specialist is assigned a certain hourly rate. The cost of the project is counted as the rates of each specialist multiplied by the number of hours spent. Sometimes, it may also include the costs of necessary resources, such as Jira or some technology license. “Time & Material” approach also takes into account the number of hours spent working overtime or during the weekend. This model is much fairer than the other one because the development team is paid as much as they have worked. It also enables the development process to start much faster and gives the customer a high flexibility to change requirements on the go.
This model, however, requires trustworthy relationships between the client and the development team. If you have no confidence in the development team and you are not sure that they will tell you the truth, you risk losing money. It happens that developers record more hours than they actually spent working. Unfortunately, it is something you cannot prevent. The most you can do to protect your budget from somebody’s greediness is to communicate closely with developers, to be open with them, and to keep the healthy atmosphere in the team.
“Time & Material” model is equally used in both outsourcing and outstaffing.
The House Example
You hire a construction team to build your house, they look at blueprints and tell you the approximate cost of your project. You agree that they keep track of all the resources they use and of the number of hours they spend working. Another important point to discuss is how and when you make payments. You do not know exactly how much the house will cost, so you probably should start collecting a bit more money than was estimated. When the house is being built, you can introduce changes to requirements freely. For instance, you want the porch to be made out of wood, not bricks. Each month or after the house completion, depending on the initial agreement, you meet with the team and review their cost records. If there are no questions, you proceed with the payment. Yet, you better make sure that the team is a trustworthy one, or they still some materials from you.
To Wrap Up
Here at KeenEthics, we respect the opinion of our outstaffing and outsourcing partners. If you would like to trust us with your project, we will make sure that the development process is smooth and transparent. If you need us to augment your in-house team, we will provide you with the most dedicated developers.
If you feel good about rough estimations and flexible development process, we will eagerly implement the “Time & Material” approach. Meanwhile, if you have detailed requests and want to see prototypes first, we agree on taking a longer path and conducting comprehensive documentation and estimation. What we will not do, however, is telling you a random price to engage you in collaboration. Eventually, it would have a negative impact on the product quality and on our relationships. We value the needs and interests of businesses that trust us with their idea, and we hold responsibility for our estimations and project plans.
Do you need a dedicated software development team?
Our professionals will gladly help you with your project! Learn more about why and how to hire a dedicated development team.