Navigation
FIDA-Blog
Wissen - Success Stories - Whitepaper
newspaper Übersicht chevron_right Software-Entwicklung chevron_right Blog chevron_right Branchenübergreifend
Dekoratives Bild zum Thema Prototyping
Blog

Effizientes Prototyping in der Software-Entwicklung

Was versteht man unter Prototyping?

Prototyping gibt es in vielen Branchen, nicht nur in der Softwareentwicklung. Es stellt ein Verfahren dar, um Produktideen greifbarer zu machen und Nutzerfeedback durch regelmäßige Nutzertests einzufordern.

Auf Wikipedia liest man als Definition: "Prototyping bzw. Prototypenbau ist eine Methode der Softwareentwicklung, die schnell zu ersten Ergebnissen führt und frühzeitiges Feedback bezüglich der Eignung eines Lösungsansatzes ermöglicht. Dadurch ist es möglich, Probleme und Änderungswünsche frühzeitig zu erkennen und mit weniger Aufwand zu beheben, als es nach der kompletten Fertigstellung möglich gewesen wäre."

Das frühzeitige Durchführen von Tests unterscheidet das Prototyping von anderen Design Thinking Prozessen und ist daher eng an das User-Centric Design (UCD) angelehnt, vorausgesetzt es werden effiziente und für das jeweilige Projekt passende Methoden und Tools eingesetzt.

Der Begriff "Prototyp" leitet sich von den alt-griechischen Wörtern "protos" ab, was "der Erste" bedeutet, und "typos", das für "Urbild, Vorbild, Gestalt" steht. Ein Prototyp ist also ein erster Entwurf eines Produktes. Daher findet das Erstellen von Prototypen meist in der Anfangsphase eines Projektes statt, wenn schon erste Wireframes oder statische Mockups existieren.

Wozu dient Prototyping in der Softwareentwicklung?

Das Prototyping umfasst wiederholte Iterationen, wobei jede Iteration eine schrittweise Annäherung an das Endprodukt ist. Im Laufe eines agilen Projekts tauchen immer wieder Fragen auf, die es mithilfe von Prototyping zu klären gilt. Beispiele sind: „Versteht der Nutzer das Feature?“, „Was ist die Kernfunktion dieses Features“ oder „Macht die Nutzung dieses Features dem User Spaß oder frustriert sie ihn sogar?“

Diese Fragen können die Beteiligten eines Projektes größtenteils nicht selbst beantworten, da sie keine Nutzer der Software sind und zu nah an der Konzipierung des Produktes dran sind. Man versucht deshalb mithilfe des Prototyping diese Fragen zu klären und gegebenenfalls Anpassungen an den aktuellen Anforderungen vorzunehmen, um so mit wenig Aufwand und geringen Kosten so früh wie möglich den Entwicklungsprozess in die bestmögliche Richtung zu lenken.

Rapid Prototyping

Wie bereits eingangs erwähnt finden Prototypen in der frühen Phase eines Projektes ihren Einsatz, damit sie in kurzen Abständen und schnellen Iterationsschleifen überarbeitet werden können. Häufig findet auch die Methode des Rapid Prototyping Anwendung, in der man, sobald man die ersten funktionsfähigen Entwürfe der App oder Software als Prototyp erstellt hat, in Nutzertests erfragt, wo von den Benutzern Verbesserungspotentiale gesehen werden. Je eher im Entwicklungsprozess Du also Feedback von Deinen Nutzern einholst, desto schneller kannst Du Deinen Prototyp verfeinern und Änderungswünsche aufnehmen.

Diese Art des Testens dient dazu, Konzepte zu validieren, Risiken und Kosten zu minimieren und die Gesamtqualität des Softwareprodukts zu verbessern. Rapid Prototyping ist aber nur eine eher extremere Ausformung des Prototyping, bei der man sich auf schnelle Feedbackschleifen verlässt. Daneben gibt es noch einige weitere Formen, in die man Prototypen einsortieren kann.

Vorüberlegungen zum Prototyping

Welche Arten von Prototypen gibt es?

