Prototyping hilft bei der Softwareentwicklung

Heute muss Software zügig entwickelt und produktiv gesetzt werden. Dabei kann Prototyping helfen, die Effizienz im Entwicklungsprozess zu verbessern. [...]

Ein Prototyp in der Softwareentwicklung kann dabei helfen, Softwareprojekte in der Spur zu halten und zügig abzuschließen (c) pixabay.com

Softwareentwicklung ist eine sehr dynamische Disziplin, in der sich die Anforderungen schnell ändern. Häufig entwickelt die Auftraggeber-Seite 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.

Dies führt im Ergebnis zu einem erhöhten Budget für die Produktentwicklung. Um den Ablauf und dementsprechend das Budget zu optimieren, können verschiedene Ansätze verfolgt werden: PoC (Proof of Concept), Wireframes, Funktionales PrototypingMVP (Minimum Viable Product) oder ein Pilotprojekt. Dieser Artikel konzentriert sich auf das Prototyping: Was ist Prototyping? Wie funtkioniert die Methode? Und 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, 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

Beim horizontalen Prototyping werden nur einige Schichten des Systems wie beispielsweise bloß die Benutzeroberfläche entweder als Wireframes oder als eigentliche UI-Implementierung aufgebaut. Dies hilft bei der Verfeinerung der Anforderungen zusammen mit dem Auftraggeber, damit dieser die Komplexität des Arbeitsaufwands besser versteht. Obwohl diese Art von 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 möglicherweise 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 (PoC) keine offensichtliche Lösung gibt. Dieser Ansatz hilft für eine bessere Annäherung von Ressourcenbedarf, erwartetem Netzwerkverkehr und Budget, das für den Betrieb eines solchen Systems in einer Produktionsumgebung erforderlich ist.

B. Nach Lebensdauer

B.1. Erstmaliges Prototyping

Dies 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. Dies lässt sich vermeiden, indem eine definierte Schnittstelle für den Datenaustausch zwischen den Prototypen vereinbart wird. Geschieht dies nicht, könnte ein großer Aufwand erforderlich sein, um aus diesen 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 könnte, der nur die statische HTML-Version enthält. Im nächsten Schritt werden HTML-Seiten funktionsfähig, aber ohne funktionierendes Backend. Dies 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/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. Das ist aus haushaltspolitischer Sicht 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 sie 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, betrifft dies sowohl das Budget als auch den Zeitplan des Projekts. Um dies zu vermeiden, könnten entweder Wegwerf-Prototypen verwendet werden (weil sie schneller zu implementieren sind) und für die serienreife Konstruktion des Systems mit Blick auf die Sicherheit, oder der Prototyp mit Blick auf die Sicherheit, auch wenn es während der Prototypisierungsphase zeitaufwendiger ist.

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 und Sicherheitsbedrohungen 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 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 in kritischen Infrastrukturen.


Mehr Artikel

Rüdiger Linhart, Vorsitzender der Berufsgruppe IT der Fachgruppe UBIT Wien. (c) WeinwurmFotografie
Interview

IT-Berufe im Fokus: Innovative Lösungen gegen den Fachkräftemangel

Angesichts des anhaltenden IT-Fachkräftemangels ist schnelles Handeln gefordert. Die Fachgruppe IT der UBIT Wien setzt in einer Kampagne genau hier an: Mit einem breiten Ansatz soll das vielfältige Berufsbild attraktiver gemacht und innovative Ausbildungswege aufgezeigt werden. IT WELT.at hat dazu mit Rüdiger Linhart, Vorsitzender der Berufsgruppe IT der Fachgruppe UBIT Wien, ein Interview geführt. […]

News

ISO/IEC 27001 erhöht Informationssicherheit bei 81 Prozent der zertifizierten Unternehmen

Eine Umfrage unter 200 Personen verschiedener Branchen und Unternehmensgrößen in Österreich hat erstmals abgefragt, inwiefern der internationale Standard für Informationssicherheits-Managementsysteme (ISO/IEC 27001) bei der Bewältigung von Security-Problemen in der Praxis unterstützt. Ergebnis: Rund 81 Prozent der zertifizierten Unternehmen gaben an, dass sich durch die ISO/IEC 27001 die Informationssicherheit in ihrem Unternehmen erhöht hat. […]

News

Public Key Infrastructure: Best Practices für einen erfolgreichen Zertifikats-Widerruf

Um die Sicherheit ihrer Public Key Infrastructure (PKI) aufrecht zu erhalten, müssen PKI-Teams, sobald bei einer Zertifizierungsstelle eine Sicherheitslücke entdeckt worden ist, sämtliche betroffenen Zertifikate widerrufen. Ein wichtiger Vorgang, der zwar nicht regelmäßig, aber doch so häufig auftritt, dass es sich lohnt, PKI-Teams einige Best Practices für einen effektiven und effizienten Zertifikatswiderruf an die Hand zu geben. […]

News

UBIT Security-Talk: Cyberkriminalität wächst unaufhaltsam

Jedes Unternehmen, das IT-Systeme nutzt, ist potenziell gefährdet Opfer von Cyberkriminalität zu werden, denn die Bedrohung und die Anzahl der Hackerangriffe in Österreich nimmt stetig zu. Die Experts Group IT-Security der Wirtschaftskammer Salzburg lädt am 11. November 2024 zum „UBIT Security-Talk Cyber Defense“ ein, um Unternehmen in Salzburg zu unterstützen, sich besser gegen diese Bedrohungen zu wappnen. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*