Prototyping spart Zeit und Kosten

Heute muss Software zügig entwickelt und produktiv gesetzt werden (Time-to-Market). Dabei kann Prototyping helfen, die Effizienz im Entwicklungsprozess zu verbessern. Allerdings gilt es sorgfältig zu überlegen, welche Prototyping-Methode zum eigenen Projekt passt.

Softwareentwicklung ist eine sehr dynamische Disziplin, in der sich die Anforderungen schnell ändern. Häufig entwickelt die Auftraggeberseite eine Reihe von Anforderungen oder User-Stories, obwohl sie das entsprechende Resultat nicht genau einschätzen kann. Das Entwicklerteam macht sich Gedanken und arbeitet an einem repräsentablen Stakeholder. Wenn dieser jedoch hinter den Erwartungen zurückbleibt, weil die Anlage zur Visualisierung anfänglicher Anforderungen fehlt, kann es passieren, dass so ein Projekt komplett neu auf die Spur gesetzt werden muss.

Das führt im Ergebnis zu einem erhöhten Budgetbedarf für die Produktentwicklung. Um den Ablauf und dementsprechend das Budget zu optimieren, können verschiedene Ansätze verfolgt werden: Proof-of-Concept, Wireframes, Funktionales Prototyping, MVP (Minimum Viable Product) oder ein Pilotprojekt. Dieser Artikel konzentriert sich auf das Prototyping:

  • Was ist Prototyping?
  • Wie funktioniert die Methode?
  • In welchen Situationen verwendet man sie am besten?

 

Klassifizierung von Prototypen

Dass Softwareüberprüfung unter realen Bedingungen und die daraus gesammelten Daten und Erkenntnisse zu einem optimierten Ergebnis führen, verschafft den Entwicklern mehr als einen großen Vorteil. Schließlich erhalten sie wichtige Informationen aus den Berührungspunkten der Nutzer und aus deren Anwenderverhalten. Doch so unterschiedlich die Ansprüche an das Endprodukt sind, so verschieden sind auch die Arten des Herangehens an das Prototyping selbst. Eine vorab festgelegte Art des Prototyping hilft bei der Umsetzung durch eine strukturierte Verfahrensweise, die sich an unterschiedlichen Dimensionen orientiert.

A. Nach Abmessungen

A.1. Horizontales Prototyping

Bei dieser Art von Prototyping werden nur einige Schichten des Systems, wie beispielsweise die Benutzeroberfläche entweder als Wireframes oder als eigentliche UI-Implementierung aufgebaut. Das hilft in Zusammenarbeit mit dem Auftraggeber bei der Verfeinerung der Anforderungen und dieser kann die Komplexität des Arbeitsaufwands besser verstehen. Obwohl horizontales Prototyping sehr nützlich und effektiv sein kann, zeigt die tatsächliche Implementierung der Funktionalität hinter der Benutzeroberfläche / dem Wireframe manchmal einige neue Aspekte der Komplexität, die beim Design von Benutzeroberflächen-Interaktionen noch nicht offensichtlich sind.

A.2. Vertikales Prototyping

Beim vertikalen Prototyping wird im Gegensatz zum horizontalen Prototyping nur ein Teil des Systems gebaut, jedoch auf einem fortgeschrittenen Level. Dieser Ansatz eignet sich besser für Teile des Systems bei denen eine hohe Komplexität erwartet wird oder wenn es für einen Teil des Systems, wie zum Beispiel dem Proof-of-Concept keine offensichtliche Lösung gibt. Dieser Ansatz hilft für eine bessere Annäherung von Ressourcenbedarf, erwartetem Netzwerkverkehr und Budget, was für den Betrieb eines solchen Systems in einer Produktionsumgebung erforderlich ist.

B. Nach Lebensdauer

B.1. Erstmaliges Prototyping

Es ist ein Rapid-Prototyping, bei dem das System so schnell wie möglich aufgebaut wird. Die Entwickler zeigen das Ergebnis den Interessengruppen, woraufhin die Anforderungen weiter verfeinert und verbindlich vereinbart werden, jedoch ohne dass dieses Ergebnis Teil des Endprodukts sein wird. So ermöglicht dieses Verfahren eine schnelle Entwicklung mit minimalem Aufwand an Architektur, Sicherheit oder Best-Practices.

B.2. Evolutionäres Prototyping

B.2.1. Inkrementelles Prototyping

