Was wird aus dem Softwareentwickler?

Softwareentwicklung ist mehr als Programmierung, diese alte und fast schon triviale Einsicht muss in Zeiten des Einsatzes von Künstlicher Intelligenz neu durchdacht werden. In jedem Schritt und bei jedem Aspekt der Softwareentwicklung kann KI nutzbringend eingesetzt werden.

Auf der grünen Wiese

Dabei ist zu beachten, dass professionelle Softwareentwicklung nur sehr selten auf der sprichwörtlichen „grünen Wiese“ stattfindet.

Wäre die Wiese völlig leer und würde es tatsächlich keine Verbindung zu irgendeinem anderen System geben, keine Randbedingungen, keine Voraussetzungen, dann könnte sich tatsächlich eine Person, die überhaupt keine Erfahrung und Kenntnisse in der Softwareentwicklung hat, daran machen, eine neue Software zu erstellen. Allerdings müsste auch sie zuerst ein paar Entscheidungen treffen – natürlich könnte sie das mit Unterstützung eines KI-Chatbots tun: Was für eine Software soll es sein, eine WebApp, eine mobile App, eine Anwendung auf einem PC? Auf welchen Plattformen soll sie funktionieren? Vor allem auch: welche KI soll mir die Sache nachher programmieren und wie rede ich mit ihr, damit sie das ordentlich tut?

Es ist nicht sicher, ob einem Laien überhaupt alle Fragen in den Sinn kämen, die am Besten schon vorab geklärt werden sollten, damit man nicht ein paar Wochen oder Monate später merkt, dass man doch viel Zeit investiert hat und schließlich in einer Sackgasse gelandet ist.

Aber wenn es sich um eine wirklich überschaubare, ziemlich kleine Anwendung handelt, ist es möglich, diese Entscheidungen mit Hilfe eines Chat-Bots zu treffen. Ich selbst habe neulich eine Timer-App erstellt, mit der man ein Zirkel-Training planen und durchführen kann, ohne eine einzige Zeile Code selbst zu schreiben. Die Entscheidung für die Programmierumgebung, die Architektur, die Sprache und die KI zum eigentlichen Programmieren hatte ich da schon getroffen, es waren die Werkzeuge, die ich ohnehin gerade genutzt habe.

Wenn die KI die erste Version erstellt hat, dann muss die getestet werden. Natürlich kann man das ohne Wissen über die Herangehensweise bei Softwaretests tun, und wenn es sich um ein ganz privates Vorhaben nur für den Hausgebrauch handelt, ist das auch legitim. Wer eine professionelle Lösung braucht, durch deren Einsatz womöglich auch Risiken entstehen, wenn Fehlfunktionen auftauchen, sollte den Testprozess aber systematisch organisieren.

Spätestens im Test tauchen nun viele kleine weitere Aufgaben für den KI-Programmierer auf, sei es, dass mir etwas in der Software nicht gefällt, dass ich neue Ideen für Erweiterungen bekomme oder dass eben tatsächlich Fehler auftauchen, entweder dadurch, dass ich eine Anforderung unpräzise beschrieben habe oder dadurch, dass die KI beim Programmieren eben wirklich etwas falsch gemacht hat. Wie verwaltet man diese Aufgaben? Wie hält man für sich fest, dass die Aufgabe abgearbeitet ist? Wie und wann testet man, ob alles korrekt umgesetzt wurde von unserem KI-Programmierer? Auch dafür gibt es Methoden, die professionelle Softwareentwickler beherrschen.

Wenn das Leben beginnt

Wer sich auf diese Weise eine App programmiert, der will sie eine Weile nutzen, vielleicht will er sie auch anderen zur Verfügung stellen, er will sie verteilen oder als Service auf einem Server zur Verfügung stellen. In der Nutzung entstehen neue Wünsche nach Erweiterungen oder neuen Funktionen. Nun stellt sich die Frage, wie man damit am Besten umgeht, In welcher Reihenfolge ergänzt man die neuen Module? Gibt es Konflikte? Wo und wie testet man das? Wann liefert man eine neue Version aus? Natürlich kann man jede einzelne Erweiterung durch den KI-Assistenten programmieren lassen, aber kann man das nach Belieben in einer beliebigen Reihenfolge tun? Auch zur Beantwortung dieser Fragen kann man den künstlichen Agenten nutzen, aber man muss diese Fragen stellen und man muss sie richtig formulieren. Dazu ist es nicht nur gut, wenn man das Handwerk der Softwareentwicklung gelernt hat, sondern auch, dass man weiß, was da eigentlich unter der Oberfläche passiert, wo die Daten bleiben und wie sie da hin gelangen, wie eine Software im Innern aufgebaut ist, damit man weiß, wo Probleme entstehen können, wenn Änderungen vorgenommen werden sollen.

