Zum Inhalt springen

Suchen...

Codierst du noch oder prüfst du schon?

Die meisten Programmierer, die KI-Tools verwenden, werden alten Code schneller erstellen, nicht besser. Hier erfährst du, was Qualitätsentwickler/innen im Jahr 2034 auszeichnet.

9 Min. Lesezeit
Cover für Codierst du noch oder prüfst du schon?

Die Softwareentwicklung im Jahr 2034 wird wahrscheinlich vertrauter aussehen, als die meisten Vorhersagen vermuten lassen: Programmiersprachen, Tooling-Grundlagen und die Notwendigkeit von Präzision und Testen werden weitgehend unverändert bleiben. Die größte Veränderung besteht darin, dass Entwickler/innen, die sich auf KI-Codegenerierung verlassen, ohne zu verstehen, was der Code tun soll, schneller veralteten Code produzieren werden, so dass Testen und die Fähigkeit, präzise Fragen zu stellen, die Fähigkeiten sind, die starke Ingenieur/innen auszeichnen.

Das Wichtigste in Kürze

  • Entwickler/innen, die sich auf generative KI verlassen, um Code zu produzieren, ohne ihn zu verstehen, werden zu Wartungsprogrammierer/innen, die der kreativen Arbeit beraubt werden, die sie für sinnvoll halten.
  • Der Wechsel der Programmiersprachen ist langsamer, als die Branche annimmt: Jede der fünf meistgenutzten Sprachen wurde im 20. Jahrhundert erfunden, und keine Sprache aus den 2020er Jahren ist unter den Top 20.
  • Die Qualität des Codes auf GitHub hat bereits Anfang 2024 abgenommen, da die Zahl der Codeabweichungen steigt und immer mehr doppelter Code direkt auf KI-generierten Output zurückzuführen ist.
  • Die Fähigkeiten, die Entwickler/innen in einer KI-getriebenen Umgebung auszeichnen, sind Präzision, Testen und die Fähigkeit zu fragen, was Software eigentlich tun sollte, und nicht die Vertrautheit mit einem bestimmten Tool.
  • Die Programmierung in natürlicher Sprache macht Software-Know-how nicht überflüssig: Die meisten Tabellenkalkulationen, die von Nicht-Entwicklern erstellt werden, sind unwartbar, unverständlich und fehlerhaft, was das vorhersehbare Ergebnis ungenauer Spezifikationen ist.

Programmiersprachen entwickeln sich langsamer als der Hype vermuten lässt

Die Sprachen, die die meisten Entwickler im Jahr 2034 verwenden, gibt es schon heute. Wenn du dir die Daten ansiehst, wurden die fünf meistgenutzten Sprachen mit einer Ausnahme im 20. Jahrhundert entwickelt. Dieses Muster gilt auch für die Top 20 und die Top 50.

Kevlin Henney bringt es auf den Punkt: Keine Sprache, die in den 2020er Jahren entwickelt wurde, steht auch nur annähernd an der Spitze der Nutzungs-Charts. Selbst Rust, zu dem die Leute greifen, wenn sie sich die Zukunft der nativen Programmierung vorstellen, ist schon über zehn Jahre alt.

Die Sprache, auf die du dich in zehn Jahren verlassen wirst, wurde höchstwahrscheinlich schon erfunden und ist, wenn nicht in den Top 20, so doch in den Top 50 vertreten. Betrachte die Entwicklung der Sprachen also als einen langsamen Trend, nicht als Revolution. Die Sprachen entwickeln sich intern weiter, aber der Gesamtmix ändert sich kaum.

Ein einfacher Weg, das nächste Jahrzehnt vorherzusagen

Um dir das Jahr 2034 vorzustellen, drehe den Zyklus rückwärts. Wenn wir jetzt das Jahr 2024 haben, denke daran, wie es 2014 war, dann 2004 und dann 1994. Die Übung zeigt dir zwei Dinge auf einmal: wo echte Unterschiede auftreten und wo sich fast nichts bewegt hat.

Einige gehypte Zukünfte sind bei diesem Test bereits ins Stocken geraten. Web 2 wurde innerhalb eines Jahrzehnts, nachdem der Begriff geprägt worden war, zu einer Sache. Über Web 3 wird seit über einem Jahrzehnt geredet und es ist immer noch nichts passiert, und es gibt keine Anzeichen dafür, dass es auf dem Weg dorthin ist.

Andere Hype-Zyklen sehen ähnlich aus. Das Metaverse ist nach wie vor fragmentiert und wird wahrscheinlich in Nischen wie dem Gaming und einigen industriellen Anwendungen bleiben, nicht aber in einer tief greifenden Alltagsumgebung. Die meisten Kryptowährungen werden nicht als Währung behandelt, obwohl die digitale Währung der Zentralbank eine glaubwürdige Ausnahme darstellt. 5G ist die Gegenwart, nicht die Zukunft.

