Why do we need a prototype?

A Computer Science student asked: “Why do we need to build a prototype? I believe that I can build software based on the requirements without have to go through another step of prototyping. It is a waste of time and I am confused. Please advice.”

Answer: By definition, a prototype is a working model that is functionally equivalent to a component of the product. A prototype is NOT the real product but only incomplete versions of the product. Students often confused about prototyping because in school they are given a clear requirements where they can start design and code immediately but in the working environment, customers often do not give a clear requirements. They only have a general view of the software product but not enough details. Of course without detailed information, developer cannot design and code so they need to build a model or prototype and allow customers to use it to see if it is what they need. By interacting with a working prototype, customers can provide inputs, feedbacks and detailed functionalities so developers understand what customer’s needs are and document them in the requirements specifications and start the project.

The process of prototyping consists of the following steps: Identify basic requirements for the product. Determine the input and output information desired. Develop the first prototype that only includes user interfaces. Let customers examine, interact and provide feedback on additions or changes. Revise the prototype with the user interfaces until customers are satisfied. Begin to add call to each function without develop the real function and negotiate with customers about what functions are needed, the priority of the functions as well as the scope of the project.

By using prototyping software developers can obtain feedback from the customers early in the project so the requirements are better defined. The customers and developers can determine if the software product matches the software requirements. It also allows the software developers to better estimate the time and costs based on the accuracy of requirements specification then plan the project accordingly. Without prototyping, developers may build something that customers do not want which requires modifications and fixings which often lead to higher costs and more defects.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University