Email this page to a friend   

Email to a friend


(Alias: mock-up, model)

The management question, therefore, is not whether to build a pilot system and throw it away. You will do that. [...] Hence plan to throw one away; you will, anyhow.
             - Fred Brooks, The Mythical Man-Month: Essays on Software Engineering

A prototype is a working model of a system developed to demonstrate and validate a customer's expectations of major functions and user interfaces.

The Role of the Prototype in Software Development

The prototype is used to:

  • Determine the feasibility of user requirements and design approaches
  • Determine the necessity of a function
  • Uncover missing requirements
  • Determine the viability of a user interface
  • Engage the end user in system design
  • Test the viability of new technology.

Prototypes are used where the requirements of a system are not well understood or a new design approach is being trialed. Experience has shown that working models can improve communication with the user or, in the case of design, help solidify a practical design approach.

Prototypes are developed with small teams using high productivity tools that are typically not those of the target production environment.

The Benefits of Using a Prototype

Projects that adopt a prototyping approach experience the following benefits:

  • Discovers missing requirements. End users operating a working system (as opposed to reading a document) are much more likely to identify missing functions and data
  • Increases active user participation. End users take a more active role in determining system functionality. Prototypes generate more interest and therefore more active, creative involvement. The risk of user rejection of the production system is significantly reduced
  • Validates requirements early. The customer is able to verify that the system will work in the business environment early in the development life cycle
  • Migrates iteration earlier in the life cycle (where it's much cheaper). In environments where requirements are not well understood some iteration is always necessary. If a user must wait until a production system is delivered to identify problems, the corrective action can be extremely expensive. If the iteration is done in the requirements phase using a prototype, significant cost savings can be made as prototypes can be changed at low cost and the turnaround time between iterations can be one to three days
  • Clarifies system scope for estimation. A prototype provides a more accurate model of the end system (when compared to a document) allowing developers to get more precise function point counts, the end result being a more accurate cost estimate to complete.

Attributes of a Good Prototype

  • It works. It can be operated by user without a developer behind the curtain
  • It is ergonomically sound. It can be operated by a user with minimal training
  • It has a user guide. It has basic user documentation
  • It looks like the end product. It approximates the look and feel of the proposed system: same user interface, same inter screen flow
  • It provides all primary functionality
  • It traps errors. It provides error detection and correction.

Prototypes Are Not Production Systems

Most prototypes are not suitable for deployment as production systems as they DO NOT have:

  • Robustness. They are typically unstable
  • Performance. They will be slow and unstable when scaled to production use (example: multiple concurrent users, high transaction rates)
  • Concurrency control. They are designed for single user environments. For example, data may be corrupted if two users attempt to update the same information concurrently
  • Security. They do not provide user access control or audit trails of user activity
  • Completeness. They only demonstrate part of the system's functionality
  • Recovery/restart. They do not address recovery from system failure modes
  • Operational documentation. They are not formally specified
  • Quality control. They are not thoroughly tested.

Member Comments


12 member ratings

✭ ✭ ✭ ✭ ✩

RE Definition: Prototype

7 Benefits a .NET Developer Can Bring for Your Website

By TimothyFreeman » Wed 01-Dec-2021, 02:33, My rating: ✭ ✭ ✭ ✭ ✩

The interest for the product engineers overall and the interest for the .net developers specifically is exceptionally high in the commercial center. As per the Robert Half data, three fundamental purposes behind not are having the option to employ net engineer without any problem. Those reasons incorporate the information on the range of abilities for a decent speck net developer, longer recruiting processes at organization's end, and the organizations requesting elevated range of abilities and mastery without putting away some time and cash on preparing. Hence, employing a .Net engineer is actually somewhat troublesome on the lookout.

Since numerous developers these days want to work with enormous tasks and organizations are searching for such up-and-comers, there is a simple way how they can meet one another. It is outstaffing. In the event that you are curious about the outstaffing system of recruiting – it is very straightforward: in case you are searching for PHP developers, for instance, you apply with your solicitation in an organization which gives staff and it tracks down ideal workers for you, regardless of whether you need them on a transitory premise or for a long haul. The organization's enlistment group is mindful to enlist NET designers for you, they select the appropriate .Net engineer inquiries questions and tests, giving you .Net designer continue. Clearly, it sets aside a great deal of effort to do that and you don't need to spend it. On the off chance that you are intrigued not just in .NET designers and .NET advancement organization, Ukraine offers, yet during the ones with other got abilities too, look... check details here

13 Comments  • Page 2 of 13 •        Previous «  1   2   3   4   5  …13 » Next

- Rate this definition.
- Did it help?
- Suggest improvements.
- Request more information.
- Exchange ideas with our member community.

Email to a friend