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.