Radikale Änderungen auch bei Kommunikation und Zusammenarbeit Warum KI die Regeln des Software Engineerings neu schreiben wird

So verändert künstliche Intelligenz Software Engineering & Projektarbeit

Mit KI als Treiber wird sich das Software Engineering massiv verändern. Das gilt auch für die Struktur von Organisationen und die

Kommunikation
, sagt unser Autor und entwirft ein Zukunftsbild von einer KI-getriebenen Projektarbeit.

Management Summary

Radikale Änderungen auch bei Kommunikation und Zusammenarbeit Warum KI die Regeln des Software Engineerings neu schreiben wird

So verändert künstliche Intelligenz Software Engineering & Projektarbeit

Mit KI als Treiber wird sich das Software Engineering massiv verändern. Das gilt auch für die Struktur von Organisationen und die

Kommunikation
, sagt unser Autor und entwirft ein Zukunftsbild von einer KI-getriebenen Projektarbeit.

Management Summary

Large Language Models transformieren nicht nur Software-Projekte, sondern das Software Engineering selbst. Viele Rollen, einschließlich der des Projektmanagements, werden sich in den nächsten Jahren signifikant ändern. Wie genau wird Software Engineering von morgen aussehen und welche Rolle wird Projektmanagement in der neuen Ära spielen? Diese Frage steht im Mittelpunkt dieses Artikels.

Die organisatorischen und technischen Strukturen von Software-Projekten, oft als sozio-technische Systeme bezeichnet, werden tiefgreifend von den Fähigkeiten und Grenzen der menschlichen Kognition beeinflusst. Mit dem Aufkommen der Künstlichen Intelligenz (KI) als Kategorie entstehen neue Fähigkeiten und Einschränkungen, die herkömmliche Ansätze sowohl in der Organisationswissenschaft als auch im Software Engineering herausfordern.

Aktuell entwickelt sich KI innerhalb der bestehenden Kategorien des Software Engineering, wie Coding oder Testing. Da die etablierten Kategorien durch die Eigenschaften der Menschlichen Intelligenz geprägt sind und KI ganz andere Eigenschaften hat, stelle ich in diesem Artikel die Hypothese auf, dass KI mit der Zeit die etablierten Kategorien des Software Engineering umgestalten wird.

Zur Unterstützung dieser Hypothese werde ich eine retrospektive Analyse der Geschichte des Software Engineerings durchführen und zeigen, wie sich das Feld an die Einschränkungen der menschlichen Kognition angepasst hat. Anschließend werde ich projizieren, wie die KI-getriebenen Software-Projekte von morgen aussehen werden.

KI innerhalb bestehender Kategorien

Wenn wir mit neuer Technologie konfrontiert werden, interpretieren wir sie mithilfe bestehender Kategorien. Ein Smartphone wurde zunächst als Telefon kategorisiert, bis es die Rolle eines Pocket-PCs aufnahm. Das Gleiche passiert mit KI-Anwendungen. Wir wissen, dass Menschen Code schreiben, und daher überlegen wir, wie KI beim Schreiben von Code assistieren kann. Dasselbe gilt für das Erzeugen von Anforderungen, UI-Entwürfen, User Stories und anderen Projektartefakten. Wir weisen KI die Rollen in den Kategorien zu, mit denen wir vertraut sind. Sobald jedoch KI diese Kategorien besetzt, wird sie Leistungsmerkmale bieten, die sich von denen der Menschen unterscheiden und letztendlich die Kategorien selbst verändern. Dazu später mehr.

Software Engineering in der von Menschen geführten Welt

Wer die bevorstehende Transformation nachvollziehen möchte, muss verstehen, warum sich das Software Engineering in seiner heutigen Form entwickelt hat. Die treibenden Kräfte für ihre Entwicklung beruhen auf den spezifischen Eigenschaften und Einschränkungen des menschlichen Gehirns.

1. Arbeit wird aufgeteilt

Angesichts der Komplexität moderner Anwendungen können wir das Wissen und die Fähigkeiten, die für den gesamten Lebenszyklus der Software-Entwicklung (SDLC) erforderlich sind, nicht mehr in einem einzigen Kopf integrieren. Vorbei sind die Zeiten von Alan Turing, in denen eine Person sowohl das "Warum", als auch das "Wie" und das "Was" verstehen und dann in Software und Hardware umsetzen konnte.

Als Ergebnis teilen wir die Arbeit in Abschnitte auf, die von den kognitiven Kapazitäten unserer Köpfe bewältigt werden können. Wir unterteilen den SDLC in mehrere Kategorien: von der Geschäftsstrategie und der Anforderungsermittlung bis zum Betrieb der laufenden Software. Diese Kategorien bestimmen die Phasen in SDLC.

