KI-Navigator #2: Wenn die KI das Ruder übernimmt

Sprachmodelle können Code erstellen und beim Programmieralltag unterstützen, aber die Intention und die Richtungsweisung sind uns Menschen vorbehalten.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen

(Bild: CoreDESIGN/Shutterstock)

Lesezeit: 5 Min.
Von
  • Dr. Benjamin Linnik

Willkommen zur zweiten Ausgabe der KI-Navigator-Kolumne der DOAG KI Community!

Kolumne KI-Navigator - Benjamin Linnik

Dr. Benjamin Linnik, promoviert in Kernphysik, vereint Expertise in Data Science, Software Engineering und IT-Beratung. Als Lead DevSecOps Engineer hat er umfassende Erfahrungen in Cloud-basierten datengetriebenen Projekten gesammelt. Sein Engagement zeigt sich auch in der Leitung des Data Science MeetUps in Nürnberg. Privat entspannt er gerne mit seiner Familie, umgeben von zwei Katzen und automatisiert gerne sein Smart-Home.

In der sich ständig wandelnden Landschaft der Softwareentwicklung komme ich mir vor wie ein Reisender, der sich an immer neue Gegebenheiten anpassen muss. Das war schon immer so. Ein prägnantes Beispiel für die Notwendigkeit solcher Anpassungen ist der berühmte Brief von Edgar Dijkstra aus dem Jahr 1968, der willkürliche Goto-Anweisungen kritisierte. Der Brief "Go To Statement Considered Harmful" führte damals zu einer Welle der Entrüstung, da sich viele Developer in ihrer Freiheit beschnitten fühlten. Doch letztlich leitete er einen entscheidenden Paradigmenwechsel ein: die Abkehr von willkürlichen Sprunganweisungen hin zu strukturierter Programmierung. Aktuelle Programmiersprachen favorisieren Schleifenstrukturen, if-Anweisungen und andere Kontrollstrukturen, die für klaren und wartungsfreundlicheren Code sorgen. Diese strukturierte Herangehensweise ist für die meisten Programmiererinnen und Programmierer zur Norm geworden, geprägt durch die Möglichkeiten und Beschränkungen, die moderne Sprachen und Compiler mit sich bringen.

Im Laufe der Zeit hat sich meine Rolle als Entwickler über das reine Programmieren hinaus zu einer DevSec/DataOps-Perspektive entwickelt. Als Teil dieser Bewegung betrachte ich Softwareentwicklung ganzheitlich, wobei Sicherheit, Betrieb und auch Daten gleichermaßen im Fokus stehen. Diese multifunktionale Rolle verlangt ein breites Verständnis – nicht nur für das Schreiben von Code, sondern auch für Systemarchitektur, Sicherheitsanforderungen und effizientes Datenmanagement. Die Anwendungsentwicklung ist ein kreativer Prozess, der das Potenzial hat, alle Facetten der Unternehmensstruktur zu berühren, braucht also viel Domänenwissen. Am meisten Freude bereitet es mir, wenn meine Software stabil in Produktion läuft und Mehrwert liefert. Doch eine Frage beschäftigt uns heute ganz besonders: Wie wird KI unseren Arbeitsalltag beim Programmieren verändern?

GitHub Copilot war in diesem Zusammenhang ein echtes Aha-Erlebnis. Dieses und andere LLM-basierten (Large Language Model) Tools unterstützen mich beim Schreiben von Docstrings, Formulieren von Exceptions, Erstellen von Übersetzungen sowie Unittests und helfen mir, Code besser zu strukturieren. LLMs können die Effizienz von Data-Engineering-Aufgaben durch geschicktes Prompt Engineering steigern und sogar bei komplexen Aufgaben wie der Integration von Daten aus SAP-Systemen helfen. Es ist, als hätte ich einen hilfreichen Kollegen zur Seite. Viele Unternehmen setzen bereits auf Pair Programming und das Vieraugenprinzip, und Copiloten passen perfekt in dieses Konzept. Bei der ersten Vorstellung hat GitHub Copilot als "AI Pair Programmer" bezeichnet.

