Customised software (also known as bespoke software or tailor-made software) is software that is specially developed for some specific organization or other user. As such, it can be contrasted with the use of software packages developed for the mass market, such as commercial off-the-shelf software, or existing free software. Considerations 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,