Designprozesse Der dynamikrobuste Softwareentwurf
Nahezu alle Entwicklungsorganisationen sind heutzutage einem Umfeld hoher Dynamik ausgesetzt. Ständig ändern sich bereits bestehende Anforderungen, oder es kommen neue hinzu. Das muss eine Software aushalten können – sie muss dynamikrobust sein.
Anbieter zum Thema

Die Welt befindet sich inmitten eines Veränderungsprozesses. Der rasante technologische Fortschritt, die zunehmende Komplexität technischer Systeme, der globale Wettbewerb, die weltweite Vernetzung, ständig steigende Anforderungen bezüglich Funktionalität und Qualität, aber auch wechselnde Rahmenbedingungen wie beispielsweise gesellschaftliche und soziodemographische Entwicklungen, sorgen insgesamt für eine Erhöhung der Dynamik der Märkte.
Das heißt: Organisationen sind im heutigen Informationszeitalter sehr viel häufiger mit unerwarteten Ereignissen konfrontiert, als es noch im Industriezeitalter bis etwa Mitte der 1980er Jahre der Fall war. Die Zukunft wird immer unvorhersehbarer, und Planung als Instrument der Steuerung versagt immer öfter.
Um weiterhin erfolgreich zu bleiben und bestehen zu können bedeutet das für viele Entwicklungsorganisationen, dass sie auf verschiedenen Ebenen Wege, Mittel und Strategien finden müssen um mit diesem komplexen und dynamischen Umfeld adäquat umgehen zu können. Dr. Gerhard Wohland et al. bezeichnen die Organisationen, denen dieses gut gelingt, als dynamikrobuste Höchstleister [Wohland2012]. Diese Unternehmen sind so aufgestellt, dass sie Marktdruck erzeugen und es dadurch ihren Wettbewerbern schwer machen.
Um beispielsweise auf der Prozessebene mit hoher Dynamik umgehen zu können, arbeiten dynamikrobuste Höchstleister häufig mit agilen Frameworks, wie Scrum. Scrum als Inspect&Adapt-Framework zur Produktentwicklung erlaubt es, angemessen und zeitnah Änderungen und neue Anforderungen zu berücksichtigen; es etabliert in der Entwicklung quasi eine Art Willkommenskultur für das dynamische Umfeld.
Es reicht allerdings nicht aus nur die Organisations- und Prozessebene fit für hohe Dynamik zu machen. All diese Bestrebungen laufen ins Leere, wenn das zu entwickelnde Produkt sich dem widersetzt. Der starre und widerspenstige Software-Monolith kann in einem dynamischen Umfeld erhebliche Probleme bereiten und zu einem Show-Stopper werden.
Agile Teams werden nicht selten durch ihr eigenes Produkt ausgebremst. In den Prinzipien des agilen Manifests [Manifest2001] heißt es daher auch: Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität. Man möchte damit zum Ausdruck bringen, dass die innere Qualität einer Software genauso wichtig ist wie die extern wahrnehmbare Qualität und Funktionalität.
Aus diesem Grund muss in der Entwicklung ein besonders hohes Augenmerk auf die Evolvierbarkeit des Produkts gelegt werden. Evolvierbarkeit ist eine nicht-funktionale Eigenschaft einer Software, die anzeigt, mit welcher Energie (Aufwand) und mit welchem Erfolg neue Anforderungen realisiert bzw. bestehende Funktionen geändert und an neue Rahmenbedingungen angepasst werden können.
Nur gut evolvierbare Software hat Aussicht auf eine hohe Lebensdauer; diese Eigenschaft stellt somit auch eine Art Investitionsschutz für den Kunden dar. Evolvierbare Software ist dynamikrobuste Software.
(ID:44130029)