Software Prototyping

Software Prototyping ist ein elementares Teilgebiet der Anwendungsentwicklung. Anbieter von Software-Lösungen arbeiten bei der Entwicklung zu großen Teilen mit individuellen Arten von Prototypen. Ziel ist es u.a., aktuelle Probleme bei der Arbeit am Code und an weiteren Softwarekomponenten frühzeitig zu erkennen.
Eine bunte Drohne auf hellbraunem Untergrund. Ein Prototyp.
© besjunior

Was ist Software Prototyping?

Vom Begriff Prototyping sprechen wir per Definition, wenn im Zuge der Produktion ein Prototyp bzw. ein Muster von einem Artikel erstellt wird. Das kann eine detaillierte Skizze, ein maßstabsgetreues Modell eines Produktes oder ein Testexemplar in Originalgröße sein.

Die Definition Software Prototyping gehört zum Bereich Softwareentwicklung. Darüber hinaus ist es auch eine Ebene des Software Testings. Der auch als Digital Prototyping bezeichnete Schritt in der Softwareentwicklung umfasst das Entwickeln eines Musters einer Software oder einer App. Je nach Art der Umsetzung wird beim Software Prototyping ein Modell mit keinen oder wenigen Funktionen oder die funktionsfähige Basis einer Anwendung erstellt.

Grundsätzlich wird zwischen zwei Prototyping-Methoden unterschieden:

  • Hi Fidelity Software Prototyping
    Hierbei handelt es sich um mithilfe von Digital Prototytping erstellte Prototypen, die in Bezug auf das optische Konzept und die Funktionalitäten die fertige Anwendung simulieren.
  • Low Fidelity Software Prototyping
    Diese Methode wird auch als Virtual Prototyping bezeichnet. Anstelle eines funktionalen Protoytpen wird eine aufwendige Studie erstellt, welche die Funktionen der geplanten Software anhand von Grafiken und schriftlichen Informationen skizziert.

Softwareentwicklung und Software Testing

Der allgemeine Definition Softwareentwicklung ist vom englischen Begriff Software Development abgeleitet. Sie umfasst den gesamten Entwicklungsprozess von der ersten Idee über die Planung der Softwarearchitektur und die Entwicklung der Funktionen bis zur finalen Integration der Software in ein System. Darüber hinaus fällt auch das Modifizieren, also das Verbessern einer Anwendung in den Bereich Softwareentwicklung.

Software Testing dient als eines der wichtigsten Werkzeuge, um die Eignung und die Funktionen einer Software während der Entwicklung eines Projekts zu überprüfen. Ausgehend von den Anforderungen, die Auftraggeber an die geplante Anwendung stellen, wird diese u.a. in Bezug Fehler und Usability getestet. Dies geschieht durch spezielle Software-Tester, durch die Programmierer selbst oder direkt durch die Anwender bzw. das beauftragende Unternehmen.

Wozu dient das Prototyping einer Software?

Als erster Grobentwurf kann der Prototyp einer Software dem Entwickler eine Übersicht über das Projekt geben. Im Vergleich zum Code kann ein plastischeres Beispiel der geplanten Anwendung dabei helfen, ein besseres Verständnis für die Spezifikationen und verschiedene Funktionalitäten einer Anwendung zu entwickeln. Durch UI Prototyping lässt sich zum Beispiel allein das Frontend auf die Usability hin untersuchen. So kann u.a. bereits in einer frühen Phase der Entwicklung eingeschätzt werden, ob einem Nutzer die Navigation durch ein Menü leichtfällt oder nicht. Auf diese Weise können Entwickler und Management Aufwand und Kosten der Anwendungsentwicklung besser einschätzen.

Auf der anderen Seite ermöglicht es ein das Anfertigen eines Prototyps dem Auftraggeber, eine plastische Vorstellung davon zu bekommen, wie die Anwendung später einmal aussehen und funktionieren wird. So lässt sich bereits früh nachvollziehen, ob ein Unternehmen seine Ideen als richtig umgesetzt betrachtet. Das ist eine gute Basis für eine gemeinsame Kommunikation, da das Software Prototyping ein Modell liefert, das fachfremden Personen einen besseren Überblick über ein Projekt gibt als ein Diagramm oder eine mündliche Erklärung. Das hilft dabei, Fragen und Feedback besser zu formulieren. Nicht zuletzt kann auch der fortlaufende Entwicklungsprozess mithilfe des Prototypings besser nachvollzogen werden. Das sorgt für eine bessere Transparenz gegenüber dem beauftragenden Unternehmen.

IoT und Prototypen

Das Internet der Dinge (IoT) ist heute noch eine noch junge Errungenschaft der Digitalisierung. In wenigen Jahren kann das sogenannte Smart Home für uns so alltäglich sein wie allgemein ein Smartphone oder ein Smart-TV. Immer mehr Alltagsgegenstände sind mit Prozessoren oder Schnittstellen ausgestattet und werden über Software gesteuert.