Grundsätzlich stellt sich erst einmal die Frage, was Du mit einem Prototyp überhaupt bezwecken willst. Willst Du eine Gesprächsgrundlage in der Phase der Ideenfindung erstellen? Oder willst Du eher die Nutzerfreundlichkeit testen? Diese beiden Zielsetzungen sind grundverschieden und lassen sich deshalb schwierig in ein einziges Konzept gießen. Grob zu unterscheiden sind daher folgende Arten von Prototypen:

  1. Explorative Prototypen: Explorative Prototypen eignen sich dann, wenn bereits erste Anforderungen existieren und diese auf ihre Eignung und Tauglichkeit erprobt werden müssen. Die Anforderungen werden daraufhin entweder verworfen oder angepasst. Der Prototyp dient daher als Prüfung des Konzepts, durch die sich Änderungen an der ursprünglichen Version ergeben können.

  2. Experimentelle Prototypen: Experimentelle Prototypen nutzt man zu wissenschaftlichen oder Übungszwecken, daher dienen sie zur Wissenserweiterung. Anhand des Prototyps sollen Problemstellungen und -lösungen entworfen werden, aus denen sich danach die Projektanforderungen ergeben. Diese Art von Prototyp wird, sobald die Spezifikationen feststehen, verworfen, denn er wird im Verlauf der weiteren Produkt-Entwicklung nicht mehr benötigt.

  3. Evolutionäre Prototypen: Evolutionäre Prototypen entwickeln sich von der ersten Idee bis zum Endprodukt stets weiter und sind daher bereits früh in der Entwicklung im Einsatz. Sie können immer wieder verworfen werden oder mit Erweiterungen versehen werden, bis eine Endfassung feststeht.

Vor dem Hintergrund einer laufenden Verbesserung des Prototyps im Entwicklungsprozess sortiert man Prototypen häufig auch in 3 Entwicklungsstufen ein und bezieht sich dabei auf den Grad der Detailliertheit und Nähe zur echten Anwendung:

  • Low-Fidelity Prototypen: Diese Art von Prototypen sind noch sehr rudimentäre Ansätze eines Produkts, die die Informationen strukturieren sollen. Sie können aus groben Klickdummys oder Skizzen bestehen, die durch Verlinkungen zu interaktiven Prototypen gestaltet werden und daher testbar sind. Sie können sogar aus Papier gefertigt sein, was den Vorteil bietet, dass sie den Nutzern etwas in die Hand geben und so mehr als den visuellen Sinn ansprechen können.

  • Medium-Fidelity Prototypen: Die nächsthöhere Stufe der Prototypen nehmen die Medium-Fidelity Prototypen ein. Sie sind detaillierter und haben bereits echte Inhalte integriert, zum Beispiel Grafiken, die dann auch in der fertigen App verwendet werden sollen. Man sieht ihnen noch an, dass sie Modell-Charakter haben, aber sie bieten dem Nutzer oder Tester bereits ein realitätsnahes Erlebnis, weil sie schon klickbar sind und vom Nutzer interaktiv getestet werden können.

  • High-Fidelity Prototypen: High-Fidelity Prototypen simulieren die Software fast perfekt und lassen sich kaum noch vom echten Produkt unterscheiden. Sie sind äußerst aufwändig, denn bei der Gestaltung müssen die wichtigsten Anforderungen an die Software-Entwicklung im Detail stehen. Man erstellt sie daher kurz vor der technischen Umsetzung einer Software, um eine finale Freigabe für das Gesamtkonzept zu bekommen.

Je nachdem, wie weit man schon in der Konzeptionierung des Produktes vorangeschritten ist, kommen unterschiedliche Typen von Prototypen zum Einsatz. Sie dienen aber immer nur als Diskussionsgrundlage und nie als finales Ergebnis.

Fehler sind vor allem bei Low-Fidelity Prototypen, aber grundsätzlich bei allen Formen von Prototypen willkommen und werden als Motivation für den Entwicklungsprozess angesehen. Sie können Veränderungen vorantreiben, um verschiedene Möglichkeiten durchzutesten, bevor man mit dem finalen Lösungsansatz in Produktion gehen kann.

Vorteile des Prototyping

Bevor ich Dir einige Tools mit an die Hand gebe, die Du zum Erstellen von Prototypen nutzen kannst, will ich Dir zunächst erklären, was die Vorteile von Prototyping sind.

Besseres Verständnis der Anforderungen

Durch die Methode des Prototyping schafft man bei allen Projektteilnehmern - ob mit oder ohne Programmierkenntnissen - dasselbe Verständnis darüber, was mit den Anforderungen gemeint ist. Prototypen schaffen bei allen Teammitgliedern ein gemeinsames Verständnis davon, wie das Produkt auszusehen hat, wie es funktionieren soll und was auf gar keinen Fall fehlen darf. So kann man Prototypen auch zu Rate ziehen, um mit ihnen belastbare Tickets in Projektmanagement-Tools zu erstellen.

Näherer Kontakt zum Endnutzer

