Organizations with unique characteristics and transaction processing requirements, such as government agencies, often satisfy these requirements by (a) acquiring software from vendors who have developed applications for that particular type of organization, or (b) developing software internally from scratch. When either of these approaches is taken, the development costs are spread over a relatively small number of organizations, and the resulting system can be very expensive. Also, due to the uniqueness of the application and the relatively small number of users, it may take a long time to identify and correct any processing errors. An alternative is to acquire general-purpose software that has been developed for a wide range of organizations, and to adapt it for the agency in which it will be installed. However, this alternative approach is frequently not undertaken because it is often believed that general-purpose software is unable to provide all of the information required by the organization. When the required information can be provided, though, general-purpose software can be less expensive and less time-consuming to implement.