A prospective customer asked for a feature requiring a technology I’m not very comfortable with. I have just never used this technology before, but because of my extended experience of commercial software development, I still could give a reasonable cost estimate, which was 15000€.
Before this figure was communicated to that customer, a decision has been made to investigate the technology first. This research took around one and a half days, which is roughly 1000€. The result of investigation was that we can safely offer that feature for as low as 9000€. This time it was pure luck for the customer, because this technology had to be investigated anyway due to strategical reasons, so he has benefited from the results of the investigation for free.
But what would have happened if we had asked him to pay for investigation? Then, he would have invested 1000€ and saved 5000€. A 400% rate, not bad! Comparing this rate with high performance funds, the funds suck.
The thing is, he would have never agreed doing such investition. The result of the investigation could have been that the feature had required more than 15000€. In this case, the customer would have not only spent 1000€, but also paid more for the implementation. Because we work with fixed prices, by offering an unknown technology for 15000€ we also take over the risk of over-budget. Thus, without investigation, the expenditures of the customer are limited by 15000€. Gambling with a chance of 400% win, but also a loss possibility of 1000€+X is too risky for most our customers.
Now, what would have happened if we hadn’t investigate the technology and offered 15000€ to him and he had accepted the offer? We would have spent the first 1000 out of 15000€ for investigation and implemented the feature for 9000€. The resting 5000€ would have been our insurance premium.
The more I learn about software developing business, the more it looks like selling insurances against technical risks and making money out of fear of unknown.