AI is fundamentally changing software development, but not in the way many people think. While tools can now accelerate code production, the core of great software has never been more human-centric. It still requires a deep understanding of engineering principles to build solutions that are test-driven, scalable, and genuinely useful to people. My recent weekend coding project proved this point perfectly.
As a technologist who values hands-on exploration, I've been experimenting with various AI assistants like Google Gemini and Amazon Q Developer. I've had great results with Amazon Q, especially for "spec-driven" or "vibe-driven" development, so I decided to give Google's similar tool, Gemini Code Assist Standard, a try. The verdict? I canceled the trial before the weekend was over.
The Experiment: A Simple Card Game
Both tools were incredibly easy to install in VS Code, which I appreciated since I didn't want to switch my entire development environment. I decided to build a simple web-based card game, starting with my go-to language, Ruby on Rails. Having used Gemini's core model to generate Rails starter templates before, I assumed Code Assist would handle this with ease. That assumption led to a weekend of frustration.
Time and again, Gemini Code Assist struggled to deliver on my prompts. It couldn't grasp the multi-file structure of a Rails application, often creating or referencing files in the wrong locations. It was a systematic failure to understand the context and make logical changes based on well-documented file structures. I tried switching to Python with Django and then to a simple, single-file JavaScript approach. In every scenario, Gemini Code Assist failed to produce a workable output. The tool simply couldn't get the core logic to run properly.
In the end, my weekend was spent fighting a tool instead of building a project.
The Success: Finding the Right Tool for the Job
Frustrated, I switched back to Amazon Q Developer. In less than three hours, I had the entire game built—core logic, a client-side front end, and even WebSockets for real-time session management. I was already moving on to adding new features. It was a powerful reminder that it's far easier to refine a working piece of code than it is to struggle with something that can't even get started.
So, what's the key takeaway? AI tools are not one-size-fits-all. While Gemini Code Assist may excel at specific tasks, like generating a single function, it fell flat when asked to handle a more complex, multi-file project. Amazon Q Developer, on the other hand, was well-equipped for the task at hand.
The future of software development with AI isn't about finding a single tool to do everything. It’s about cultivating three core skills:
- Situational Awareness: Understanding the specific context and current phase of your project.
- Tool Selection: Knowing which AI tools will accelerate your outputs and outcomes for that specific moment.
- Methodical Application: Having a consistent approach to applying those tools to create meaningful progress.
The ultimate lesson is this: AI has accelerated the production of code, but the art of good software engineering has never been more critical. It’s on us, the developers, to understand our craft and choose the right tools to solve the right problems.