How we use AI in the software development of our scanner solution
In this interview, our Software Lead, Bernhard, shares which AI tools we use for software development and what we use them for.
Question: When did you start working with Artificial Intelligence in software development?
Bernhard: This summer. I explored various tools, especially ChatGPT, and experimented with them. I then shared my discoveries with my colleagues Manuel and Dejan.
Which tools did you look into?
Besides ChatGPT, I also looked at Google’s Bard and Microsoft’s Github Copilot.
And what’s your verdict on these AI tools?
My favorite is ChatGPT. Bard seemed better-suited for text generation than for generating software code. However, I plan to look into it again – things evolve very quickly in this field.
And what about the Github Copilot by Microsoft you mentioned?
I tried it twice but didn’t notice any significant boost in production. I prefer ChatGPT because I decide what code and information to feed into the model. I felt that Copilot was too intrusive, deviating significantly from the usual auto-completion, disrupting my workflow.
So, do you primarily work with ChatGPT?
Yes, and the model is very helpful, and the results are often impressive. But I have to say: it’s important to be cautious. You can never rely on it 100%.
To me, ChatGPT is like a very intelligent, yet sometimes slow-witted junior developer. Someone you can entrust with simple, isolated tasks.
“To me, ChatGPT is like a very intelligent, yet sometimes slow-witted junior developer.”
Which version of ChatGPT do you use?
Both version 3.5 and 4. It’s interesting how differently they perform: Version 4 offers better results and is more accurate – but also a bit lazy.
Lazy? Really, in what way?
Yes, really! Sometimes, Version 4 takes shortcuts or only partially completes tasks, then acts as if you can figure out the rest on your own. It needs a small motivation boost through further inputs, i.e. prompts. (laughs)
ChatGPT 3.5, on the other hand, diligently completes tasks – but often starts hallucinating mid-way through and delivers incorrect results.
“What works incredibly well are regular expressions.”
What tasks do you leave to ChatGPT?
For instance, what works incredibly well are regular expressions. Only recently, I had a case where a customer needed a new regex for barcode recognition in the early morning.
What is this barcode recognition?
In our scanner solution autoscan, there are barcode rules that define what the application searches for first after scanning a certain code. It improves performance.
So, the customer needed a modification to these rules. Since my brain wasn’t fully booted up in the morning, unlike my PC, I told ChatGPT what the customer needed. In less than a minute, I had the new regex. Of course, I validated it afterwards, but it saved me several minutes.
What other tasks does ChatGPT help you with?
It’s great at scripts. If you don’t use them often, you might make syntax errors or forget certain nuances. Often, I just need a framework. For instance, I tell ChatGPT to write a PowerShell script that does this or that – and I refine the output.
Another thing that comes to mind: Refactoring – ChatGPT is really handy for that!
“Another thing that comes to mind: Refactoring.”
How does it work with refactoring?
There are times when the IDE’s automatic refactoring reaches its limits.
Recently, I told ChatGPT, “Look, we’re about to refactor something. Here’s some code and an example of what it should look like.” I then gave ChatGPT a lot of information about the problem, all in the same chat. I input the first items – and ChatGPT just did SOMEthing. I had to explain why that was incorrect, referring back to my information. This continued until it got it right. Then it was truly helpful – I just copied the lines in, and ChatGPT produced the correct output. The model even corrected a typo by itself.
The next day, I continued in the same chat, asking ChatGPT if it remembered yesterday’s task. It said “sure” – and promptly created something wrong. So, I reminded it of its own examples in the chat. Then it “remembered” and got it right.
That does sound like a forgetful junior developer!
Exactly, it’s like he went partying the previous night and forgot everything. (laughs)
But once he remembered, he was as helpful and intelligent as the day before.
What else, besides regex, small scripts, and refactoring?
Exploring new technologies is also great. We’re working on a new product named autosign, a solution for signing documents on a tablet. For the prototype, I chose the frameworks and asked ChatGPT if it knew certain libraries and how it would piece them together. The outcome didn’t work – but it was easier to start from there than from scratch!
“Another application for ChatGPT: Writing and expanding automated tests.”
Another application for ChatGPT: Writing and expanding automated tests. We give ChatGPT one of our tests as an example and ask for some extreme values for that test. The generated tests are often directly usable. High-level tests which test the interaction of an application’s many components also work well. It’s often enough to provide ChatGPT with another test as a template for it to create a special case – saving us a good 10 minutes of copying, correcting, and potential typos.
Beyond software development, do you use ChatGPT for texts? After all, autoscan is multilingual.
Right, we often translate texts for our scanner solution autoscan into different languages. We give ChatGPT examples of already translated terms as templates and try to check the results as thoroughly as possible.
And of course, our marketing uses ChatGPT for texts and posts on LinkedIn.
That’s right, but just to clarify, this interview is based on purely human input!
I’d be happy to confirm that if anyone asks! (laughs)
What do you think the future holds for AI in software development?
It’s hard to say in the short term because everything is changing incredibly fast – almost weekly. Even this interview will probably be outdated in a year.
In the medium term, I believe AI in various forms will become one of the most important tools in software development.
“So especially here, it’s about staying on top, experimenting, and learning.”
So especially here, it’s about staying on top, experimenting, and learning. In my opinion, AI won’t completely replace software developers for a long time. But those who can handle AI will replace those who can’t.
About Bernhard Reuberger
Bernhard is our Software Lead and Architect. He has been working on autoscan from the very beginning. His passion for high quality software development makes sure that autoscan is the most sophisticated, user-friendly and future-proof solution on the market.
autoscan is the mobile workplace for your warehouse. Just scan a barcode or QR code and enjoy your work!
autoscan uses an Android app for modern handheld scanners. It automates a variety of processes along the entire process chain in your warehouse ― from incoming goods to picking, inventory count and much more!
Plus: Our scanner solution seamlessly integrates into your ERP system, dealer management system (DMS) or warehouse management (WHM) system.