There are alternative methods for building an information system. They include:
- Systems lifecycle
- Application software packages
- End-user development
The systems lifecycle is a traditional methodology that uses a phased approach to building a system, dividing systems development into formal stages, roughly corresponding to the stages of systems development. Each stage consists of basic activities that must be performed before the next stage can begin. Technical specialists are responsible for much of the systems analysis, design, and implementation work; end users are limited to providing information requirements and reviewing the work of the technical staff.
Prototyping is the process of building an experimental system quickly and inexpensively for demonstration and evaluation so that end users can better define information requirements. The prototype is a preliminary model that is refined until it meets end-user requirements. The process of repeating the steps to build a system over and over again is called an iterative process. Prototyping is more explicitly iterative than the conventional life cycle and it actively promotes system design changes.
The four-step model of the prototyping process consists of the following:
- Identify the user's basic requirements
- Develop a working prototype
- Use the prototype
- Revise and enhance the prototype
FIGURE 13-8 THE PROTOTYPING PROCESS
The process of developing a prototype can be broken down into four steps. Because a prototype can be developed quickly and inexpensively, systems builders can go through several iterations, repeating steps 3 and 4, to refine and enhance the prototype before arriving at the final operational one.
Prototyping is most useful when some uncertainty exists about user requirements or a design solution. It is especially valuable for the design of the end-user interface of an information system such as on-line display and data entry screens. End-user involvement means that the system is more likely to fill user requirements. However, rapid prototyping can gloss over essential programming and documentation steps, or be poorly designed for large quantities of data.
In end-user development, software tools called fourth-generation languages enable end users to create reports or develop software applications with minimal or no technical assistance. There are seven categories of fourth-generation languages:
- PC software tools
- Query languages
- Report generators
- Graphics languages
- Application generators
- Application software packages
- Very high level programming languages
Query languages are software tools that provide immediate online answers to requests for information that are not predefined, such as "Who are the highest-performing sales representatives?" Query languages are often tied to data management software and to database management systems.
On the whole, end-user-developed systems are completed more rapidly than those developed through the conventional systems life cycle. However, fourth-generation tools still cannot replace conventional tools for some business applications because they cannot easily handle the processing of large numbers of transactions or applications with extensive procedural logic and updating requirements. When systems are created rapidly, without a formal development methodology, testing and documentation may be inadequate. Control over data can be lost in systems outside the traditional information systems department.
An application software package, another strategy in developing an information system, is a set of prewritten, precoded application software programs that are commercially available for sale or lease. There are application software packages available for simple tasks and for complex mainframe systems. Packages are likely to be chosen as a development strategy where functions, such as payroll systems, are common to many companies or where there are limited information systems resources for in-house development and when microcomputer applications are being developed for end users.
The use of software packages, along with vendor's support staff and documentation reduces costly systems design work and maintenance and support costs. Some package software developers provide some features for customization, which allows a package to be modified to meet unique requirements without destroying the integrity of the package software.
The key criteria in evaluating application software packages are: functions; flexibility, user-friendliness, hardware, software resources, database requirements, installation and maintenance effort, documentation, vendor quality, and cost. The package evaluation process is often based on a request for proposal (RFP), which is a detailed list of questions submitted to vendors of packaged software. Design activities focus on matching requirements to package features. Instead of tailoring the systems design specifications directly to user requirements, the design effort will consist of trying to mold user requirements to conform to the features of the package.
Outsourcing means using an external vendor to build or operate a firm's information systems. The system may be custom built or may use a software package. In either case, the work is done by the vendor rather than by the organization's internal information systems staff.
Outsourcing often saves application development costs or allows firms to develop applications without an internal information system staff, but it can also mean a loss of control over their information systems, overdependence on external vendors, and may involve unforeseen, hidden costs. Outsourcing is appropriate for applications that are not sources of competitive advantage or that require technical expertise not available in the firm.