Warum dein Job den KI-Wandel überlebt

Die Softwareentwicklung wird nicht verschwinden. Diese Vorhersage traf Kevlin 2016 auf einer Konferenz in Polen und hat sie seitdem noch einmal bekräftigt: Entwickler/innen werden weiterhin gebraucht, denn das Konzept der Entwicklung ändert sich nicht.

Der Grund dafür liegt darin, was Programmieren eigentlich ist. Es geht nicht um das Zusammenstellen von Syntax. Es ist das Streben nach Präzision, die Arbeit an der Antwort auf die Frage, was du eigentlich tun willst.

Die Programmierung in natürlicher Sprache löst dieses Problem nicht. Wenn du etwas in natürlicher Sprache schlecht formulierst, ist das Ergebnis schlimmer, als wenn du es in Code geschrieben hättest. Die Brücke zwischen der weichen, flexiblen Welt menschlicher Absichten und einer Notation, die jedes Mal das gleiche Ergebnis liefert, ist die Arbeit, und sie wird nicht verschwinden.

Die Tabellenkalkulation hat die Frage nach der “codefreien Zukunft” bereits beantwortet

Das am weitesten verbreitete Programmierparadigma der Welt ist die Tabellenkalkulation, und sie zeigt dir, was passiert, wenn Nicht-Experten Software in großem Maßstab entwickeln. Die meisten Menschen, die Tabellenkalkulationen verwenden, haben keine Erfahrung in der Softwareentwicklung. Die meisten Tabellenkalkulationen sind unwartbar, unverständlich und fehlerhaft.

Wenn die Zukunft der Software darin besteht, dass Menschen, die keine Softwareexperten sind, Systeme erstellen, ist dein Job sicher, denn dieser Output muss verstanden und korrigiert werden. Tabellenkalkulationen haben niemanden arbeitslos gemacht. Sie haben Möglichkeiten geschaffen.

Generative KI macht die meisten Entwickler zu Wartungsprogrammierern

Das wahrscheinliche Ergebnis der generativen KI im Entwicklungsalltag ist mehr Legacy-Code, der schneller produziert wird. Kevlin hat dies im April 2023 auf Mastodon vorausgesagt und bleibt dabei: Die Mehrheit der Entwickler wird Legacy-Code erstellen, sie werden es nur schneller tun.

Hier ist die Ironie. Ein Entwickler, der das Erste nimmt, was das Tool generiert, ohne zu verstehen, was es tun soll, muss am Ende Code warten, den jemand oder etwas anderes geschrieben hat. Damit fällt der Teil der Arbeit weg, der den meisten Entwicklern Spaß macht, und wird durch Wartung ersetzt, über die sie nicht nachdenken können.

Die ersten Anzeichen deuten bereits in diese Richtung. Eine Studie von GitClear, die im Januar 2024 veröffentlicht wurde, zeigte, dass die Qualität des Codes auf GitHub unter Druck gerät: mehr Code Churn, mehr Duplikate und Copy-Paste-Code, mehr Reverts von kürzlich übertragener Arbeit. Da wir wissen, wie die Menschen die ihnen zur Verfügung stehenden Werkzeuge nutzen, war dies vorhersehbar.

Sind sie produktiver geworden? Oh, sie werden mehr Commits machen.

  • Kevlin Henney

Werde gut im Testen, denn das ist es, wo sich der Wert bewegt

Die Fähigkeit, die dich schützt, ist die Fähigkeit zu prüfen, was ein Tool produziert. Wenn du es nicht testen kannst und nicht weißt, was es tun soll, macht dich der generierte Code standardmäßig zu einem Programmierer für die Wartung.

Um zu wissen, wie du etwas testen kannst, musst du erst einmal wissen, was es tun soll. Anforderungen und Tests bilden einen natürlichen Kreislauf. Verstärke beides, in natürlicher Sprache und im Code: Wie sieht das Richtige aus, und wie sieht das Falsche aus.

Diese Fähigkeiten - Präzision, Testen und das Stellen der richtigen Fragen - waren schon immer vorhanden. Mit KI in der Schleife sind sie keine Hintergrundarbeit mehr, sondern werden zum sichtbaren Unterschied zwischen starken und schwachen Entwicklern und zwischen starken und schwachen Unternehmen.

KI ist statistisch, also trägt sie die Vorurteile der Vergangenheit

Ein statistischer Ansatz für KI bildet ein Abbild der Vergangenheit und sagt das wahrscheinlichste Ergebnis voraus. Das heißt, sie ignoriert Randfälle und alles, was unter die Mehrheit fällt.

