How AI fits into my development workflow
in Blog,
by Marnix Kok
last published on 27 August 2024
AI is supposed to revolutionise everything, it'll supposedly take our jobs very soon! When you hear those kinds of things, you must take it with a grain of salt. We've seen similar panic before, like all the carrier cavemen that were upset when some guy invented the wheel!
Despite the hype, ignoring AI entirely would be a mistake. That’s why I’ve been experimenting with integrating AI tools like JetBrains AI, ChatGPT, and GitHub Copilot into my daily workflows. After some hands-on experience, I’ve had some thoughts I would like to share with you.
Of course, I realise that today's AI is the least capable it will ever be, it’s only going to get better. So, I'll probably need to revisit these conclusions down the line.
Thinking About Code
One area where AI shines is in understanding and explaining code.
If you feed it a snippet, it can often tell you what it does with surprising accuracy. When it comes to suggesting improvements or alternative approaches (in plain language, not code), the models do a decent job too. This is particularly useful if you're working with code you didn’t write or haven’t touched in a while.
Writing Code
However, when it comes to actually generating code for specific, detailed problems, my experience has been mixed. Here are a few issues I’ve encountered:
One of my main irritations I have is with the quality of the AI-generated code. The AI often fails to follow clearly stated requirements, which leads to a frustrating cycle of back-and-forth adjustments in which time I could have just written the code myself.
Additionally, the code it produces rarely aligns with the existing patterns in my codebase, even when using tools like JetBrains AI that are supposed to understand the project’s context.
Another issue is the way AI integrates into my workflow. I prefer a clean, minimal IDE environment, but the constant code suggestions and pop-ups are more distracting than helpful. It’s like having someone try to finish your sentences when you’re still figuring out what you want to say, it disrupts my thought process rather than supporting it.
"Can you please get me the uhh.. "
- "ICE CREAM?! TURTLE!? BROOM?!"
Exploring New Domains with AI
Despite these challenges, AI has been a great help when I’m exploring a new knowledge domain. For example, while working on my site newsfeeds.co.nz, I wanted to implement sentiment analysis using Python on article content to categorise them as "Positive" or "Negative" content..
I know how to write code in Python, but my knowledge of related libraries and frameworks especially those tied to AI is limited.
In this process, I found that AI is great for rubber ducking, explaining your programming problems to it often unlocks helpful directions. This aspect has mostly replaced my need for trawling through Stack Overflow and Google search results.
Using ChatGPT, I was able to:
- Understand how to run models in Python.
- Explore options for running these models on a Raspberry Pi.
- Build a simple skeleton for sentiment analysis.
- Interface with my Pocketbase instance from Python.
In this case, AI was like a programming partner, helping me navigate unfamiliar territory and get up to speed quickly. I still had to tailor the output to fit my needs, but the AI provided a solid starting point and guidance that saved me hours of research.
This experience highlights AI’s current strength in my workflow: assisting in domains where I lack expertise. Moving forward, I plan to lean on AI more heavily in these situations and continue refining how it fits into my development process.