Custom software may be developed in an iterative processes, allowing all nuances and possible hidden risks to be taken into account, including issues which were not mentioned in the original requirement specifications (which are, as a rule, never perfect).
A key stated reason for the project cancellation was that it had become clear that commercial off-the-shelf software existed that was, by that point, adequate to the BBC's needs and available for a small fraction of the price.
In many cases, commercial off the shelf software requires customization to correctly support the buyer's operations.
Cost is also not the only consideration in the decision to develop custom software, as the requirements for a custom software project often includes the purchaser owning the source code, to secure the possibility of future improvement or modifications to the installed system to handle changing requirements.
[3] Additionally, commercial off the shelf software comes with upfront license costs which vary enormously, but sometimes run into the millions of US dollars.
Given the cost of customization, such upgrades can also turn out to be expensive, as a dedicated product release cycle may have to be earmarked for them.
However, in theory, the use of documented APIs and/or DSLs, as opposed to direct access to internal database tables and code modules, for customization can minimize the cost of these upgrades.
Custom software is often used by small shops,[citation needed] supermarkets and wholesale sellers to handle inventory details and to generate bills.
Failures and cost overruns of government IT projects have been extensively investigated by UK Members of Parliament and officials; they have had a rich seam of failures to examine, including: When a business is considering a software solution the options are generally between creating a spreadsheet (which is often done in Microsoft Excel), obtaining an off-the-shelf product, or having custom software created specifically to meet their needs.
As such the decision can only be made on a business-by-business basis to determine if it warrants a custom development, as well as ownership of the software.
Although not always the most suitable for larger or more complex projects, a spreadsheet allows less technical staff at a business to modify the software directly and get results faster.