Smart müssen auch die Entwickler sein, die ein Prototyping für das IoT erstellen. Das Einbinden von Hardwarekomponenten stellt gegenüber der reinen Anwendungsentwicklung eine große Herausforderung dar. In diesem Bereich wird eng mit den Ingenieuren zusammengearbeitet, die für die Entwicklung der Bauteile der smarten Technologie verantwortlich sind. Da sich durch entsprechende Prototypen bereits frühzeitig das Zusammenspiel zwischen Hard- und Software testen lässt, kann der Bau von Prototypen im Bereich IoT von großem Nutzen sein.

Hinweise auf Fehler durch Software Prototyping

Je nach Art der angewandten Methode ist es durch Software Prototyping möglich, eine Übersicht über die Fehler einer Anwendung zu erhalten. Das kann einem Programmierer dabei helfen, die Gründe für Probleme bei der Entwicklung zu suchen, zu beheben und eventuell auf dieser Basis Funktionen und Usability zu verbessern.

Was ist ein Prototyping Tool?

Prototyping Tools sind Werkzeuge, mit denen vergleichsweise schnell und easy interaktive Prototypen für Anwendungen erstellt werden können. Bei einigen dieser Tools handelt es sich um Open Source Software. Das bedeutet, dass der Quellcode einsehbar ist und ggf. an die eigenen Bedürfnisse der Anwender angepasst werden kann. Es existieren Anwendungen zum Erstellen von Prototypen, die kostenlos genutzt werden können. Für andere ist eine kostenpflichtige Lizenz notwendig.

Bei UX-Designern sind Prototyping Tools zur Entwicklung der Benutzeroberfläche beliebt, da sie in der Regel ohne professionelle Programmierkenntnisse genutzt werden können. Es muss also kein Code geschrieben werden. Genutzt werden sie oft, um Anwendungen oder Seiten für das Web zu skizzieren. Bekannte Tools sind zum Beispiel Figma, Axure, Adobe XD und Webflow. Letztere ist jedoch allein für das Prototyping responsiver Seiten im Web konzipiert.

Welche Arten von Prototypenbau gibt es?

Genauso vielfältig wie die Prototyping Tools sind auch die Arten, einen Prototyp für eine Anwendung zu erstellen. Basis sind immer die Anforderungen, die seitens der Auftraggeber an eine Software oder App gestellt werden. In der Regel werden sechs verschiedene Methoden unterschieden: ### Evolutionäres Software Prototyping

Im Unterschied zu einem reinen UI Prototyping ist die evolutionäre Methode nicht nur darauf ausgelegt, eine Benutzeroberfläche zu entwickeln. Ein evolutionärer Prototyp ist von der Basis her auf Grundlage kundenspezifischer Anforderungen als rudimentär funktionsfähige Anwendung angelegt. Durch Feedback vonseiten der Kunden oder Anwender wird das System schrittweise aufgebaut. Das Ergebnis ist im Endeffekt eine fertige Anwendung oder ein Teil einer Anwendung. Der evolutionäre Ansatz beruht also darauf, eine Anwendung aus einem Prototyp zu entwickeln.

Die Vorteile von evolutionären Prototypen sind ein nutzerorientierter Aufbau der Funktionen und ein zielgruppenorientierter Entwicklungsprozess. Auf der anderen Seite kostet diese Methode jedoch auch viel Zeit, was wiederum die Kosten für die Produktion einer Anwendung in die Höhe treibt. Hier muss die verantwortliche Instanz für das Management des Projekts in der Planungsphase kalkulieren, ob evolutionäres Software Prototyping die beste Wahl ist.

Vorteile

  • Zielgruppenorientierte Entwicklung
  • Nutzerorientierter Funktionsaufbau

Nachteile

  • Zeitintensiv
  • Kann hohe Kosten verursachen

Experimentelles Software Prototyping

Diese Methode ist auf eine experimentelle Ebene der Entwicklung beschränkt. Im Vordergrund steht das Ausprobieren mehrerer Möglichkeiten und Techniken. Dabei soll überprüft werden, auf welchem Weg sich die Anforderungen an die Software am besten realisieren lassen und ob eine Realisierbarkeit überhaupt möglich ist. Dazu gehört oft eine ausführliche Data Evaluation, um eventuelle Probleme im Entwicklungsprozess frühzeitig zu erkennen. Im Fokus stehen dabei vor allem die Funktionen der Schnittstellen und die Kompatibilität einzelner Komponenten eines Systems. Die experimentelle Methode ist in erster Linie eine Studie. Die angefertigten Prototypen werden in der Regel anschließend verworfen.

Ein Vorteil des experimentellen Software Prototypings ist die Möglichkeit, im Entwicklungsprozess neues Potential einer Anwendung zu entdecken. Darüber hinaus lässt sich mit diesem System frühzeitig erkennen, wenn es Probleme bei der Entwicklung einzelner Komponenten gibt. Die Verwendung experimenteller Prototypen kann sehr zeitintensiv sein. Da der Prototyp verworfen wird, kann der Kosten-Nutzen-Faktor ungünstig ausfallen, wenn das Ergebnis des Prototypenbaus keine aussagekräftigen Erkenntnisse liefert.