Noch spannender ist der Einsatz von KI natürlich, wenn man nicht auf der „grünen Wiese“ beginnt, sondern mit einem seit Jahrzehnten gewachsenen, von Menschen entworfenen und immer weiter entwickelten Softwarelösung zu tun hat, die nicht nur selbst sehr komplex und vielschichtig ist, sondern in eine komplexe Architektur eingebettet und über Schnittstellen mit anderen Softwarelösungen verbunden ist. Das ist ja der Normalfall, und man kann diese Lösungen nur selten mal eben durch eine KI komplett neu erstellen lassen. Das wäre dann, trotz der hohen Geschwindigkeit der KI-Agenten, doch zu teuer.

Wer hier mit Hilfe von Künstlicher Intelligenz neue Anforderungen in den bestehenden Systemen umsetzen will, muss dafür sorgen, dass die KI das System versteht und dass sie sich an die Rahmenbedingungen der Softwarenentwicklung hält. Wobei das vielleicht nur so lange gilt, wie menschliche Entwickler noch parallel zu KI-Agenten an den Systemen arbeiten. Viele Richtlinien der Softwareentwicklung sind ja deshalb entstanden, weil man dafür sorgen musste, dass spätere Entwickler den Code ihrer Vorgänger lesen und verstehen können. Das hilft jetzt natürlich auch den KI-Agenten – aber müssen sie selbst auch Code schreiben, den Menschen verstehen? Das ist eine offene Frage. Für den Moment, in dem wir noch am Anfang der KI-basierten Softwareentwicklung stehen, kann das nicht schaden. Fürs Weitere müssen wir auf jeden Fall dafür sorgen, dass spätere KI-Agenten den Code ihrer Vorgänger verstehen und dafür dürfte es sinnvoll sein, dass dieser Code den Best Practices der bisherigen Softwareentwicklung entspricht.

Auch dafür gibt es schon KI-Assistenten, die Code nicht nur automatisch entsprechend strenger Richtlinien schreiben, sondern die auch Code-Reviews durchführen und darauf achten, dass guter Code entsteht. Wir müssen als Menschen, die die Zügel in der Hand behalten wollen, aber darauf achten, dass Richtlinien existieren, die den konkreten Bedingungen der IT-Architektur, des Softwareentwicklungsprozesses und der Softwareumgebungen am Besten entsprechen, und dass unsere KI-Assistenten diese auch nutzen und beachten – denn das ist, Stand heute, überhaupt keine Selbstverständlichkeit.

Der Softwareentwickler der Zukunft

Man sieht: der Softwareexperte verliert seine zentrale Stellung im Softwareentwicklungsprozess nicht. Er wird zukünftig keine Zeile Code mehr selbst schreiben, er wird die Details einer Programmiersprache und ihre neuesten raffinierten Konstrukte sowie die Namen und Parameter der Funktionen und Objekte der verwendeten Bibliotheken nicht mehr kennen müssen. Das ist auch eine große Chance, denn zukünftig wird man als Softwareentwickler quasi mit jedem Framework, mit jeder Entwicklungsumgebung und jeder Programmiersprache arbeiten können. genauer gesagt, man wird seine KI-Agenten damit arbeiten lassen können. Softwareexperten müssen nicht mehr genaue Kenner der Programmiersprachen sein, die in den Systemen verwendet werden. Bis auf Weiteres wird es noch gut sein, wenn sie sie noch lesen können, aber sie müssen sie nicht mehr schreiben können und schon gar nicht müssen sie ihren genauen Umfang kennen – das kann man den KI-Agenten überlassen.

Wichtiger wird statt dessen, dass die Menschen, die in den Softwarehäusern und den IT-Abteilungen arbeiten, die fachlichen Probleme verstehen, nicht nur, um sie den KI-Agenten zu erklären, diese werden schnell in der Lage sein, die Anforderungen selbst zu analysieren. Aber bewerten, ob diese Analyse dem entspricht, was die Anwender wollen, ob das Konzept zur Umsetzung in die Architektur und in die strategischen Ziele des Softwareeinsatzes passt, priorisieren, sodass der Entwicklungsprozess zur Entwicklung der fachlichen Prozesse passt, all das werden die Experten tun, die wirklich denken und verstehen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert