Cloudogu Logo

Hello, we are Cloudogu!

Experts in Software Lifecycle Management and process auto­mation, supporter of open source soft­ware and developer of the Cloudogu EcoSystem.

featured image Software Prototyping

05/24/2016 by Daniel Huchthausen in Methods

Software Prototyping

+++This post was migrated from our former blog about SCM-Manager Universe. Therefore, it is only available in English. Enjoy reading.+++

Prototyping is a great way to get an impression of how a product or idea could look like. In manufacturing you can use e.g. 3D printers to create prototypes. In software development you still have to code but you can apply different principles compared to developing a “real” product. We want to give a short introduction into software prototyping, because it can help you to develop better software, faster.

Pros and Cons of Prototyping

The purpose of prototypes is the evaluation of certain aspects of a software product, e.g. UI design, architecture or functionality. For that you create an incomplete version of the software program to verify your concept. A prototype omits all aspects of the software that aren’t required for proofing the concept. This reduces complexity and effort. Prototypes help you to…

  • ... answer questions: There are always lot's of questions about a project. The more important the questions are, the earlier you should be able to answer them, because the answer might influence following decisions. A prototype helps you to prove your concept and therefore to answer questions.
  • ... validate assumptions: You always have to make assumptions. If they have a big impact on the risk of your project a prototype might be a good way to reduce risks by validating your assumptions.
  • ... compare alternatives: Create different prototypes to compare ideas about the realization.
  • ... fail early and cheaply: A prototype allows you to determine the feasibility of your idea in an early stage and therefore with low costs.
  • ... visualize ideas: By creating a visual prototype you can talk about something concrete instead of theoretically discussing ideas. That makes it easier and improves the quality of feedback.

Thus, they can be used as a proof of concept or to gather feedback about the product. Proof of concept prototypes are often focused on the backend of an application, e.g. you want to find a way to handle large amounts of data at a reasonable speed. Feedback prototypes often focus on the UI of the application.

When you ask people about software prototypes you either get “Oh that’s a waste of time and money!” or “Yes, prototypes, they saved us a lot of trouble.” as an answer. Prototypes aren’t a cure for all problems and they come with pros and cons.

Pros Cons
Early customer/user involvement Risk of spending too much effort in prototypes.
Better understanding of the system by the user before the development starts. Risk of insufficient requirement analysis
Reduced time and cost because extensive defects can be detected earlier. Risk of confusion between prototypes and the actual system by customers/users.
Confusing or difficult functions can be identified easily and therefore addressed early. Risk that prototypes will be used for the actual system, even if not technically feasible.

If the prototype looks for example very much like the actual product the users should be informed that they’re dealing with a prototype and that some features might not be working. The same applies for the risk of using a prototype as a productive system. By informing stakeholders about the specific weaknesses of the prototype (security, architecture, functionality,…) they should be aware that the prototype is not made for usage in production. If you know the risks and benefits you can address them and therefore improve the chance for success of the prototype.

When you developed a prototype and it has served its purpose, you should throw it away and start to develop the “real” product (in case your concept turned out to be applicable) or to develop another prototype (in case of a negative outcome). A prototype should never be evolved into the final product, because in the development of the prototype you are neglecting all fundamentals of writing high quality applications, since the aim is to get a quick result you don’t spend much time on “irrelevant” topics like security, scalability, code quality or architecture. The real product on the other hand should be well designed.

How to Develop a Prototype?

Before you start to develop a prototype you should always try to evaluate its ideal extend. A prototype should always be as small as possible. These questions help to decide how much functionality and detail the prototype needs to cover:

  • What is the prototype going to be used for?
  • How complex is the process?
  • How complex is the user interface?
  • How will the product owner best understand the concept?

The development of prototypes can normally be divided into four steps:

  1. Identification of basic product requirements.
  2. Development of the initial prototype covering the requirements.
  3. Gathering feedback about the prototype.
  4. Revising and enhancing the prototype based on the feedback

These 4 steps can be repeated until the customers expectations are being met or until other constrains like time, budget or technical feasibility urge you to stop developing the prototype.

Tools for Prototyping

For UI-prototypes it is the idea to get an idea of what the UI should look like without the need to develop a fully functional UI right away. Therefore, you often don’t even need to develop the user interface in the early stage of your project. You can use for example wireframing applications to “simulate” the UI. Helpful tools are:

  • Pencil ( an Open Source wireframing application that comes with a large number of elements that can be used. It's possible to build an interactive dummy of a website or application.
  • Lorem Ipsum Generator ( if the content is not important for your prototype you can use the Lorem Ipsum Generator to generate just the amount of text that you need.
  • Freemind ( a simple and intuitive mindmapping tool that supports you in collecting and categorizing ideas and information about the product.
  • Pen and Paper ( When it comes to visualizing UI and design ideas in a very early phase it can be helpful to use pen and paper, because no software application is as fast and simple as a paper prototype.

Once you’ve ruled out a few options and you have a good idea of where you want to go, you can start to develop the UI. For that you can follow the RAD or the lean approach to efficiently develop your UI.

When it comes to backend prototyping there is no tool that supports the development of prototypes. The key is to focus on the aspects that you want to investigate and to omit aspects that are irrelevant for the prototype.

Prototypes can be helpful

Software prototypes can be very helpful when you need a proof of concept or feedback about your design ideas. The important thing about them is that you and everyone else who gets in contact with the prototype is aware that it is a prototype and not the real product. Sometimes it might be obvious to people that they’re interacting with a prototype, but in some cases it can be unclear and then people might have false expectations towards the system.

Daniel Huchthausen
Daniel Huchthausen

- Consultant -

When he is not exploring the wilderness, Daniel keeps himself busy with topics such as quality assurance, testing and PM methods.