Softwareentwicklung ist die Kunst, Komplexität zu managen

Software engineering is about managing complexity

Softwareentwicklung wird oft mit dem Schreiben von Code verwechselt, doch das eigentliche Problem ist die Bewältigung von Komplexität. Dieser Artikel argumentiert, dass KI zwar hervorragend Code generieren kann, aber nicht in der Lage ist, die kontextabhängigen Entscheidungen zu treffen, die Architektur und Systemdesign erfordern. Anhand von Beispielen zeigt er, warum technisch beeindruckende Lösungen für ein Unternehmen unverantwortlich für ein anderes sein können, und warum algorithmisches Denken und das Verständnis für Trade-offs im Zeitalter der KI wichtiger denn je sind.

Engineering ist weitgehend die Disziplin, zu entscheiden, welche Probleme man bereit ist zu haben.
  1. zug_zug

    Der Komplexitätskram stimmt alles absolut.

    Ich denke jedoch, dass es aufbläht, was menschliche Ingenieure tatsächlich tun, mit Bemerkungen wie "Ingenieure besitzen Trade-offs". Meine Erfahrung ist, dass sicherlich weniger als die Hälfte der angestellten Softwareentwickler tatsächlich eine echte Analyse zu Fragen wie:

    "Angesichts dieser Einschränkungen, dieses Teams, dieses Geschäfts, dieser Infrastruktur, dieses Budgets, dieser Risiken und der erwarteten Entwicklung des Produkts, was ist der am besten geeignete Weg, X heute zu implementieren?"

    Daher denke ich, dass KI eher in der Lage ist, den durchschnittlichen Ingenieur zu ersetzen, als dieser Artikel zugibt, jedoch wird die Unzulänglichkeit des "durchschnittlichen Engineerings" jetzt viel deutlicher: Codebasen können jetzt in Monaten groß/komplex genug werden, um unhandlich zu sein, wo es früher 5 Jahre dauerte [eine Zeitskala, auf der Verantwortlichkeit praktisch unmöglich ist].

  2. cobbal

    Verloren hat es mich bei der ersten Annahme. Leute können darüber streiten, wie nützlich KI ist, aber sie ist offensichtlich nicht essentiell, weil wir es irgendwie geschafft haben, Code ohne sie vor ein paar Jahren zu schreiben. Ich würde sogar sagen, der Code war damals besser.

    Die beiden Aufgaben, Code zu schreiben und Software zu entwickeln, können nicht getrennt werden, ohne die Integrität des mentalen Modells des Ingenieurs zu beschädigen. Architekten, die nicht mit dem Code interagierten, haben immer Karte/Territorium-Diskrepanzen erzeugt.

  3. a2ff6eeb0

    KI kann auch die Architektur für dich generieren, basierend auf den Anforderungen, und die notwendigen klärenden Fragen stellen.

    Es ist noch nicht so gut im Systemdesign wie im Schreiben von Code. Aber es fühlt sich an, als wäre es besser als die meisten meiner Kollegen.

    Ich denke, in ein paar Monaten wird die Systemarchitektur ihren Claude-Code-Moment haben, und Menschen werden übertroffen.

  4. wyum

    Softwarekomplexität wächst überlinear, wenn nicht exponentiell, wenn man Komponenten hinzufügt.

    Es gibt Dinge, die ein Ingenieur tun kann, um die Kurve abzuflachen - das ist die Komplexitätsmanagement-Idee des OP - aber das Komplexitätswachstum kann niemals linear sein, solange man zur Software hinzufügt.

    Ich habe ein Modell/Theorem dafür erstellt, das ich auf X gepostet habe: https://x.com/i/status/2027771813346820349

    Die Codegenerierung hat aufgedeckt, dass Verifikation das zentrale Problem der Softwareentwicklung ist. Und ich denke, das war es schon immer.

    Zu definieren, was "korrekt" ist, kann schon schwer genug sein, geschweige denn ein System zu bauen, das sich zur Verifikation eignet, geschweige denn die Zeit zu investieren, um zu verifizieren. Software zu veröffentlichen und Benutzer Bugs finden zu lassen, ist daher eine sehr effiziente Strategie, weil sie die Last verteilt. Aber man muss die Grenze zwischen dem Verlieren von Benutzern und dem Erhalten von genug Feedback, um die wichtigen Bugs zu finden und zu beheben, balancieren.

    Während wir uns damit auseinandersetzen, ob KI uns die Jobs nehmen könnte, tröste ich mich ein wenig mit der Idee, dass die Welt zu komplex sein könnte, selbst für die größte, am besten trainierte KI, die wir uns vorstellen können. An einem bestimmten Punkt muss man die ganze Welt (oder einen wesentlichen Teil davon) simulieren, und das Kosten-Nutzen-Verhältnis, das alles mit Rechenleistung zu versuchen, könnte es nicht wert sein, im Vergleich dazu, die reale Welt (also Menschen) als Verifizierer zu nutzen.

  5. softwaredoug

    Manchmal betreffen diese Trade-offs ein halbes Dutzend über ein paar Zeilen Code. Und genau da zögere ich, einen Agenten arbeiten zu lassen. Es wird gut darin sein, korrekten Code zu erstellen. Und man kann es einigermaßen einschränken, über eine andere Sache nachzudenken. Aber es verliert den Überblick, ignoriert Einschränkungen, betrügt, und legt man Komplexität obendrauf, um das zu verhindern? Oder schaut man sich einfach ein Dutzend Zeilen Code an, um es zu beheben?

Mehr von diesem Tag

2026-08-27