> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/de/2023/w11-pragmatism-what-gpt-can-and-cannot-do-on-its-impact-on-software-development.md).

# W11-Pragmatismus: Was GPT für die Softwareentwicklung kann und was nicht

### Eine pragmatische Haltung <a href="#a1fb1ea1-fa48-44d0-bb65-5ec80413109a" id="a1fb1ea1-fa48-44d0-bb65-5ec80413109a"></a>

**Ich unterstütze eher die Sicht handlungsorientierter Pragmatiker.**

Wir sollten die Realität anerkennen und mit Blick auf weitere Entwicklung fragen, wie GPT Softwareentwicklung verändert, statt nur, ob es Menschen ersetzt. Sich um letzte Grundsatzfragen zu drehen bleibt oft leer. Wer aus Pessimismus aufgibt oder aus Optimismus die Entwicklung ignoriert, kann beides als Form von Bequemlichkeit betreiben. Die Entstehung und Verbreitung des Computers war zweifellos ein epochaler Wandel. Er schuf viel mehr, als er ersetzte. Deshalb sollten wir uns stärker für die konkreten gesellschaftlichen Folgen struktureller Veränderungen der Produktionsfaktoren interessieren. Kopfrechnen und Kalligrafie, die Kinder der 1980er- und 1990er-Jahrgänge lernten, stehen heute beispielsweise nicht mehr im Mittelpunkt elterlichen Förderdrucks.

### Was Copilot erkennen lässt <a href="#ce593370-e50e-4f6b-b33f-14d7e22a2eac" id="ce593370-e50e-4f6b-b33f-14d7e22a2eac"></a>

IDE-Erweiterungen wie GitHub Copilot und Tabnine zeigen Stärken und Schwächen von GPT.

**Stärken**

* Entlastung von langweiligen, wiederholten Arbeiten wie einmaligen Skripten, CRUD und Unit-Tests.
* Lernen und Erkunden neuer Gebiete, etwa ein schneller Einstieg in Sprachen, Frameworks und Bibliotheken.
* Typische Maschinenstärken, etwa beim Schreiben regulärer Ausdrücke, von SQL oder CronJobs.

**Grenzen**

* Sicherheit. Im Unternehmen ist die Nutzung derzeit bereits gesperrt.
* Urheberrecht. Da die von Copilot erschlossenen Codefragmente aus Open-Source-Projekten auf GitHub stammen, entstehen Lizenz- und Eigentumsfragen.
* Genauigkeit. Falsche GPT-Antworten wirken glaubwürdiger als falsche Suchergebnisse. GPT erzeugt eher plausible als korrekte Antworten.

### Folgen für die Softwareentwicklung <a href="#fe7a1851-1071-4294-9dd3-9490d96308a6" id="fe7a1851-1071-4294-9dd3-9490d96308a6"></a>

**Programmierung**

* Fähigkeiten und Lernweisen müssen weiterentwickelt werden. Tiefere Informatikgrundlagen, etwa Compilertechnik, werden nötig. Wissen über Datenstrukturen, Algorithmen und API-Aufrufe von Frameworks oder Bibliotheken ist inzwischen leicht zugänglich. Geübtes Wiederholen ist deshalb nicht unbedingt noch ein Wettbewerbsvorteil.
* Mehr Geschäftswissen sammeln, Geschäftsverständnis und Einsicht stärken und die eigene technische Kreativität entwickeln. Der Schwerpunkt der Anwendungsentwicklung könnte sich vom Schreiben von Code zum Training von KI-Modellen verschieben, die die Besonderheiten einer Domäne abbilden.

**Architektur**

* Architekten verbinden im Kern Geschäft und Technik. Ihre Aufgabe ist, Geschäftsanforderungen tief zu verstehen, die daraus entstehende Systemkomplexität einzuschätzen, alternative Lösungen zum Umgang damit oder zu ihrer Verringerung zu entwerfen und schließlich situationsabhängig abzuwägen.
* Die Unterschiede zwischen Geschäftsanforderungen selbst lassen sich nicht antrainieren. Verschiedene Abteilungen oder Teams erzeugen für dasselbe Produkt unterschiedliche Anforderungen.
* Urteile im Architekturprozess lassen sich nicht standardisieren. Architekten müssen Bedürfnisse von Beteiligten, den technischen Entwicklungsstand des Teams und die Geschäftsentwicklung berücksichtigen. Diese Abwägungen lassen sich weder standardisieren noch antrainieren.
* Technologie entwickelt sich ständig weiter. Architektur verlangt Innovationsfähigkeit. Kann ChatGPT ein Nachfolgeprodukt schaffen, das es selbst revolutioniert? Derzeit lautet mein Urteil: nein.
