I was with a client from Australia last week and he said; “Only way to sustain a relationship is when both client and vendor are gaining from the deal”. Fixed-price contracts have the highest propensity of getting into the red and as a software services company you need to very careful (if not wary) of entering into such contracts.
When can you give a fixed quote?
Here are the rules – giving a fixed quote makes sense only when:
1. The scope of work is detailed enough to be estimated properly and you can plan the project.
2. You can meet or exceed the expectation of the client within reasonable amount of tolerance (i.e. while keeping yourself profitable)
On the other hand, you can never make money with fixed price contracts unless:
1. You have the knowledge of the business domain. This is simple to explain – if you have never built a “newsletter application” before, you will never be able to estimate it correctly. Clients cannot detail out everything and they expect the vendor to fill in the gaps, unless you have worked on the same type of applications earlier, these gaps will seem like rifts and you will blame client for not specifying everything. Remember that technical skills are not a replacement of knowledge of business domain.
2. You have the right team to do the job. Again, when you estimate something, implicitly you are assuming certain base skill-sets which you know your team possesses. At the time of execution, if a team that does not have the adequate skills or experience is assigned to the job, the project will take 10x longer.
3. You know the technology. This is no biggie! you cannot estimate R&D time beforehand. At best you can budget out for 15 days R&D but you can guarantee that at the end of two months, all unknowns will be known.
4. You have sufficient cushion. No, I am not talking about sleeping over the project! You need to have adequate slack of time, budget and profitability. If your developer estimated 20 days and you gave calendar 20 days to the client then you are doomed even before you start. Similarly, if your client’s budget is $1000 and your budget is coming to $900, its better to say goodbye to this project.
5. You factored the complexity of the project into quote. Complexity is a multiplier to the cost of the project. Forget the technical matters, you may need to change your price by upto 3x depending on the nature of the client. You need to have enough financial incentives to work with a client who is control freak and demands an update 6 times a day. Other factors to consider except technicality is communication with the client or involvement of 3rd party vendors.
Remember: Prevention is better than cure!