AI coding assistants reduce your critical thinking.
In some ways from what I read AI coding assistants have not come very far. I remember being impressed with tools that would generate boiler-plate code for web pages to connect to databases decades ago. This was great, until you realised that you now had your database connection details, and navigation links replicated in 5,10, 20 pages. You now had a maintenance nightmare.
AI tools are less than advertised for now
This seems to be what is happening with the new AI coding tools. There is lots of duplicated code, and thus bloat. This just adds to the technical debt of the applications being written this way. These codebases will be harder to maintain.
More precisely a study by ThoughtWorks on their own use of GitHub Copilot found it improved delivery time by about 8%, but wasn’t applicable in all situations. Indeed, in some instances, people choose not to use it for various reasons: it was faster to ‘just do the work’, or precision was needed. Most importantly, they found that when the goal was unclear, then the AI didn’t help at all.
Keep your critical thinking and problem solving skills
Most importantly, for those learning to code, or early in their career, I like Rob Bowley’s ‘plea for junior developers’. He notes that it seems to dull people’s critical thinking skills. If the AI does the thinking, then how do you stand out from all of the others, who also let the AI do the thinking?
This is my main reason for not using any AI tools yet. I want to be in charge of what my code is doing. I want to know how the code works, and why it is doing what it does. It is never about the speed of coding, it is about the learning that happens as you code. This is part of the thinking that happens as you code too.
Why would I want to give up that thinking and learning? That’s part of what makes my code clear to me for later maintenance, and for realising where I can make improvements too. Lots of my code of late has been one spike for research after another, as mentioned by Thought Works, but I still think that I’ll steer clear of the AI tools a bit longer for now.
This post is part of a project pulling together my materials and ideas about Teaching Team Collaboration: the Human-Side of Software Development for software development to students.
If you’d like to be notified of future posts, then please sign up for more using the adjacent form. When you sign up, then I’ll send you a free copy of the collaboration rules as a PDF from the book. You can also follow me on LinkedIn
The ideas above are from my book 101+ Ideas to Improve Team Collaboration, which covers all of these little things that students can do to improve their collaboration. Also available via Kindle.