© Ekaphon maneechot/Shutterstock.com
Wie Software neue Umsatzquellen erschließen kann

Softwarearchitektur für Innovation


Software ist mittlerweile in praktisch allen Wirtschaftsbereichen zentraler Teil der Wertschöpfung. Also sollte Software auch Innovationen ermöglichen. Die Frage ist, wie Software dazu beschaffen sein muss.

Um die Unterstützung von Innovationen durch Softwarearchitektur zu betrachten, muss zunächst der Begriff Innovation geklärt werden. Innovation bedeutet, dass neue Produkte und Dienste auf den Markt kommen und damit letztendlich neue Umsatzquellen entstehen. Es ist also nicht ausreichend, einfach nur eine neue Technologie zu entwerfen, sondern die Technologie muss tatsächlich Geld in die Kasse bringen.

Ebenso muss der Begriff Softwarearchitektur geklärt werden. Oft wird unter der Softwarearchitektur die Aufteilung eines Systems in verschiedene Komponenten verstanden. Das ist sicher richtig. Schon der Begriff „Architektur“ weist in eine solche Richtung. Es geht um die grobgranulare Gestaltung eines Systems, während Design und Implementierung die feingranulare Arbeit an einem System umfasst. Aber es gibt noch einen weiteren wichtigen Bestandteil der Softwarearchitekturarbeit: Die Softwarearchitektur muss sicherstellen, dass die notwendigen Qualitätsmerkmale durch geeignete technologische Maßnahmen erreicht werden. Qualitätsmerkmale werden oft nicht funktionale Anforderungen genannt. Beispielsweise kann Skalierbarkeit oder Sicherheit ein Ziel einer Architektur sein. Dann muss die Architektur Technologien wählen, die solche Ziele unterstützen.

Was benötigt Innovation?

Um Innovation mithilfe von Software zu unterstützen, muss die Software zwei Qualitätsmerkmale umsetzten: Der Erfolg der Software muss messbar sein, und die Software selbst muss änderbar sein. Wenn eine Änderung in der Software zu einem höheren Umsatz oder zu mehr Registrierungen führen soll, dann muss diese Metrik messbar sein. Das ist wichtig, denn oft beeinflussen Änderungen Metriken gar nicht oder verschlechtern sie sogar. So behauptet der ehemalige Chef des Data Minings bei Amazon Ronny Kohavi, dass 60 bis 90 Prozent aller Ideen, die eigentlich eine Metrik verbessern sollen, dieses Ziel nicht erreichen [1]. Ohne ein Feedback durch Metriken lässt sich der Erfolg von Änderungen nicht ermitteln. Und um Maßnahmen zu ergreifen, die eine Metrik ändern sollen, muss die Software änderbar sein. Die Änderungen müssen nicht nur in der Software vorgenommen werden, sondern tatsächlich in Produktion ausgerollt werden und Nutzern zur Verfügung stehen. Nur dann können die Änderungen tatsächlich genutzt werden, Geld einbringen und Metriken erhoben werden.

Diese Aspekte stehen für einen ganz anderen Ansatz bei der Softwareentwicklung. Software kann nicht nach einem längerfristigen Plan entwickelt werden, wenn sie Innovationen unterstützen soll. Wenn beispielsweise eine Website in einem komplexen, langfristigen Projekt komplett neu erstellt wird, dann besteht diese Entwicklung aus vielen Änderungen. Diese Änderungen sollen Metriken wie Umsatz oder Registrierungen verbessern. Da aber alle diese Änderungen gemeinsam umgesetzt werden, kann man kaum noch die Auswirkungen jeder einzelnen Änderung bewerten. Der größte Teil der Änderungen verbessert aber eben nicht den Erfolg der Software. Daher ist ein umfangreiches Projekt kaum sinnvoll. An Stelle solcher Projekte müssen einzelne Änderungen treten, die sich einzeln bewerten lassen. Nur so können die nicht erfolgreichen Änderungen isoliert und gegebenenfalls zurückgerollt werden.

Änderbare Software: Der heilige Gral

Um viele kleine Änderungen in der Software umzusetzen, muss sich die Software einfach anpassen lassen. Änderbare Software ist eine Anforderung in sehr vielen Projekten und eine Art heiliger Gral der Softwareentwicklung. Eine saubere Architektur und eine hohe Codequalität sind die üblichen Maßnahmen, um die Änderbarkeit der Software sicherzustellen.

Für Innovationen ist eine andere Art der Änderbarkeit notwendig: Viele kleine Änderungen, die jeweils einzeln in Produktion gebracht werden. Dazu ist Continuous Delivery [2] ein wichtiges Werkzeug. Im Mittelpunkt von Continuous Delivery steht der Aufbau einer Continuous-Delivery-Pipeline, mit der Änderungen an der Software in Produktion gebracht werden. Sie besteht aus verschiedenen Phasen: Die Commit Stage kompiliert die Software, führt die Unit-Tests aus und kann die Software außerdem einer statischen Codeanalyse unterziehen. Diese Phase ist daher weitergehend identisch mit dem, was sonst ein Continuous-Integration-S...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang