If we talk about the software service industry, bidding process for software development is nothing different from any other services in the market. Whenever an organization needs some automation there are usually two options, it’s either to build or to buy. Irrespective of the decision whenever some software development effort needed, organization invites proposal from multiple service providers aka vendors to select the best suited in terms of capabilities and cost.
Deep Insight
Let’s take a deeper look into this bidding process. For any such requirements, organizations float an RFP [Request for Proposal] across multiple vendors which they need to respond in some time frame. This is usually accompanied by some documents. Organizations usually expect a fixed cost from its vendors for the software development. Vendors study their documents and provide overall cost as a part of their response. Within this whole process, both organization and vendor ignores the accuracy of effort estimations [for software development] and hence the associated cost.
It’s very unlikely that an organization will have 100% requirements ready before it starts the bidding process. Even though it has, it cannot be communicated properly to vendors. And even if it can be, it’s not possible to analyze it completely. Insufficient time, details and communications could be the some of the reasons for this. Due to all these challenges, cost provided by vendor is highly inaccurate and it can vary drastically. In fact I have seen variations even to the levels of 200% - 300%.
Cause
Software development as a service cannot be compared with other services in the market. Let’s say an organization needs repaint to its office premises [building for e.g.], it will issue the bidding proposal to multiple vendors. Vendors will carry out some building measurements and can easily provide the overall cost [based on some past data] with high accuracy.
This kind of cost estimation is absolutely not possible with Software Development. Due to its diversified nature in terms of requirements, technologies, environments, engagement models, and so many other factors, it’s difficult to come up with an accurate figure [before getting into it], and hence the costing of whole exercise. In fact software estimation is an art and there have been very few projects which are completed within predefined time and budget, and are successful of course.
Consequences
Industry figures say that more than 70% projects in IT are failed ones. Some of them didn’t complete at all and abandoned in between. And others are done but with increased cost, time or both. Some organizations blame vendors for it. Some blame it to technologies and some to the engagement/management models. Well I agree with all of these to some extent, but I feel one of the major reasons is this un-tuned bidding process. As I said earlier, software development cannot be treated same as other services. If the standard bidding model is not changed, it will always be difficult for the vendor to provide cost and time estimates correctly. And till the time it continues, we will witness project failures in this industry.
What next?
How can we tune this bidding process for software development? One solution for this could be Time & Material [But organizations are usually not in favour of this for some other reasons :)].
Well I am sure this problem can be handled in multiple ways. It requires more churning of our throught processes to come up with a better strategy and model around it. But sooner we start better we can expect from this IT industry TO BE!!