- Custom Software Development
Custom 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 (COTS) software, or existing free software. Since custom software is developed for a single customer it can accommodate that customer's particular preferences and expectations. 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 use custom software for critical functions, including content management, inventory management, customer management, human resource management, or otherwise to fill the gaps present in the existing software packages. Often such software is legacy software, developed before COTS or free software packages offering the required functionality became available. 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, COTS software requires customization to correctly support the buyer's operations. The cost and delay of COTS customization can even add up to the expense of developing custom software. Cost is not the only consideration however, as the decision to opt for custom software often includes the requirement for the purchaser to own the source code, to secure the possibility of future development or modifications to the installed system. Additionally, COTS comes with upfront license costs which vary enormously, but sometimes run into the millions (in terms of dollars). Furthermore, the big software houses that release COTS 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 also turn out to be expensive, as a dedicated product release cycle will have to be earmarked for them. The decision to build a custom software or go for a COTS implementation would usually rest on one or more of the following factors.