Inkrementelles Prototyping bezieht sich auf ein größeres Produkt, das aus der Verbindung mehrerer getrennter Prototypen besteht. Mit der Verwendung dieses Ansatzes kann die Problematik entstehen, die einzelnen Prototypen mühsam zu einer funktionalen Lösung zusammenfassen zu müssen. Das lässt sich vermeiden, indem eine definierte Schnittstelle für den Datenaustausch zwischen den Prototypen vereinbart wird. Geschieht das nicht, kann ein großer Aufwand erforderlich sein, um aus den einzelnen Prototypen einen finalen Prototyp zu machen. Inkrementelles Prototyping eignet sich gut für die Architektur von Mikroservices, wenn bestimmte Teile des Produkts von verschiedenen Teams parallel erstellt werden.

B.2.2. Extremes Prototyping

Extremes Prototyping bezieht sich auf eine Weiterentwicklung des Prototyps durch Hinzufügen zusätzlicher Schichten in mehreren Stufen. Ein Beispiel ist die Entwicklung von Webanwendungen, in welcher ein Prototyp gebaut werden kann, der nur die statische HTML-Version enthält. Im nächsten Schritt werden HTML-Seiten funktionsfähig, aber ohne funktionierendes Backend. Das passiert in der letzten Phase der Implementierung der Backend-Lösung. Die Implementierung von extremem Prototyping in Unternehmen, in denen die Backend- und Frontend-Entwicklung von verschiedenen Teams und Teammitgliedern durchgeführt wird, ist nicht ideal. Die Backend-Entwicklung wird durch die Frontend-Entwicklung blockiert, so dass sie besser für die Full-Stack-Entwicklung geeignet ist.

 

Prototyping und Sicherheitsüberlegungen

Im Falle von evolutionärem Prototyping wird der Prototyp die Grundlage für das serienreife System bilden. Aus haushaltspolitischer Sicht ist das gut, könnte aber aus sicherheitstechnischer Sicht problematisch sein. Abhängig von den Sicherheitsfragen treten zwei Situationen auf:

a) Im Falle von Sicherheitsproblemen, die leicht zu lösen sind und keine architektonischen Probleme darstellen, können diese nachträglich behoben werden, wenn der Prototyp mit dem Auftraggeber vereinbart wird und das Produkt in die nächsten Phasen übergeht.

b) Im Falle von architektonischen Sicherheitsfragen, bei denen einige Teile des Systems neu gestaltet werden müssen, wirkt sich das sowohl auf das Budget als auch auf den Zeitplan des Projektes aus. Um dies zu vermeiden, können Wegwerf-Prototypen verwendet werden, da diese schneller zu implementieren sind. Für die serienreife Konstruktion des Systems sind sie mit Blick auf die Sicherheit besser.

 

Fazit

Abhängig von der Organisationsstruktur und der architektonischen Gestaltung des Produkts kann das Prototyping in seinen verschiedenen Ausformungen als mächtiges Werkzeug eingesetzt werden, um Zeit und Kosten für die Verfeinerung der Anforderungen zu reduzieren und sie mit dem Auftraggeber abzustimmen. Allerdings müssen Entwickler sorgfältige Überlegungen über Softwarearchitektur, Softwareprinzipien, Sicherheitsbedrohungen und Complianceanforderungen (beispielsweise BAIT, VAIT und KAIT) anstellen. Diese Entwicklungen gilt es, in die Prototypenentwicklung einzubinden, bevor dieser Ansatz zu einem serienreifen Produkt weiterentwickelt wird. Je komplexer das Produkt werden soll, desto teurer und zeitaufwendiger wird die Lösung der Aufgaben.

 

Pierre Gronau

Pierre Gronau ist seit über 25 Jahren für namhafte Unternehmen als Senior IT-Berater mit umfangreicher Projekterfahrung tätig. Zu seinen Kompetenzfeldern gehören Server-Virtualisierungen, IT-Sicherheit, moderne Cloud- und Automationslösungen sowie Informationsschutz.

 

 

Pierre Gronau


Pierre Gronau ist seit über 25 Jahren für namhafte Unternehmen als Senior IT-Berater mit umfangreicher Projekterfahrung tätig. Zu seinen Kompetenzfeldern gehören Server-Virtualisierungen, IT-Sicherheit moderne Cloud- und Automationslösungen sowie Informationsschutz.

Leave a Reply