Vorteile

  • Neues Potential kann erkannt werden
  • Probleme bei der Entwicklung werden früh erkannt

Nachteile

  • Zeitintensiv
  • Prototyp wird verworfen

Exploratives Software Prototyping

Wichtige Daten, die zu Beginn einer Softwareentwicklung erhoben werden, sind die Anforderungen von einem Unternehmen an den zu erstellenden Artikel – also an die Anwendung. Die genauen Anforderungsspezifikationen der Entwicklung sind jedoch zu Beginn oft noch relativ abstrakt. Ein explorativer Prototyp dient dazu, eine genauere Definition dieser Spezifikationen zu ermitteln, um einen Software-Entwurf zu erstellen.

Explorative Prototypen sind in der Regel auf rudimentäre funktionale Eigenschaften beschränkt. Sie lassen sich iterativ bearbeiten. Das bedeutet, dass ein Produkt durch fortwährende Wiederholungen optimiert wird. In Bezug auf das Software Prototyping bedeutet das: Der Code wird kontinuierlich angepasst. Selten wird dabei auf das Feedback der Nutzer zurückgegriffen. Eine Definition von Vor- und Nachteilen lässt sich beim explorativen Software Prototyping nicht direkt festlegen. Diese Methode wird angewandt, wenn sie zum Bearbeiten eines Entwurfs in der Anwendungsentwicklung notwendig erscheint.

Vertikales Software Prototyping

Bei dieser Prototyping-Methode steht die Umsetzung von bestimmten Teilen einer Anwendung im Vordergrund. Meistens wird sie angewandt, um komplizierte Funktionen darzustellen, auszuprobieren oder zu überprüfen. Mittels Nutzertest kann das beauftragende Unternehmen dann eine aktuelle Einschätzung abgeben, ob diese Funktion den Anforderungen entspricht. Danach kann sie dann in den Code der Anwendung integriert werden. Diese kleinteilige Arbeitsweise ist vor allem bei der Arbeit an komplexen Programmen vorteilhaft.

Horizontales Software Prototyping

Bei dieser Methode werden keine funktionalen Anforderungen berücksichtigt. Im Vordergrund stehen User Interface und User Experience. Dazu ist es nötig, die Anwendung in zwei Teilen zu separat zu betrachten. Horizontale Prototypen stellen allein die grafische Benutzeroberfläche dar. Auf diese Weise kann das beauftragende Unternehmen aktuelle Einblicke in die grafische Umsetzung und die Bedienbarkeit der Anwendung erhalten. Durch Feedback lässt sich dann das zu entwickelnde Produkt besser an die Zielgruppe anpassen. Aufgrund der Trennung von UI und Funktionalität müssen allerdings Backend und Frontend zu einem späteren Zeitpunkt zusammengefügt werden. Das macht u.U. zusätzliche Arbeitsschritte notwendig.

Vorteile

  • Frühzeitige Anpassung an die Zielgruppe

Nachteile

  • Zusätzliche Arbeitsschritte

Software Prototyping bei TenMedia: Vom Konzept bis zum fertigen Produkt

TenMedia ist ein dynamischer Anbieter für Softwareentwicklung aus dem Herzen Berlins. Seit 2011 entwickeln wir individuelle Softwarelösungen für KMU, Start-ups oder Behörden in Deutschland und im gesamten deutschsprachigen Raum. Unser Service umfasst u.a. die Entwicklung von Business Software, ERP Software oder Cloud-Anwendungen.

In der Entstehungsphase werden bei TenMedia Anwendungen frühzeitig von unseren Entwicklern getestet. Schließlich ist es unser Ziel, die Ideen unserer Kunden passgenau umzusetzen und dabei beste Ergebnisse zu liefern. Nicht zuletzt steht dabei für uns als Anbieter digitaler Leistungen auch im Fokus, die Zeit der Softwareentwicklung auf ein angebrachtes Minimum zu begrenzen.

Darüber hinaus ist unser Team erfahren im Prototypenbau mit professionellen Prototyping Tools. Die Art des Software Prototypings wählen wir individuell nach den Anforderungen unserer Kunden. Diese wiederum evaluieren wir anhand von transparenter Kommunikation mit den beauftragenden Unternehmen. Spezifikationen und Feedback erfassen wir über Microsoft DevOps in einem System, zu dem über das Web auch unsere Kunden Zugang haben. Dabei werden alle relevanten Daten im Backlog festgehalten und können über den gesamten Entwicklungsprozess hinweg einfach angepasst werden.

Die Basis einer Entwicklung von Software oder App ist eine umfassende Beratung. Diese bieten wir kostenlos. Fragen beantworten wir gern und helfen mit unserem Wissen Kunden bei der Entscheidungsfindung. Wer sich für unsere Service interessiert, kann via E-Mail oder Telefon unkompliziert mit unseren Entwicklern in Kontakt treten. Gern vereinbaren wir auch einen Video-Call oder sprechen im Rahmen eines persönlichen Treffens in unserem Office in Berlin.