Cloudogu Logo

Hallo, wir sind Cloudogu!

Experten für Software-Lifecycle-Management und Prozess­auto­mati­sierung, Förderer von Open-Source-Soft­ware und Entwickler des Cloudogu EcoSystem.

featured image Software Prototyping
04.03.2021 in Methods

Software Prototyping


Daniel Huchthausen
Daniel Huchthausen

IT Consultant


Prototypen bieten eine gute Möglichkeit einen Eindruck davon zu bekommen, wie ein Produkt aussehen könnte. Um anspruchsvolle Prototypen zu entwickeln, können im produzierenden Gewerbe z.B. 3D Drucker benutzt werden. In der Softwareentwicklung muss dafür Code geschrieben werden, es gibt jedoch Prinzipien die die Entwicklung von Prototypen im Vergleich zum „echten“ Produkt deutlich beschleunigen. Dies ist eine kurze Einführung in Prototypen um zu zeigen wie bessere Software schneller entwickelt werden kann (aber nur wenn es auch richtig gemacht wird).

Vor- und Nachteile von Prototypen

Die Meinungen zu Prototypen können sehr weit auseinander gehen, da sie neben den Vorteilen auch einige Nachteile haben. Der größte ist, dass sie erstmal Aufwand verursachen ohne direkt Umsatz zu generieren.

Vorteile Nachteile
Frühe Einbeziehung der Kundschaft bzw. Anwendenden Risiko zu viel Arbeitszeit in Prototypen zu stecken
Verbessertes Verständnis eines Systems bevor die eigentliche Entwicklung beginnt Risiko einer unvollständigen Anforderungsanalyse
Verringerte Zeit und Kosten, da aufwändige Fehler frühzeitig entdeckt werden Risiko, dass Prototypen von Kundenschaft/Anwendenden für ein vollständiges Produkt gehalten werden
Verwirrende oder schwer verständliche Funktionen können frühzeitig identifiziert und angepasst werden Risiko, dass Prototypen in Produktion verwendet werden, obwohl sie technisch nicht dafür geeignet sind

Der Zweck von Prototypen ist es, bestimmte Aspekte eines Produktes zu evaluieren, z.B. die Softwareoberfläche, Architektur oder bestimmte Funktionen. Dafür wird eine unvollständige Variante der Anwendung entwickelt, die alle Aspekte der Anwendung außen vor lässt, die nicht für die Evaluierung benötigt werden. Dadurch werden die Komplexität und der notwendige Arbeitsaufwand reduziert. Prototypen helfen dabei …

  • Fragen zu beantworten: Es gibt immer eine Vielzahl an Fragen zu einem Projekt. Je wichtiger eine Frage ist, desto früher sollte sie beantwortet werden, da die Antwort anstehende Entscheidungen beeinflusst. Ein Prototyp hilft dabei ein Konzept zu überprüfen und damit Fragen zu beantworten.
  • Annahmen zu bestätigen: Es müssen immer Annahmen getroffen werden. Wenn sie einen großen Einfluss auf das Risiko eines Projektes haben, kann ein Prototyp dabei helfen das Risiko zu verringern indem Annahmen validiert werden.
  • Alternativen zu vergleichen: Es können unterschiedliche Prototypen zu der gleichen Idee erstellt werden um unterschiedliche Umsetzungsvarianten zu vergleichen.
  • früh und damit günstiger zu scheitern: Prototypen helfen dabei die Umsetzbarkeit von Ideen früh und damit günstig zu bewerten.
  • Ideen zu visualisieren: Visuelle Prototypen helfen dabei über etwas konkretes zu diskutieren, wodurch unterschiedliche Vorstellungen und Annahmen aufgedeckt werden. Dadurch wird die Qualität des Feedbacks verbessert.

Arten von Prototypen

Prototypen können also sowohl für die Bestätigung eines Konzepts als auch zur Einholung von Feedback benutzt werden. PoC-Prototypen (Proof of Concept) werden oft für die Entwicklung im Backend benutzt, z.B. um einen Weg zu finden große Datenmengen mit einer akzeptablen Geschwindigkeit zu speichern. Feedback-Prototypen werden oft für das Frontend von Anwendungen benutzt.

Besonders bei Feedback-Prototypen macht es einen großen Unterschied im Arbeitsaufwand wie nah am fertigen Produkt der Prototyp sein soll. Die einfachste Form eines Prototypen ist schon innerhalb weniger Minuten fertigzustellen, nämlich mit einer einfachen Skizze mit Kugelschreiber auf Papier. Diese Art dient der Visualisierung einer Idee um sie diskutieren zu können und hat den großen Vorteil, dass alle Beteiligten über die gleiche Sache sprechen. Die nächste Stufe sind Wireframe-Prototypen. Das sind vereinfachte Darstellungen von Benutzeroberfächen, die auch entweder mit Papier und Kugelschreiber oder mit entsprechender Software erstellt werden. Der Vorteil dieser Art ist, dass auch Klickpfade, Aktionen und ganze Prozesse durch den Prototypen abgebildet werden können. Die höchste Stufe der Prototypen sind die vereinfachten Varianten der Applikation, die nicht essentielle Aspekte weglassen. Diese Prototypen sind schon sehr nah am fertigen Produkt und liefern daher sehr konkretes Feedback, sind jedoch auch sehr aufwändig und bieten Verwechselungsgefahr mit einem fertigen Produkt.

