Why do I like fixed-price projects?
We have been delivering software development services at Kvinivel for more than 8 years. During this time, I learned one interesting thing. We tried different kinds of cooperation namely outstaffing, outsourcing, some mixed things, time and material, fixed price, and some very customized billing schemes.
Several years ago, I realized that a complete development cycle with a fixed price is the most efficient scheme for us and for our clients. This remains true even considering that we mostly work on complicated solutions where we have no well-defined and well-known approach.
So why did this happen? Why taking risks (sometimes for the same price) is more comfortable for our team? The answer is quite simple. We have a lot of startups, and small and medium businesses as clients, and most of them have no BA in their teams, and their executives have a lot of tasks apart from the development process. Therefore, they have no time/resources for two very important things —requirements analysis and development process management.
When we work as outstaffing or outsourcing providers, we have poor requirements very often. Sometimes it’s a very short document with terrible mockups and undefined logic, sometimes it’s huge document with a lot of text not divided into user stories. In both cases, it’s very hard for a developer (even a senior developer) to work with such requirements. As a result, we have a lot of change requests. Clients have to spend additional money. Developers become nervous because they feel that they have done something wrong and in the case of the fixed price scope management becomes a real war.
Everything is much better when we work as a solution provider. When a client describes an idea, we prepare requirements and implement them. Our BA team discovers all gaps in the client’s vision of the project at the early stage. We predict most technical risks and can offer several alternative solutions. We have been polishing our development process for 8 years. And I can say that we are much more efficient in the development process than a team of very talented and motivated developers in a startup because we saw a lot of projects which became successful businesses while others failed.
Our developers have well-defined and well-structured tasks created by the BA team. Managers have well-defined scopes and requirements. As a result, clients have predictable prices and quality. Therefore, we do projects faster, better, cheaper, and have less percentage of not billable or problematic hours.
These are the things that really work, even with big businesses when they have no dedicated development team. You know your business, what things make your product successful and different, but companies like ours know how to implement this in the real world with real tools and technologies. And sometimes we got this knowledge from failures.
Consequently, if your service providers tell you that they are going to take care of everything, think twice before you decide that you know better how to build your software. Unless you would like to have some failures to get more knowledge. 😉