Often an IT project involves a relatively new technology or combination of technologies with which you and your staff have little familiarity and even less expertise. This is especially true in state and local government agencies, which traditionally opt to stick with tried-and-true technologies that may be several generations older than the proposed technology. To apply the new technology successfully in a cost-effective manner, all project participants -- from end users who are specifying system functionality to developers who deliver the ultimate implementation -- need to be thoroughly familiar with the potential benefits and risks inherent in the technology. Prototypes help you understand the proposed technology fully in order to reengineer processes successfully and take maximum advantage of the new system.
What is it?
Proof of concept. We define a "prototype" as a system built for a proof of concept. It is not a full-scale system or even a pilot. A prototype essentially identifies, demonstrates, and evaluates the key management, policy, technology and costs implications of a desired system. A prototype is also built to identify the value proposition all participants.
An education and communication tool. Prototypes help educate end users, managers, and system developers about potential applications of technology, and how it can help solve their problems. Prototypes are powerful tools used to bridge the gap between what project team members currently know about a new technology and what they will need to know to apply it successfully. They also help bridge the gap between developers and potential users because both groups can look at and discuss the prototype in concrete terms.
Not a pilot system. The purpose of a prototype is to show prospective users how a system might work so that they may think creatively about its potential usefulness. By contrast, a pilot is used in a limited real-life setting. Pilots are much more costly than prototypes to build because they have to work well enough not to hinder the activity of people who have to get real work done. This requires an attention to quality control and performance that typically drives the cost of development up substantially.
What is it good for?
Educating projects participants. The primary value of a prototype is to educate the project participants. Often, end users and managers have the least awareness of a technology's potential because they may not have been exposed to it through their day-to-day activities. Therefore, prototypes typically emphasize the user interface portion of the system. Prototype development may also address data preparation costs, maintenance requirements, technical support requirements, end-user training requirements, and infrastructure needs.
Stimulating both imagination and realism. A prototype can push people to dream of potential innovative applications of the technology. At the same time, seeing the technology in the concrete leads to a more realistic assessment of costs and benefits. Seeing a mock-up of the application helps guide the analysis to factors that are relevant to the real work of an organization. Interviews, model-building, surveys, and experiments all become more accurate if the participants have personally experienced how a system might work. The prototype itself can be used to gather data on the likely impact on processes and operations.
Setting the stage for implementation. Prototyping activities can be aimed at all levels of staff. If the system being prototyped is ultimately procured, training and other costs may be lower because of your organization's experience with the prototype.
Assessing risk. The reactions that people have to a prototype can help you assess the risks involved in the project. Risks may be inherent in any of the internal or external factors that could affect the success of the project. These may include such potential barriers as staff and client resistance to change, immaturity of a new technology, personnel limitations, technology failures, and expected changes in the technical, political, or management environment.
Some limitations and considerations
Won't work like a real system. Because a prototype is only part of a system, it won't work like a real system. It will have very limited functionality, few attractive presentation features, and limited or fake data. The limitations of the prototype may not be apparent to naive users, and their experience needs to be moderated by expert advice.
Can be costly. Depending on the educational needs of the project and the technologies involved, developing a prototype may be a costly proposition. If custom development is necessary, you may need someone experienced in a particular rapid application development environment. Specialized hardware and software may be necessary to support even a small prototype.
For more information
Lewis, R. (2002) "The Value of a Test Drive." Information World 24 (13) 48.
Sommerville, I. (2000). Software Engineering, Sixth Edition. New York: Addison-Wesley.