If I had to choose one sentence that I don’t like, it would be “We’ve always done it this way”. At least in a professional environment, when it’s used as an excuse, as why to not start a certain project.
How to address the “AI Trend”?
Maybe that’s the reason I enjoy working at BurdaForward: When there is a new technology, we’re not afraid to tackle it! In 2023 we had a whole learning week dedicated to the topic of Artificial Intelligence – a technology whose recent developments gained huge popularity. This “AI trend” could be seen as frightening, especially for a media & tech company:
Will we need editors who write news articles and developers anymore with all these new developments? At least the developers’ perspective will be answered in this article – or find my TL;DR summary of this question at the end of this article.
Instead of being afraid and/or ignoring the AI trends, BurdaForward gave us the opportunity to learn about AI in various training sessions by external companies, internal experts and even organized a hackathon where you could get a hands-on feeling.
Our Session about “AI Pair Programmers”
At said AI Week, I was lucky enough to end up on stage, together with my dear colleague and Lead developer Sascha Schenke.
We introduced the topic of AI Coding Assistants in our talk “AI boosted coding – empowering all skill levels”.
We started our presentation by introducing what coding buddies are available, what they are, which we tested. Of course, we presented the advantages that we expect when using AI Coding Assistants but made sure to highlight the dangers that come with them.
Let’s see how coding assistants describe themselves. GitHub Copilot, Tabnine, AWS CodeWhisperer, (Azure) OpenAI, they all gave similar answers:
But what was especially often asked by non-techies: “What problems do AI Coding Assistants even solve?”
That’s what I like about opening tech workshops to also non-technical crowds. You usually get many questions from different angles that make you think. So we were able to improve our trainings and introduced the “problem cloud” in later iterations.
“Problem Cloud” – or “What problems devs can solve with AI tools?”
Anytime during the session, whenever an idea comes up, our participants can note in which fields they expect AI Coding Assistants to support.
To name a few that we collected in the previous sessions:
- Help me understand code
- Help me avoid boring documentation
- Make me faster
- Help me with syntax
- Clean up my code
- Build me a quick framework to use as a base for my code
Pros & Cons of AI Coding Assistants
Advantages
“Developers can become more productive when using AI coding assistants.”
Sounds easy, right? Quickly generated code = more speed.
Unfortunately, productivity in development is not easy to measure. What is seen as productive? The lines of code written per time x? The quality of code written in time x (e.g. number x of bugs per y lines of code)? Number x of tickets that have been solved per sprint? Everything can be valid and eventually, every dev teams need to define what productivity means to them.
Still, it’s clear to us that more code can be generated in shorter time, some mistakes (by easy syntax errors for example) can be avoided and repetitive work can be reduced drastically!
To give an example: My colleague Sascha had to write a function about user deletion. Using the context from other functions (e.g. like user creation), the AI Coding Assistant was able to generate the function itself with only small adjustments by Sascha.
Also, we love AI Coding tools for what our developers usually do not enjoy just as much: Documentation!
A rather unexpected benefit: Learning programming languages! In our later iterations of the training that originally started as a presentation during our AI week, we had more and more non-techies join the course. They enjoyed how fast they could see results and were really motivated to learn more about coding. Unfortunately, no one became a professional developer in the 2-3 hours, even with AI. That is the sad(?) truth that Sascha and I distilled out of all our tests, literature, exchanges:
Disadvantages
This leads us to the disadvantages: Why can we not simply let AI go crazy and write all our applications in the future for us? No devs needed?
What we realized in our tests with various assistants: None was able to replace a human developer. The ability to see the big picture, how everything comes together, is of course still required. Also, what we realized is how easy it is to get issues with your code. Poorly optimized code, vulnerabilities that appeared. It was clear to us: No AI-generated code should be deployed without tests and a pair of (human) dev eyes having it checked.
Rebellious AI
What I really enjoyed were the “Outtakes” that we shared in the sessions that were encountered after CoPilot Chat was available on CLI:
Demo & Live Tests
After all that theoretical part, it was time to see everything in action: Sascha as a lead developer demo-ed how he uses AI coding tools in daily business and how he benefits from them. This demo could be subsumed with a 3-word sentence: “I hate documentation”. Sascha showed how AI Coding assistants accompanied him while refactoring an entire application by writing automatic commit-messages, by documenting and of course by providing him with code suggestions.
Eventually, we offered “Test PCs” and licenses for various AI Coding assistants to our participants so they could try those and compare them. Even participants that had never programmed before started coding! It was very interesting to see many creations come to life, especially in such a short time.
AI Boosted Coding goes to Italy – Some DIY Session Insights
Since 15 technical colleagues from our location in Bari registered for our training, we decided to turn the hybrid session into a fully on-site workshop in Italy. Let’s see what the Italian colleagues built in the DIY Session!
“The Weel”
As in all of our “AI Boosted Coding” sessions, we encouraged the teams in Bari to start their own project in the DIY session. For those, who wanted to be surprised with a topic, we had the “Wheel of Projects”.
Snake
One of these projects was the famous retro mobile game snake.
Our colleague Francesco showed off his team’s AI generated snake game (here shown in the Beta Version, where the snake kept losing its head). Thanks to the team’s expertise, the game could be perfectioned and it even had sound effects after the end of the DIY Session.
Mobile Tic, Tac, Toe
Why not use such a training to try new things? One of our DIY session teams launched Tic, Tac, Toe as a mobile app.
Conclusion
It was clear to everyone who tried the assistants, that even the best coding assistant couldn’t replace a real-life developer with their experience and knowledge.
But we can use it to get faster, get rid of annoying/repetitive work or documentation, reduce the number of simple bugs - as long as we keep testing and - where necessary - improving the results.