Artificial Intelligence in software development sparks debates hotter than Star Wars fans arguing about which trilogy is best: Original, Prequels, or Sequels. (we all know it’s the Original). Tools like GitHub Copilot and Cursor promise to make coding easier and faster, but there are folks out there that strongly disagree. Why?!
A little about my experience
Before we dive in, here’s where I’m coming from. I have been an engineer, developer, architect, tech enthusiast, nerd, etc. for almost 30 years. Over the last several years I’ve graduated to leadership roles supporting teams and managing products. I still stay very close to the code and find myself coding several times a week. I’m an old senior engineer… or an elder engineer?
Ok, back to the regularly scheduled program…
The big problems with AI coding
There are a lot of articles and posts out in the wild about the problems with AI coding assistants. I’m not going to address them all, I’m not here for AI apologetics. I’d like to discuss 3 items I’ve read about:
Are We Forgetting How to Code?
This is my biggest concern, for me and my teams. Relying on AI might dull our programming skills (great write up comparing to Tesla’s FSD) and even “skill erosion”. I have had to spend time rereading code to debug an issue because I wasn’t familiar the specific libraries it was using. I had to back up, ask ChatGPT more questions or go to the website and read documentation, shudder, to understand it more.
I look at these are learning opportunities! Without AI, I might not have learned about this library, or framework, etc. I enjoy getting in the weeds, learning about what’s going on, put my systems-thinking cap on, and wade through the mess. These opportunities are how I learn best, by doing, not by coding perfect code (if it’s perfect then what did I learn?).
Also, it would be fair to say I’ve forgotten more code I’ve written than I even know. Countless times have I looked at Git Blame shamefully. So having to reread code, debugging, re-learning libraries, is common. I also work with teams, so clearly I’m not writing all the code. (AI shines here too, more a little later)
AI Doesn’t Always “Get” Me.
This might be my biggest gripe with AI today. AI misses the nuances of your project. Like a junior dev, context isn’t always its strong suit. The coding agents are getting better, as they can search your repo, find some context, but it’s still incomplete. It seems to stop searching once its found enough context, and doesn’t seek out complete context of the code.
I’ve spent an hour “vibe coding” only for it to fix-then-break-then-fix-then-break (rinse and repeat) two similar but distinct use cases sharing the same functions (hooks in React) because it couldn’t understand both needed to work. Finally, I told it to copy the hook into two different files and let it modify them as needed for each use case. Grrr…
We need to guide the coding agents to what the right answer is, much like a junior developer. (If you’re a junior developer, there’s no shame in that, I too was one a very …very… long time ago. It takes experience to move on up. That experience is what makes you a good developer!) There are attempts to make AI a mid-level engineer, I haven’t seen that work great yet.
AI gives me bad code.
The assistant “knows everything” but doesn’t always do it right. I had this same issue: SQL injections ran free in my side app! As I was wrapping up my app, I had to explicitly ask it to harden my code. It identified all the issues. Nice that it was able to clean up its own mess, however if I didn’t think of it, I’d be at risk.
Another good example. As I was vibe coding, I wanted it to search a dynamo database, and return results to the user. After several iterations of trying to improve the performance (I tried many times because I was curious and wanted to give the agent a chance), I stopped the insanity and pivoted to using Open Search. It never suggested a different method of searching, it simply locked into the database I was using and trying to make that work.
As an elder engineer, I know there are better options, I can look at the problem and think about various other solutions. Working with my teams I can suggest different approaches without them asking me, cause I’ve seen a lot, and I want to save myself and my teammates from headaches. AI can suggest out of the box ideas too, when we ask it to. It doesn’t do it natively. It reads what you are asking and does it.
Set Realistic Expectations (AI Isn’t Magic)
Expecting AI to perform like a senior engineer isn’t fair. Take Devin, the “first AI software engineer,” which flopped by successfully completing only 15% of tasks (The Register). But that doesn’t mean AI is useless—it means we need to set realistic expectations. I mentioned it a few times: Think of AI assistants like junior developers. Jr devs are incredibly helpful, but they need mentoring and guidance. You wouldn’t give a code set to a junior dev without explaining what you want, where things are, set your expectations, check in periodically, expect issues, help correct them, and finally land at the solution.
Some realistic expectations
AI assistants/copilots have become essential tools for me, both in and out of work. AI helps me speed through tasks so I can better support my teams (and finally wrap up those side projects).
- Rapid Prototyping and Experiments: Quick proofs-of-concept without days or weeks invested, partnering with the business, we can show value and results quickly!
- Makes Old Code Understandable: Simplifies complex code and generates helpful docs like UML diagrams. I’ve forgotten what I’ve written, and with teams of engineers producing code, AI helps me get up to speed quickly.
- Code Reviews on Steroids: Catches problems I might overlook. Not the final word on PRs (pull requests) but the first step.
- Cuts Down Learning Curves: Makes learning new tech faster and less daunting. Asking questions like “I can do it like this in JavaScript, how can I do similar here?”. I also get to ask it as many dumb questions as I want without it questioning my expertise. :p
- Review AI code, early and often: Questionable code. When I have code pop in, I review it like a mini-PR. I ensure I agree with it in its entirety before I accept it.
- Side Projects Actually Get Done: Quickly turning ideas into working code, at home or work. I can move incredibly faster with AI. I don’t think vibe coding is entirely there yet, I’d say i’m 50/50 with it right now.
AI is Here—Stop Fighting It
AI coding tools have some gaps, quirks, oddities… Sure, but used thoughtfully, they’re powerful productivity boosters. Embrace them. Guide them. Stop resisting—get over yourself, AI is here to stay, and that’s a good thing.
What’s your take on AI coding assistants? Share your experiences in the comments below – I’d love to hear how you’re using (or not using) AI in your development workflow!
P.S…
If you hate AI assistants because you’re scared you’re going to lose your job, don’t be.
Eclipse, Firebase, and Stack Overflow haven’t replaced developers, and AI won’t make us obsolete either. Instead, it creates some space for what really matters in software development: creativity, innovation, understanding what the customer wants, and solving complex problems. You could even say that productivity doesn’t increase, but expectations do. We can now make prettier things in less time, or someone with little experience can quickly conjure up a prototype. But there isn’t one programmer less needed to write a program. (Programming with an AI copilot)
I couldn’t agree more. AI removes the mundane, boring, tedious work and allows us to be creative problem solvers and solution builders.
“AI isn’t taking your job, people using AI are.” (Embrace AI)
Subscribe to my blog and get posts like this in your inbox. Share your email below, or follow me on Threads, LinkedIn, or BlueSky.
