Zum Inhalt gehen

VUCA: Ist wirklich alles kaum vorherseh- und planbar?

Dr. Eldar Sultanow
10. Apr. 2020

Agile Organisationen sollen dank ihrer Agilität besser und schneller auf Unvorhergesehenes reagieren können (Stichwort Volatility, Uncertainty, Complexity, Ambiguity, kurz VUCA).

Zum einen stellen sie sich auf diese Komplexität ein und können auch damit umgehen, dass sich etwa Anforderungen oder sogar Bedingungen in der Umwelt (durch regulatorische, rechtliche, politische oder wirtschaftliche Einflüsse) ungeplant ändern. Zum anderen verfügen agile Softwareentwicklungsansätze über Methoden und -tools, mit denen sie die Schätzung von Aufwänden, die Visualisierung des Fortschritts und die Minimierung von Risiken bewerkstelligen und verbessern. Ein dritter Aspekt agiler Entwicklung ist die Softwarequalität, die dank eines durchdachten Testkonzepts (meist Test-First-Ansätze) und CI/CD sowie dem Bestreben, technische Schulden, anstatt abzubauen, erst gar nicht entstehen lassen.

Agilität und AI schaffen Transparenz

Zu diesen drei genannten Aspekten kann Artificial Intelligence (kurz AI) einen erheblichen Beitrag, sowohl in der agilen Organisation als auch in der agilen Softwareentwicklung, leisten. Die Synergie zwischen Agilität und AI macht Entscheidern die als unvorhersehbar angenommene Geschehnisse transparent und damit vorhersehbar. In der agilen Softwareentwicklung werden Schätzungen sowie Fortschrittsprognosen präziser, die Priorisierung von Aufgaben intelligenter und der Quellcode sicherer und robuster. Auch versteckte, schwer auffindbare Fehler werden früh identifiziert und in Produktion vermieden. Das Ganze spart Zeit, böse Überraschungen und schafft Wettbewerbsvorteile.

Auf Unvorhersehbares reagieren

Fangen wir an, mit dem erstgenannten Aspekt, die Unvorhersehbarkeit in unserer heutigen komplexen VUCA-Welt. In einem Kommentar zum Beitrag des Projektmagazins bringt Georg Angermeier auf den Punkt, dass sich die bislang schwer vorhersehbaren Dinge, wie beispielsweise das Wetter der nächsten drei Tage, mit einer damals für kaum möglich gehaltenen Zuverlässigkeit vorhersagen lassen und die nachvollziehbare Behauptung liegt nahe, „dass wir noch nie in einer so zuverlässigen, überschaubaren, berechenbaren und eindeutigen Welt gelebt haben wir heute!“. Dies hängt vor allem mit dem gegenwärtigen technologischen Fortschritt zusammen. So ermöglichen auch AI-Methoden die Wahrnehmung von Veränderungen (selbst wenn diese schleichend sind) innerhalb sowie im Umfeld des Unternehmens. Solche Veränderungen werden als Abweichung vom „Gelernten“ wahrgenommen. Anforderungen lassen sich mittels AI klassifizieren und priorisieren. Es lässt sich damit nicht nur das Produktbacklog, sondern sogar das ganze Portfolio – wenn wir an Ansätze zu skalierter Agilität wie beispielsweise SAFe denken – intelligent priorisieren.

Intelligente agile Planung

Zum zweiten Aspekt, der agilen Planung, trägt AI ebenfalls bei. So lassen sich Schätzungen, die zum Beispiel in JIRA eingetragen werden mit den tatsächlichen Aufwänden abgleichen. AI-Methoden können anhand von Merkmalen lernen, wie hoch Schätzabweichungen sind: welches Team hat geschätzt, um welche Aufgabe ging es dabei die geschätzt wurde (Server-seitige Programmierung, Frontend-Entwicklung, …) und um das wievielte Release im Jahr handelt es sich. AI-gestützte Forecasts lassen sich damit optimieren, Schätzungen werden präziser und Projektrisiken (die Wahrscheinlichkeit für das Reißen von Deadlines oder Budgets) werden abschätzbarer, wie Aspari in seinem Onlineartikel beschreibt. Ein Beispieltool ist Pegasus AI.

Auf gleiche Weise kann AI die Backlog-Priorisierung intelligent unterstützen: Welche Aufgaben sollten unter Berücksichtigung vorhandener Skills, unter Berücksichtigung von Abhängigkeiten sowie Umfang der Aufgaben und deren fachlicher Kontext sowie Nutzenbewertung zuerst angegangen werden?

Qualitätssicherung von Code

Der dritte Aspekt ist offensichtlich: In der Qualitätssicherung von Code kann AI einen großen Beitrag leisten, das zeigen Aspari und Patel. Hierfür gibt es bereits zahlreiche Ansätze – seien es AI-gestützte Code-Assistenzsysteme (mit Vorschlägen für angefangen bei Variablennamen gemäß der innovativen Idee von Allamanis et al., für Dokumentationstexte bis hin zu ganzen Codeschnipseln), die AI-gestützte Erkennung von Sicherheitsschwachstellen (auf GitHub gibt es eine ganze Liste von Papers, Talks und Tutorials), die Erkennung von Bugs und das Lernen von Stellen im Code, in denen häufig Fehler auftreten, oder der von Strug vorgeschlagene Ansatz für AI in Mutations-Tests. Wir haben ebenfalls einen AI-basierten Ansatz einschließlich eines Tools für die Identifizierung von Fehlern im Code entwickelt, die dahintersteckende Systematik, den Anwendungsfall und Nutzen lesen Sie in diesem Blogbeitrag und in unserer Success Story.

AI und ML sind die technischen Mittel für den Umgang mit Komplexität

Es stimmt zwar, dass die Welt komplex ist, das war sie jedoch schon immer – nur haben wir jetzt die technischen Mittel, diese Komplexität zu durchleuchten. Dies wiederum erfordert eine tiefere Auseinandersetzung mit maschinellem Lernen und ist aufwendiger, als sich bloß darauf zu berufen „die Welt ist nun mal viel zu komplex“. Aber es lohnt sich.

Mehr zu diesem Thema finden Sie hier:

Blog-Updates per Mail?

Abonnieren Sie unseren Newsletter und erhalten Sie alle zwei Monate eine Auswahl der besten Blogartikel.

Autor

Dr. Eldar Sultanow

Enterprise Architecture
Dr. Eldar Sultanow ist Software-Architekt. Er hat langjährige Praxiserfahrung in der Softwareindustrie, insbesondere in den Bereichen JEE, Electronic/Mobile Commerce, Track-&-Trace und Auto-ID im Pharmabereich. In einem zwischenstaatlichen Projekt hat er eine Plattform mit konzipiert, an der internationale Finanzinstitute angeschlossen sind. Aktuell ist Eldar Sultanow als technischer Chefdesigner in einem der größten öffentlichen IT-Verfahren aktiv, das hunderttausende Transaktionen pro Tag mit einem Jahresvolumen von über 25 Milliarden EUR vollzieht.