Das ist besonders wichtig, wenn automatisierte Systeme Entscheidungen treffen, die das Leben von Menschen betreffen. Das Risiko ist keine Frage des technischen Könnens. Jeder, der es als rein technische Frage betrachtet, hat die Arbeitsweise der Menschen falsch verstanden.

Die eigentliche Frage ist die nach dem Engagement und der Wahlmöglichkeit. Wenn wir diese Entscheidung nicht bewusst treffen, wird eine Reihe von Menschen benachteiligt werden, und das ergibt sich direkt aus dem Verhalten statistischer Systeme. Das ist keine Entscheidung, die man demjenigen überlassen sollte, der am lautesten über die Technologie spricht.

Zwei offene Faktoren werden die nächsten Jahre prägen. Der eine ist die Beziehung zwischen KI und großen Trainingsdaten und die ungelösten Urheberrechtsfragen, die sich durch die Gerichte ziehen. Der andere ist die Gesetzgebung: ob die EU-Vorschriften weltweit so einflussreich werden wie die DSGVO und ob sich ein internationaler Konsens abzeichnet oder ob die Länder stark divergieren.

Die Spaltung: qualitätsorientierte Teams versus druckgetriebene Teams

Bis 2034 wird sich die Softwareentwicklung wahrscheinlich eher aufspalten als verschwinden. Einige Unternehmen werden gelernt haben, dass es nicht darauf ankommt, das Falsche schneller zu entwickeln, und sie werden erfolgreich sein. Viele werden es nicht tun.

Die Unternehmen, die diese Lektion verpassen, reagieren meist mit Mikromanagement und Druck. Der Nachteil von Continuous Deployment ist, dass sich der Überwachungszyklus von monatlich auf täglich verkürzt hat, und ohne ein wirklich kooperatives Umfeld wird das zu einem ständigen Strom von Terminen.

Für manche Teams könnte die Arbeit unangenehm werden. Der Unterschied ergibt sich nicht von selbst. Es hängt davon ab, ob eine Organisation Qualität oder mehr Commits als Ziel hat.

Agilität bedeutet, die Distanz zwischen Geschäft und Code zu verkürzen

Die Zusammenarbeit verbessert sich, wenn die Kommunikationsdistanz zwischen den Menschen, die die Software brauchen, und den Menschen, die sie entwickeln, kürzer wird. Vor Jahrzehnten war diese Distanz natürlich gering, weil Unternehmen maßgeschneiderte Software im eigenen Haus entwickelten.

Heute ist das Bild gemischt. Das Outsourcing erweitert die organisatorischen Grenzen, während kleine Unternehmen immer noch von ihrer Flexibilität profitieren, weil sie einfach klein sind. Es entstehen immer wieder neue Unternehmen, die die Softwarebedürfnisse anderer bedienen und dann wieder über die Grenzen hinweg arbeiten müssen, die sie selbst geschaffen haben.

Für große Unternehmen bedeutet Agilität oft, dass sie ihre Managementebenen von vier auf drei reduzieren und das als Fortschritt bezeichnen. Der Druck, den Abstand zu verringern, ist konstant, aber er zieht in beide Richtungen gleichzeitig.

Was du jetzt lernen musst und wie du über Werkzeuge nachdenken kannst

Baue zuerst auf den Grundlagen auf, denn sie bewegen sich langsam. Die Prinzipien, die tieferen Fähigkeiten und die Frage, was du eigentlich von der Software willst, überdauern jede spezifische Technologie.

Betrachte Sprachen als ein Portfolio, nicht als eine Identität. Anstatt “Ich bin Java-Programmierer” zu sagen, sag “Das ist die Sprache, die ich dieses Jahr benutze”, und gib auch den anderen Sprachen, die du bereits beherrschst, einen erstklassigen Status. Wenn du in einer der zehn wichtigsten Sprachen arbeitest, benutze sie weiter und beobachte, wo sich deine zukünftige Hauptsprache entwickelt.

Werkzeuge haben eine unterschiedliche Geschwindigkeit. Einige bewegen sich schnell, andere kaum. Kubernetes hätte vor einem Jahrzehnt noch leere Blicke geerntet, während JUnit im 20. Open Source ist der Ort, an dem viele starke Ideen entstehen, also halte dort Ausschau nach dem, was kommen wird.

Der Ratschlag hat sich über die Jahre hinweg bewährt. Bleib mit den Füßen auf dem Boden, finde die Prinzipien, die sich bewährt haben, finde heraus, welche Fähigkeiten du hast, und wähle dann die neuen Teile aus, an denen es sich lohnt, festzuhalten. Es ist ein Gleichgewicht.

Diese Seite teilen