Traditional engineering designs, e. g., building as bridge, go through distinct phases:
The feasibility study is an investigation that results in a written document that:
The goal of the feasibility study is to discover possible solutions and to determine which of these appear to have promise and which are not feasible, and why.
Each alternative is examined to determine whether or not it can be physically achieved, whether its potential usefulness is commensurate with the costs of making it available, and whether the return on the investment warrants its implementation. The feasibility study is in effect a pilot project whose primary purpose is to seek information pertinent to all possible solutions to the problem. After the information has been collected and evaluated, and after the undesirable design possibilities have been discarded, the engineer still may have several alternatives to consider - all of which may be acceptable.
During the generation of ideas, the engineer has intentionally avoided making any final selection in order to have an open mind for all possibilities and to give free rein to the thought processes. Now the number of ideas must be reduced to a few - those most likely to be successful, those that will compete for the final solution.
Software developers have learned that the traditional engineering feasibility study is not usually appropriate for software development. For example, software rarely has impact on the environment in the same manner as a chemical plant. Manufacturabilty is usually a non-issue. How much does it cost to copy a diskette? Therefore, software companies have developed their own variety of the feasibility study. Below is one based on Roger S. Pressman's book Software Engineering: A Practitioner's Approach [fourth edition, McGraw-Hill, 1997, pages 253-259, in Bucknell's library on reserve for our course].
From painful experience, managers of software development find scarcity of resources (all kinds including human, hardware and software) and difficult delivery dates to be two critical reasons for the failure of a project.
"All projects are feasible -- given unlimited resources and infinite time! Unfortunately, the development of a computer-based system or product is more likely plagued by a scarcity of resources and difficult (if not downright unrealistic) delivery dates. It is both necessary and prudent to evaluate the feasibility of a project at the earliest possible time. Months or years of effort, thousands of millions of dollars, and untold professional embarrassment can be averted if an ill-conceived system is recognized early in the definition phase." Pressman, p. 253.The feasibility of a project is related to the risks involved. See Pressman's Chapter 6 on "Risk Management."
In a feasibility study, Pressman states we need to concentrate our attention on four primary areas of interest:
The feasibility study results in a written document called the Feasibility Report. The following outline for the Feasibility Report is close to the one suggested by Pressman.