2. Minderung der kognitiven Belastung

Der meiste technische Fortschritt im Software Engineering ist mit dem Wunsch verbunden, die kognitive Belastung der Individuen zu verringern. Dadurch ermöglichen wir einem Einzelnen, ein breiteres Teilspektrum des SDLC zu bedienen. Diese "Breite" verringert die Zahl der Wissens-Silos und Übergaben zwischen Personen sowie den Bedarf nach lokalen Optimierungen in den einzelnen Phasen.

Hier sind ein paar Beispiele:

  • High-Level Programming Languages ermöglichten es Programmierern, die Maschinenbefehle zu abstrahieren und sich stattdessen auf Software statt auf Firmware zu konzentrieren.
  • Objektorientierte Programmierung war ein Weg, die Komplexität weiter zu adressieren und die Fachdomäne hinter abgekapselten Klassen zu modellieren.
  • Alle Fortschritte in der CI/CD-Automatisierung, bei Containerisierung, Serverless-Produkten und Low-Code-/No-Code-Technologien dienen dazu, die menschlichen Gehirne zu entlasten und Kapazitäten für fachspezifische Aufgaben freizusetzen.

Die ersten KI-Entwicklungen für das Software Engineering zielen darauf ab, diesen Trend der Verringerung der kognitiven Belastung fortzusetzen und den Menschen bei routinemäßigen Aufgaben zu unterstützen. So hilft z.B. Coding mit Co-Pilots nicht nur, den Code schneller zu produzieren, sondern verringert auch die kognitive Last von Entwickler:innen, da sie keine neuen Programmiersprachen und Technologien mehr erlernen müssen.

3. Wieder muss zusammengeführt werden

Sobald wir SDLC in Kategorien aufteilen, müssen wir die Artefakte und das Wissen über diese Kategorien wieder integrieren. Andernfalls würden unsere Organisationen unter Misalignment und Heterogenität leiden. Die zweite Gruppe der KI-Innovationen im Software Engineering diente dazu, diese Herausforderung zu lösen. Nachfolgend einige Beispiele:

  • Die objektorientierte Programmierung (OOP) war meines Erachtens der erste Versuch, Geschäftsbereiche und Software zu überbrücken, und die Gang of Four (GoF) Entwurfsmuster waren das Werkzeug, um die menschliche Kommunikation zu standardisieren. Dies ermöglichte es, die Informationslast und Konsistenz, die Ingenieur:innen untereinander austauschten, zu erhöhen. Wenn ein Ingenieur sagte "Adapter Pattern", wurde dem anderen sofort klar, wie ein Entwurf dazu aussieht.
  • Domain-Driven Design (DDD) war der nächste bedeutende Schritt in der Angleichung der Sprache der Fachdomäne und der Sprache der Software, was das Alignment zwischen Business Analyse und Software Design erhöhte.
  • Mit Frameworks wie XP und Scrum wurde die agile Bewegung geboren, um den Informationsfluss zwischen den Phasen des SDLC zu beschleunigen und den SDLC von einer unidirektionalen Linie zu einem iterativen Kreis zu biegen.
  • Das DevOps-Paradigma, ähnlich der Theorie der Einschränkungen von Eliyahu Goldratt, hat dazu beigetragen, die lokale Optimierung innerhalb bestimmter Funktionen zu vermeiden und für bessere Integration unter unterschiedlichen Funktionalitäten zu sorgen (siehe auch "Softwareprojekte unchained: Mit DevOps auf die Überholspur!").
  • Schließlich ermöglichen Frameworks wie UnFix, Team Topologies und Org Topologies ein besseres Alignment zwischen den Strukturen der Fachdomäne, denen der Software und denen der Organisationen. Ihr Aufkommen löste eine neue Diskussion über sozio-technische Systeme aus, die darauf abzielt, eine ganzheitliche kohärente Klammer für die Business Domäne, die Organisation und die Software zu erreichen.

Ein gemeinsamer Aspekt all dieser Innovationen ist, dass sie helfen, Menschen zu alignen und Informationsflüsse zu beschleunigen. KI wird auf diesen Feldern Quantensprünge ermöglichen und vollkommen neue Maßstäbe setzen, wie ich nachfolgend ausführen werde.

Die Struktur des Software Engineerings von heute spiegelt die Eigenschaften des menschlichen Gehirns wider. Dekomposition und Integration prägen die Geschichte der Disziplin: Menschen müssen komplexe Dinge zerlegen, um sie verarbeiten zu können. Anschließend müssen sie ihre Arbeit integrieren, um Alignment zu erreichen. KI stellt dieses Vorgehen in Frage, denn sie wird das Alignment vereinfachen.

Die Neugestaltung des Software Engineerings

Das könnte Sie auch interessieren