A Rant About Neglected AI Tooling and Developer Pride
I am currently hiring senior developers, and I assumed that AI would be used to “cheat” during coding tests. So, I made it part of the task that they should explain afterward how and for what they used AI.
I am a coder at heart, and I feel developers should use AI tooling at every opportunity. And I mean it quite literally. They should use every opportunity to determine how the current AI tooling performs on their problems.
However, I was astounded by the low rate of usage. I was assuming the centaurs were waiting around the next corner. And somehow, I always hear the same arguments.
Root Causes ¶
Ultimately, it’s a variation of one of the following causes.
Ignorance ¶
Many may have tried an early version and been dissatisfied with the results.
But AI tools are constantly evolving, so it’s essential to try them out continually. Most have a slight learning curve and are constantly changing.
Laziness ¶
Yes, understanding how to groove with AI takes a moment, but it pays off multiple times.
You can write and understand every program in an unknown language or framework with almost no prior knowledge and even get the best instructions on how to get it up and running, including debugging help.
Cumbersome ¶
This is the argument I accept the most.
Experienced coders, in particular, fall into this trap. They find it too cumbersome. The code that GitHub Copilot suggests doesn’t exactly match the next steps that are already in their heads.
In principle, this concerns both points made before. The tooling constantly evolves (for example, at one point, Copilot introduced Quick Chat to use it selectively), and you must understand how to groove with the AI.
Dear Developers, Please, Please, Jump Over Your Pride. ¶
Please don’t be so vain and place value on your code being hand-written. Think about how much time you spend writing code. It’s probably 10-30 %.
What about the rest of the time? Quite a lot of it is thinking - between typing, researching, and reading documentation. Also not to be underestimated is collaboration with other programmers and the people on your team responsible for usability and customer value.
Writing code is not the only thing that you are hired for.
Now, you can also turn my argument around and say - if I spend so little time writing code anyway, why should I do it with AI?
- AI allows you to try out other patterns.
I have a bit of code here that feels cumbersome to me. Give me 3 different ways I can refactor it, my goals are...
- AI takes the shitty work off your hands and gives you more time for actual thinking.
Replace my German texts with i18n strings and give me an JSON with English default translations under my component.
- You no longer have to read so much in the documentation:
Please write me an ESLint config that spits out a warning when the following module is imported.
- Suddenly, you can do things that otherwise seem like arcane knowledge from super experienced colleagues:
Write me a one-liner for this given Pipeline YAML with jq that does the following...
To repeat myself: AI can write code, but you are responsible for the more important thing - the context and solving problems.
Over time, you recognize more and more GPT-sized holes that you can quickly fill. This makes you more efficient at writing code, giving you more time to solve real problems.
Frameworks will change. The skills of how to groove with AI will not.
To avoid being replaced like last year’s JavaScript framework, you better learn AI. You also need to keep up with it, but this is more universally applicable knowledge than knowing exactly how to do things in, let’s say, NextJS 14—before everything changes with NextJS 15.
In the end, AI Won’t Replace Humans — But Humans With AI Will Replace Humans Without AI.
Having AI infuse the very thing that I love most — writing code — is the most magical experience I have had since using a computer for the first time at the age of six, magnified by its capabilities.
And I just don’t get it why so many developers resist embracing this transformative technology.