Since custom software is developed for a single customer it can accommodate that customer's particular preferences and expectations, which may not be the case for
commercial off-the-shelf software. 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). In particular, the first phase in the
software development process may involve many departments, including
marketing,
engineering,
research and development and general
management. Large companies commonly develop custom software for critical functions, including
content management,
inventory management,
customer management,
human resource management, or otherwise to fill the gaps present in existing software packages. In many cases, such software is
legacy software, developed before commercial off the shelf software or free software packages offering the required functionality with an acceptable level of quality or functionality became available or widely known. For example, the
BBC spent a great deal of money on
a project to develop its own custom digital media production and management software, but the project experienced troubles, and after many years of development, was cancelled. 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. Custom software development is often considered expensive compared to off-the-shelf solutions or products. This can be true if one is speaking of typical challenges and typical solutions. However, it is not always true. In many cases,
commercial off the shelf software requires customization to correctly support the buyer's operations. The cost and delay of commercial off the shelf software customization can even add up to the expense of developing custom software. 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. However, modern commercial off the shelf software often has
application programming interfaces (APIs) for
extensibility - or occasionally, as in the case of
Salesforce.com, a
domain-specific language (DSL) - meaning that commercial off the shelf software packages can sometimes accommodate quite a wide variety of customisations without the need to access source code of the core commercial off the shelf software system. Additionally, commercial off the shelf software comes with upfront license costs which vary enormously, but sometimes run into the millions of US dollars. Furthermore, the big software houses that release commercial off the shelf software products revamp their product very frequently. Thus a particular customization may need to be upgraded for compatibility every two to four years. 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. This is because commercial off the shelf software vendors can opt to use techniques such as: • making "under the hood" changes while retaining
backward compatibility with customizations written for older API or DSL version(s) • supporting old API version(s) and new API versions simultaneously in a new version of the software • publishing guidance warning that support for old API or DSL versions is to be removed from the product in a subsequent version, to give customers more time to adapt customizations. The decision to build a custom software or go for a commercial off the shelf software implementation would usually rest on one or more of the following factors: • Finance - both cost and benefit: The upfront license cost for commercial off the shelf software products mean that a thorough cost-benefit analysis of the
business case needs to be done. However it is widely known that large custom software projects cannot fix all three of scope, time/cost and quality constant, so either the cost or the benefits of a custom software project will be subject to some degree of uncertainty - even disregarding the uncertainty around the business benefits of a feature that is successfully implemented. • Supplier - In the case of commercial off the shelf software, is the supplier likely to remain in business long, and will there be adequate support and customisation available? Alternatively, will there be a realistic possibility of getting support and customisation from third parties? In the case of custom software, the software development may be outsourced or done in-house. If it is outsourced, the question is: is the supplier reputable, and do they have a good track record? • Time to market: commercial off the shelf software products usually have a quicker time to market • Size of implementation: commercial off the shelf software comes with standardization of business processes and reporting. For a global or national organisation, these can bring in gains in cost savings, efficiency and productivity, if the branch offices are all willing and able to use the same commercial off the shelf software without heavy customisations (which is not always a given). ==Major fields==