Still No Silver Bullet im KI Zeitalter?

Die irreduzible Essenz von Software-Systemen

Frederick P. Brooks Jr. diskutierte in seinem berühmten Aufsatz "No Silver Bullet – Essence and Accidents of Software Engineering", der 1986 veröffentlicht wurde, die sogenannten vier "Essential Difficulties" der Softwareentwicklung. Diese Schwierigkeiten bezeichnete er als "essentiell", weil sie zum Wesen der Softwareentwicklung selbst gehören und nicht durch aktuelle oder zukünftige Technologien eliminiert werden können.

Die vier inhärenten Eigenschaften der irreduziblen Essenz von Software-Systemen sind:


Komplexität (Complexity): Software ist von Natur aus komplex, da sie sehr viele Interaktionen und Zustände haben kann. Diese Komplexität ist nicht-linear und daher schwer zu verwalten und zu verstehen.

Konformität (Conformity): Software muss oft existierende Systeme, Normen oder Gesetze berücksichtigen oder mit ihnen konform gehen. Dies führt zu zusätzlichen Beschränkungen und Komplexität.

Veränderlichkeit (Changeability): Software muss anpassungsfähig sein, da sich Geschäftsprozesse, Benutzeranforderungen und die technologische Umgebung ständig ändern. Diese Veränderlichkeit erfordert eine hohe Flexibilität des Designs und der Implementation.

Unsichtbarkeit (Invisibility): Software ist unsichtbar und nicht greifbar, was die Konzeptionalisierung, Visualisierung und Kommunikation der Struktur und des Designs erschwert. 


Brooks argumentierte, dass diese essentiellen Schwierigkeiten dazu führen, dass Produktivitätssteigerungen in der Softwareentwicklung nicht mit den Fortschritten in der Hardwaretechnologie mithalten können. Der Vergleich mit Hardware war seinerzeit so wichtig, da die Hardware den größten Kostenblock darstellte, jedoch bekanntermaßen immer günstiger wurde. Brooks stellte 1986 die Hypothese auf, dass es keine "Silver Bullet" gäbe, mit der man die Produktivitätsprobleme in der Softwareentwicklung vollständig lösen könnte, und dass wir lernen müssen, mit diesen inhärenten Schwierigkeiten zu arbeiten und sie zu managen.

Generative KI, unter der man Technologien wie maschinelles Lernen, künstliche neuronale Netze und Natural Language Generation fasst, hat das Potenzial, einige der von Frederick Brooks beschriebenen essentiellen Schwierigkeiten der Softwareentwicklung anzugehen.


Ist KI also die Silver Bullet, die es nach Frederick Brooks nicht gibt?


Um die Antwort vorwegzunehmen: Nein. Allerdings lassen sich alle vier essentiellen Schwierigkeiten erheblich reduzieren. Den Größten Hebel bietet dabei sicherlich die Beherrschung der inhärenten Komplexität von Software.

Die vier Essential Difficulties sind also unterschiedlich hinsichtlich des Potentials von KI zu bewerten.

Wenn wir die vier wesentlichen Schwierigkeiten der Softwareentwicklungin eine entsprechende Reihenfolge bringen, basierend auf dem Potenzial von KI sie zu lösen oder zu mildern, ist folgende Reihenfolge sinnvoll:

  1. 
Komplexität
  2. Unsichtbarkeit
  3. Veränderlichkeit
  4. Konformität


KI hat ein ein sehr hohes Potenzial, den Umgang mit der Komplexität von Software zu erleichtern. Dies liegt an der Fähigkeit von KI, große Mengen an Code und Daten zu analysieren, Muster zu erkennen und daraus Schlussfolgerungen zu ziehen. Beispielsweise können Muster im Code zur Vermeidung von Fehlern und Muster für effiziente Architekturen verwendet werden. In diesem Aspekt ist bereits heute ein nützlicher Kollege.

Obwohl Software an sich immateriell bleibt, könnten in Zukunft KI-gestützte Visualisierungstools dabei helfen, Softwarestrukturen und -abläufe zugänglicher und verständlicher zu machen. Durch KI können Diagramme und Modelle erstellt werden, die helfen, die Unsichtbarkeit zu überwinden und die Kommunikation über Softwareentwürfe zu erleichtern.

Bei dem Umgang mit Veränderlichkeit weist KI ein eher gemischtes Potenzial auf. Technische Veränderungen, etwa im Code oder der Architektur, können relativ gut von KI-Systemen erfasst werden. Auch hier ist KI heute schon ein hervorragendes Hilfsmittel. Schwieriger ist es jedoch, wenn es um die Anpassung an sich ändernde geschäftliche oder gesellschaftliche Kontexte geht. KI kann Entwickler bei der Anpassung an technologische Veränderungen unterstützen, hat jedoch ihre Grenzen bei der Interpretation von Veränderungen in einem breiteren gesellschaftlichen oder geschäftlichen Kontext.

Ähnlich steht es um das Handling von Konformität. KI kann Compliance-Prozesse in Bezug auf klar definierte Standards unterstützen, indem sie automatisierte Analysen und Überprüfungen ermöglicht. Aber die Bewertung von Konformität in Bereichen, die menschliches Urteilsvermögen, Kenntnis von lokalen Gesetzen oder ethische Überlegungen erfordern, bleibt eine Herausforderung. Hier ist die Assistenz von KI begrenzt, da die Anwendung und Interpretation von Regeln oft sehr kontextspezifisch und subjektiv sein kann.

Der Kontext spielt auch insgesamt, eine entscheidende Rolle bei der Frage, wie hilfreich KI bei den essentiellen Frage der Softwareentwicklung sein kann, da die tatsächliche Wirkung von KI in jedem dieser Bereiche nun einmal sehr stark vom spezifischen Anwendungsfall und Kontext abhängt.

Doch selbst wenn KI das Potenzial hat, mit all diesen Herausforderungen umzugehen, wird wohl keine von ihnen vollständig "gelöst" werden. Jede bleibt eine inhärente Schwierigkeit der Softwareentwicklung. KI-Technologien sind Werkzeuge, die zur Milderung dieser Probleme beitragen können, aber diese wohl kaum vollständig beseitigen werden.

KI-Systeme können (und sollten) dementsprechend eingesetzt werden, um komplexe Systeme bis zu einem Grad zu verwalten und Entwicklern zu helfen, sich auf die kritischeren Aspekte des Designs und der Implementierung zu konzentrieren. Die Möglichkeiten von KI sind jedoch eher auf den technischen Bereich fokussiert, während soziokulturelle und rechtliche Aspekte eine größere Herausforderung darstellen und bis auf weiteres ein tieferes Verständnis, Einblicke und Entscheidungen erfordern, die vom Menschen getroffen werden.