Trotzdem sind viele Unternehmen skeptisch und äußern Bedenken bezüglich KI-Tools, insbesondere im Hinblick auf Sicherheit und Datenschutz. Ich sehe diese Werkzeuge dagegen als eine Bereicherung und nicht als Ersatz unserer Fähigkeiten. Beim Entwickeln einer Klasse für zeitbasiertes Caching musste ich beispielsweise Daten effizient speichern, gleichzeitig aber ihre Aktualität gewährleisten. Für die Balance zwischen schnellem Zugriff und regelmäßiger Aktualisierung war mein spezielles Domänenwissen gefragt – eine Nuance, die aktuelle KI-Systeme noch nicht meistern. Während die grundlegende Idee und das erforderliche Know-how von mir kamen, unterstützte mich das LLM dabei, den Code übersichtlich und verständlich zu strukturieren.

Call for Papers zur Konferenz KI Navigator

Am 20. und 21. November 2024 geht die KI Navigator in die zweite Runde. Die von DOAG, Heise Medien und de'ge'pol ausgerichtete Veranstaltung findet erneut im Nürnberg Convention Center Ost statt. KI Navigator ist die Konferenz zur Praxis der KI in den drei Bereichen IT, Wirtschaft und Gesellschaft. Sie widmet sich der konkreten Anwendung von künstlicher Intelligenz.

Bis zum 30. April suchen die Veranstalter im Call for Papers nach Vorträgen und kurzen Hands-on-Workshops für die Konferenz. Gesucht sind Beiträge in deutscher oder englischer Sprache zu den drei Themen-Streams KI & Technologie, KI & Gesellschaft sowie KI & Wirtschaft.

Wer sich einen Eindruck von der Konferenz verschaffen möchte, kann den Nachbericht zu KI Navigator 2023 lesen.

Qualität ist entscheidend, und zwar unabhängig davon, ob der Code von Menschen stammt oder eine KI ihn generiert hat. Copiloten zeigen ihren wahren Wert, indem sie mich nicht nur bei der Codeerstellung unterstützen, sondern auch beim Entwickeln von Tests. Bei der oben erwähnten Klasse mit Cache-Funktionalität schrieb ich beispielsweise einen Unittest, um zu prüfen, ob das Ergebnis bei kurz aufeinanderfolgenden Aufrufen gleich bleibt. Dankenswerterweise erweiterte der Copilot die Tests eigenständig um eine zusätzliche Überprüfung, ob nach Ablauf der Cache-Zeit wiederum ein neues Ergebnis zurückgegeben wird. Damit hatte ich zwei Unittests. LLMs können gut erahnen, was Entwicklerinnen oder Entwickler vorhaben, und ihnen auf die Weise viel Tipparbeit ersparen. Tests und Erfahrungswerte der menschlichen Programmierer sind jedoch unerlässlich, um die Qualität und Sinnhaftigkeit des Codes zu gewährleisten.

Ein guter Freund von mir, der Mathematiker ist, wird oft gefragt, ob er komplexe Rechenaufgaben mit besonders großen Zahlen im Kopf lösen kann – ein weit verbreitetes Missverständnis darüber, was Mathematiker machen. Ähnlich verhält es sich mit uns Softwareentwicklern: Wir sind nicht nur Programmierer, sondern Gestalter und Gestalterinnen von technischen Lösungen. Ich bin der Meinung, dass KI-Tools unsere Fähigkeiten erweitern und uns ermöglichen, uns auf das Wesentliche zu konzentrieren – die Entwicklung qualitativ hochwertiger Software, die Spaß macht, und die Freude an ihrem stabilen Betrieb.

So betrachte ich die KI nicht als Bedrohung, sondern als Chance, unser Handwerk weiterzuentwickeln. Wir sollten uns von der Angst vor Neuem nicht lähmen lassen, sondern diese aufregenden neuen Möglichkeiten nutzen, um das Beste aus unserer Arbeit und den derzeitigen Möglichkeiten herauszuholen. Vielleicht überlassen wir eines Tages das Schreiben von Code ganz den Maschinen, doch die Intention, die Idee und das Domänenwissen werden weiterhin von uns Menschen kommen. Noch …

(rme)