Durch die regelmäßigen Nutzertests kommt man schneller als durch andere Methoden in Kontakt mit den eigentlichen Anwendern der Software. Dies führt zur positiven Begleiterscheinung, dass die Entwicklung stets an den Nutzerbedürfnissen orientiert ist, was mit Blick auf die Prämisse des User-Centric Designs große Vorteile bietet. Letztendlich wird dadurch nämlich ein besseres Produkt kreiert, denn erfolgreiche Produkte entstehen dann, wenn sie die tatsächlichen Anforderungen und Erwartungen der Benutzer erfüllen. Durch die vielen Nutzertests kann vor allem verhindert werden, dass im fertigen Produkt Features auftauchen, die von den Anwendern nicht benötigt und daher nie benutzt werden.

Einfachere Anpassungen

Da man beim Prototyping in iterativen Schritten voranschreitet, ist es leicht bei jedem Schritt eine Anpassung vorzunehmen, die sich aus dem Feedback der Anwender ergeben hat. Wie in der agilen Softwareentwicklung üblich ist es daher nicht schwer, die Software noch einmal zu überarbeiten, falls Tests ergeben haben, dass Nutzer mit der Software nicht zurechtkommen oder die Benutzung ihnen keine Freude bereitet.

Zeit- und Kostenersparnis

Auch wenn man zu Beginn der Designphase erst einmal viel Zeit aufwenden muss, bis der erste Prototyp existiert, geht es in der technischen Umsetzung des tatsächlichen Produkts im Anschluss schneller, da durch viele Iterationen und Befragungen der Nutzerwunsch klar vor Augen steht und jedes Teammitglied dieselben Vorstellungen zur Entwicklung hat.

Nicht selten kommt es vor, dass Unternehmen Projekte unterbrechen oder ganz begraben müssen, weil sie zu früh in die Programmierung eingestiegen sind und die Fallstricke erst spät im Entwicklungsprozess gesehen haben. Investiert man vor der Programmierung erst einmal die Zeit fürs Prototyping, kann das also am Ende Zeit und Geld sparen.

Welche Prototyping-Tools gibt es?

Die Auswahl eines geeigneten Prototyping-Tools ist nicht trivial, denn es muss klar sein, was das Ziel des Prototyps ist. Geht es um eine erste Ideenfindung und Brainstorming, sollte man auf cloud-basierte Whiteboard-Lösungen wie zum Beispiel Miro oder einfache Wireframesoftware wie Balsamiq zurückgreifen.

Versucht man aber bereits fortgeschrittenere Entwürfe zu erstellen, finden meist Tools wie Axure RP, Invision oder Marvel Verwendung. Deren Materialien eignen sich besser, um sie zum Testen an den User weiterzugeben, da sie schon mit Gestaltungselementen versehen sind, die in der "echten" Anwendung auch zu finden sind.

Auch gilt es zu beachten, dass jede Prototyping-Software unterschiedliche Funktionen und Integrationen mit beispielsweise Projektmanagement-Software besitzt, die nicht für jedes Projektteam geeignet sind und daher nicht ohne Weiteres verwendet werden können. Zudem muss man beachten, dass man mit der Anschaffung von kostenpflichtigen Lösungen nicht das Projektbudget sprengt.

Übersicht von Tools zum Prototyping

Fazit

Software-Prototyping wird in der Planungsphase eines agilen Projekts eingesetzt, um möglichst schon zu Beginn des Projektes ein funktionales Produkt zu haben, welches sich im Verlauf des Projektes weiter ausbauen lässt. Nutzertests zeigen den Entwicklern, wo gegebenenfalls Schwachstellen der Software liegen könnten oder wo der Prototyp noch nicht den Erwartungen der Nutzer entspricht. Auf diesem Feedback aufbauend können dann Usability-Experten neue Ziele definieren, alte überarbeiten und sie in die Spezifikationen miteinfließen lassen.

Bist Du auf der Suche nach einem Partner, der Dich im Prototyping Prozess unterstützt? Dann melde Dich bei uns! Unsere Projektteams stellen sicher, dass in der Entwicklung Deiner Software stets die richtigen Wege eingeschlagen werden.

Über den Autor

Katrin Hofstetter sorgt als Frontend Software Entwicklerin bei der FIDA für benutzerfreundliche und moderne Webanwendungen. Mit ihrer Expertise in HTML, CSS, JavaScript, React und Angular schafft sie digitale Erlebnisse, die nicht nur funktional, sondern auch ästhetisch überzeugen. Ihre Liebe zum Detail und ihre strukturierten Ansätze spiegeln sich auch in ihrer Begeisterung für Datenbanken und SQL wider.