Custom software can be developed by an in-house software development group, or be commissioned from a software house or independent software developer.
Since custom software is developed for a single customer it can accommodate that customer's particular preferences and expectations. Custom software may be designed in stage by stage processes, allowing all nuances and possible hidden dangers to be taken into account, including issues which were not mentioned in the specifications. Especially 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 needs that existing software packages cannot. Often such software is legacy software, developed before COTS 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, this is not always true. Custom software development by a renowned vendor is often a matter of building a house upon a solid foundation. This can be done quickly and with top-notch quality designed to meet every client's needs