Custom software may be required for an organization when off-the-shelf software cannot be readily adapted to meet their needs. Since this custom software must meet specific needs, it is essential that these needs be described thoroughly and accurately. It is also essential to provide flexibility in the custom software so it can be easily revised to meet changing needs.
Specifying the requirements
It can be extremely difficult for an organization to describe the overall objectives and detailed requirements for their custom designed software. They probably want the software to be compatible with their existing operational procedures. However, they may not be able to describe these procedures in sufficient detail. For example, no one party in a typical organization of any size knows all the details of their existing procedures. There is a further complication in deciding how the new software will merge with or replace existing procedures.
The software developer should interview various people in the organization’s management and operational departments to help achieve a useful and workable set of requirements.
Selecting the software contractor
One of the best ways to decide whether to use a particular contractor is to interview some of their recent customers that had comparable software needs. If any of these customers was not satisfied with their results, the software contractor in question may not be suitable.
The management and contact people of the organization must feel comfortable in discussing their needs with the proposed software contractor. The contact people of the software contractor must be able to understand typical needs of their customers. If these two groups of people cannot communicate with each other, there is little chance for a successful software project.
The software development contract
Typical provisions for a software development contract:
* The formal requirements of the custom software
* The various services to be provided by the developer
* Any required mileposts and their deadlines
* Payments for attaining a milepost
* Penalties for failing to meet a deadline
* How to submit changes in the software requirements
* Payments for any changes during software development
* Final payment upon acceptance of the custom software
* Payments for any changes after software development
* How to handle disputes between the two parties
Changing the requirements
Experience has shown that formal software requirements invariably are incomplete, or perhaps even incorrect. Therefore, it must be assumed that these requirements may be changed during and subsequent to the software development.
Debugging the software
It often happens that the completed custom software does not operate properly under certain conditions. Hopefully, most of these problems will be discovered by the software contractor during software testing. However, some additional problems may not be discovered until the software is actually being used in day-to-day operations.
Training operators for the software
The people of the organization who will use the custom software must be properly trained. This training may be done by people within the organization, by the software contractor, or by a third party.
Using and revising the software
During the initial use of the custom software, the users should be on the lookout for any possible problems. These problems should be thoroughly documented when they occur. The organization may want to request a change to the software. They may want to implement some kind of workaround to solve the problem. They may want to change their operational procedures to avoid the problem.