Fallstrike bei Prototypen

Wenn ein Prototyp so aussieht wie ein tatsächliches Produkt, sollten die Testenden darüber informiert werden, dass nicht alle Funktionen zur Verfügung stehen. Werden sie nicht informiert, besteht die große Gefahr von Verwirrung oder Enttäuschung, die zu einer Ablehnung der Produktidee führen kann. Außerdem ist es sehr wichtig Stakeholder:innen über die spezifischen Schwachstellen des Prototypen (Sicherheit, Architektur, Funktionalität, …) zu informieren. Werden diese nicht offen kommuniziert besteht die Gefahr, dass gefordert wird den Prototypen direkt in Produktion zu nehmen.

Sobald ein Prototyp seinen Zweck erfüllt hat, sollte er weggeworfen werden und entweder mit der Entwicklung des „echten“ Produktes oder mit der Entwicklung eines neuen Prototypen begonnen werden. Grundsätzlich sollte ein Prototyp nicht in ein Produkt weiterentwickelt werden, da während der Entwicklung von Prototypen grundlegende Eigenschaften von guter Software ignoriert werden um schnell zu einem vorzeigbaren Ergebnis zu gelangen. „Irrelevante“ Themen wie Sicherheit, Skalierbarkeit, Codequalität oder Architektur sind zum Evaluieren einer Idee nicht notwendig, sehr wohl aber für ein fertiges Produkt.

Entwicklung von Prototypen

Bevor mit der Entwicklung eines Prototypen begonnen wird sollte klar sein welchen Zweck er erfüllen soll. Ein Prototyp sollte stets so klein wie möglich und gerade groß genug zur Evaluierung der Idee sein. Hierbei können diese Fragen hilfreich sein:

  • Wofür wird der Prototyp genutzt werden?
  • Wie komplex ist der Prozess?
  • Wie komplex ist die Bedienoberfläche?
  • Wie werden die Nutzenden das Konzept am besten verstehen?

Sobald diese Fragen beantwortet sind, kann mit der Entwicklung des Prototypen begonnen werden. Diese kann normalerweise in vier Schritte unterteilt werden:

  1. Identifikation von grundlegenden Produktanforderungen
  2. Entwicklung des ersten Prototypen, der die Anforderungen abdeckt
  3. Einsammeln von Feedback zu dem Prototypen
  4. Überarbeitung des Prototypen auf Grundlage des Feedbacks

Die letzten beiden Schritte können so lange wiederholt werden bis entweder die Erwartungen der User erfüllt sind oder bis Rahmenbedingungen wie Zeit, Budget oder technische Machbarkeit die Entwicklung des Prototypen beenden.

Werkzeuge für die Erstellung von Prototypen

Für Prototypen von Bedienoberflächen ist das Ziel eine Idee davon zu bekommen wie ein UI aussehen sollte, ohne jedoch eine vollständig funktionsfähige Oberfläche entwickeln zu müssen. Dafür gibt es Hilfsmittel wie diese:

  • Wireframing Tools: Wireframing-Anwendungen wie Pencil oder Balsamiq ermöglichen es interaktive Dummies von Websites oder Applikationen zu erstellen. Dafür wird kein Coding benötigt und die Dummies sind als Prototypen klar erkennbar. Durch letzteres wird verhindert, dass Testende nicht wissen, dass sie es mit einem Prototypen zu tun haben.
  • Text-Generatoren: Text-Generatoren wie der Lorem Ipsum Generator ermöglichen es schnell textliche Inhalte zu erstellen. Der Lorem Ipsum Generator bietet die Möglichkeit genau den benötigten Umfang an Dummy-Inhalten zu erstellen.
  • Stift und Papier: Wenn es darum geht UI-Ideen in einer frühen Phase zu visualisieren, ist nichts so schnell und einfach wie Skizzen mit Stift und Papier zu erstellen Das mag heutzutage manchmal antiquiert wirken, ist aber nach wie vor eine sehr effiziente Methode.
  • Daten-Generator: Wenn ein Prototyp Daten in der Benutzeroberfläche darstellt, ist es sehr hilfreich sich einen Generator zu schreiben, der die Datenbank befüllt. Die Entwicklung dauert wahrscheinlich ein bisschen, zahlt sich aber langfristig aus, da der Generator wahrscheinlich auch für das spätere Produkt verwendet werden kann. Alternativ kann auch ein Dump des Produktionssystems benutzt werden, wenn es denn eines gibt.
  • UI Frameworks: Moderne Frameworks wie Material-UI oder Foundation ermöglichen es sehr schnell eine Bedienoberfläche zu entwickeln.

Fazit

Prototypen sind ein gutes Mittel um frühzeitig Feedback zu einer Produktidee zu bekommen und dadurch die Erfolgschancen am Markt zu erhöhen. Wichtig für die erfolgreiche Nutzung von Prototypen ist genau zu wissen, was mit ihnen untersucht werden muss und dass nicht in allen Fällen die gleiche Art von Lösung die beste ist.