Wie wir KI in der Softwareentwicklung unserer Scannerlösung nutzen
Unser Software Lead Bernhard erzählt im Interview, welche KI-Tools wir für die Softwareentwicklung nutzen und wofür wir sie einsetzen.
Frage: Wann hast du begonnen, dich mit Künstlicher Intelligenz in der Softwareentwicklung zu beschäftigen?
Bernhard: Das war im Sommer dieses Jahres. Ich habe mir verschiedene Tools, allen voran ChatGPT, angesehen und ausprobiert. Was ich dabei herausgefunden habe, habe ich dann meinen Kollegen Manuel und Dejan gezeigt.
Welche Tools hast du dir angesehen?
Neben ChatGPT auch Bard von Google und Github Copilot von Microsoft.
Und was ist dein Urteil über die verschiedenen KI-Tools?
Mein Favorit ist ChatGPT. Bard schien mir besser für die Textgenerierung als für die Erzeugung von Softwarecode zu sein. Wobei ich mir das aber immer wieder neu anschaue – in dem Bereich entwickelt sich alles sehr schnell.
Und der von dir erwähnte Github Copilot von Microsoft?
Den habe ich zweimal probiert und keinen merkbaren Produktionsschub erlebt. Mir ist ChatGPT auch deshalb lieber, weil ich entscheide, welchen Code und welche Infos ich dem Modell füttere. Ich hatte das Gefühl, dass mir Copilot zu sehr in die Tastatur greift und die bisherige, gewohnte Auto Completion ziemlich umschifft und damit meinen Arbeitsfluss stört.
Also arbeitest du hauptsächlich mit ChatGPT?
Genau und das Modell ist sehr hilfreich und die Ergebnisse sind oft beeindruckend. Wobei ich schon klar sagen muss: Bei der Verwendung heißt es aufzupassen. Du kannst dich niemals zu 100% darauf verlassen.
Für mich wirkt ChatGPT wie ein sehr intelligenter, aber zeitweise begriffsstutziger Junior-Entwickler. Jemand, dem man sehr gut einfache, abgekapselte Tasks geben kann.
„Für mich wirkt ChatGPT wie ein sehr intelligenter, aber zeitweise etwas begriffsstutziger Junior-Entwickler.“
Welche Version verwendest du von ChatGPT?
Sowohl die Version 3.5 wie auch 4. Es ist lustig, wie unterschiedlich sie agieren: Version 4 bietet bessere Ergebnisse und arbeitet genauer – ist aber auch etwas faul.
Faul? Echt, inwiefern?
Ja, tatsächlich, Version 4 nimmt manchmal Abkürzungen oder macht nur einen Teil der Aufgabe und meint dann tatsächlich, dass man sich den Rest selber so weiterdenken kann. Dann braucht es dann den einen oder anderen Motivationsschub durch bestimmte Eingaben, also Prompts. (lacht)
ChatGPT 3.5 hingegen macht alles Aufgaben sehr brav komplett – aber fängt gerne mittendrin zu halluzinieren an und liefert falsche Ergebnisse.
„Was zum Beispiel unglaublich gut funktioniert sind Regular Expressions.“
Welche Sachen überlässt du also nun ChatGPT?
Also, was zum Beispiel unglaublich gut funktioniert sind Regular Expressions. Erst vor kurzem hatte ich so einen Fall: In der Früh kam ein Supportfall von einem Kunden rein. Er brauchte eine neue Regex für die Barcode-Erkennung.
Was ist diese Barcode-Erkennung?
Wir haben in unserer Scanner-Lösung autoscan Barcode-Regeln, die vorgeben bei welcher Art von Barcodes was zuerst durchsucht werden soll. Das sorgt für eine bessere Performance.
Also, der Kunde brauchte eine Änderung dieser Regeln. Da mein Hirn in der Früh im Gegensatz zum PC noch nicht ganz hochgefahren war, habe ich in ChatGPT reingeschrieben, was der Kunde benötigt. In weniger als einer Minute hatte ich die neue Regex. Natürlich habe ich diese dann noch validiert. Trotzdem habe ich mir damit einige Minuten an Zeit gespart.
Bei welchen anderen Aufgaben hilft dir ChatGPT?
Was er sehr gut kann, sind Skripte. Wenn man die nicht oft braucht, macht man schon mal Syntaxfehler oder vergisst Feinheiten beim Schreiben. Und oft reicht mir da auch nur das Gerüst. Zum Beispiel sage ich ChatGPT, dass er eine PowerShell schreiben soll, die das oder jenes tut – und den Output nehme ich dann und verfeinere ihn.
Was mir noch einfällt: Refactoring – da ist ChatGPT auch praktisch!
„Was mir noch einfällt: Refactoring.“
Wie funktioniert es beim Refactoring?
Es gibt Situationen, in denen das automatische Refactoring der IDE an seine Grenzen stößt.
Eine Geschichte dazu: Vor kurzem gab ich ChatGPT ein: „Pass auf, wir werden jetzt gleich etwas refactorn. Ich gebe dir ein wenig Code und ein Beispiel, wie es danach aussehen soll.“ ChatGPT bekam dann eine Menge Infos zur Problemstellung von mir, alle im gleichen Chat-Verlauf. Dann habe ich die ersten Sachen reingegeben – und ChatGPT macht prompt irgendwas. Woraufhin ich ihm erklärte, dass das so nicht passt und nochmals auf meine Infos verwies. Das ging so lange, bis er es richtig machte. Und dann war es richtig hilfreich – ich kopierte einfach die Zeilen rein, ChatGPT spuckte das Richtige aus. Das Modell hat auch von sich aus einen Typo ausgebessert.
Am nächsten Tag habe ich den Faden wieder aufgenommen und wollte weitermachen. Im gleichen Chat-Verlauf habe ich ChatGPT gefragt, ob er sich an das Gestrige erinnern kann. Er meinte „klar“ – und hat gleich wieder irgendwas Falsches ausgeben. Also habe ich ChatGPT auf die eigenen Beispiele im Verlauf hingewiesen. Daraufhin konnte er sich wieder „erinnern“ und machte es richtig.
Das klingt echt nach schussligem Junior-Entwickler!
Stimmt, der war halt am Vortag Feiern und hat damit alles wieder vergessen. (lacht)
Als er sich dann aber wieder erinnern konnte, war er so hilfsbereit und intelligent wie am Vortag.
Gibt es noch etwas außer Regex, kleinen Skripten und Refactoring?
Was auch eine tolle Sache ist: Das Ausprobieren neuer Technologien. Wir arbeiten an einem neuen Produkt namens autosign, einer Lösung, mit der man am Tablet Dokumente unterschreiben kann. Für den Prototypen habe ich die Frameworks ausgesucht und ChatGPT gefragt, ob er die und die Libraries kennt und wie er dieses oder jenes zusammenstöpseln würde. Was rauskam, hat zwar nicht funktioniert – aber für mich war es trotzdem einfacher von dort zu starten als von Null!
„Noch ein Anwendungsfall für ChatGPT: Das Schreiben und Erweitern von automatisierten Tests.“
Noch ein Anwendungsfall für ChatGPT: Das Schreiben und Erweitern von automatisierten Tests. Da geben wir ChatGPT ein Beispiel von einem unserer Tests und bitten um ein paar Extremwerte zu diesem Test. Die ausgespuckten Tests konnten wir eins zu eins nehmen. Gut funktionieren auch High-Level-Tests, die das Zusammenspiel vieler Komponenten einer Applikation testen. Da genügt auch oft ein anderer Test als Vorlage und ChatGPT kann einen Spezialfall erstellen – das spart gut und gerne 10 Minuten, in denen man sonst selbst kopiert, ausgebessert und sich vielleicht vertippt hätte.
Abseits von der Software-Entwicklung, verwendet ihr ChatGPT auch für Texte? Immerhin ist autoscan mehrsprachig.
Richtig, wir übersetzen oft Texte für unsere Scanner-Lösung autoscan in unterschiedliche Sprachen. Auch dabei geben wir ChatGPT Beispiele von schon übersetzten Begriffen als Vorlage und versuchen, das Ergebnis so gut wie möglich gegenzuprüfen.
Und natürlich verwendet auch unser Marketing ChatGPT für Texte und Posts auf LinkedIn.
Das ist richtig, aber um es klarzustellen: Dieses Interview beruht auf rein menschlichem Input!
Das bestätige ich gerne, wenn mich jemand fragt! (lacht)
Was meinst du, wie wird es weitergehen mit der KI in der Softwareentwicklung?
Kurzfristig ist es schwer einzuschätzen, weil sich aktuell alles unglaublich schnell ändert – beinahe wöchentlich. Auch dieses Interview wird in einem Jahr wahrscheinlich schon wieder komplett überholt sein.
Mittelfristig bin ich davon überzeugt, dass KI in den verschiedensten Ausprägungen zu den wichtigsten Werkzeugen in der Softwareentwicklung gehören wird.
“Somit gilt hier ganz besonders: Dranbleiben, ausprobieren und lernen.“
Somit gilt hier ganz besonders: Dranbleiben, ausprobieren und lernen. Meiner Meinung nach wird KI zwar noch länger keine Softwareentwickler und -entwicklerinnen voll ersetzen. Aber: Jene, die mit KI umgehen können, werden die ersetzen, die das nicht können.
Über Bernhard Reuberger
Bernhard ist unser Software Lead und Architect. Er hat autoscan von Anfang an mitentwickelt. Seine Leidenschaft für hochwertige Softwareentwicklung sorgt dafür, dass autoscan die durchdachteste, benutzerfreundlichste und zukunftssicherste Lösung auf dem Markt ist.
Was ist autoscan?
autoscan ist der mobile Arbeitsplatz in Ihrem Lager. Scannen Sie Barcodes oder QR-Codes und erleichtern Sie Ihre Arbeit!
Mit autoscan nutzen Sie eine Android-App für moderne Handscanner. Sie automatisiert eine Vielzahl an Prozessen entlang der gesamten Prozesskette im Lager – von Wareneingang über Greifen bis zu Inventur und vielem mehr!
Und: autoscan integriert sich nahtlos in Ihr ERP-System, Dealer Management System (DMS) oder Warehouse Management (WHM) System.
Wenn Sie mehr erfahren möchten, kontaktieren Sie uns einfach! Sie erreichen uns via E-Mail unter hello@autoscan.app. Oder buchen Sie gleich schnell und einfach einen Termin online!