It "feels" wrong

AMMAR MAHFOUD

24, Jan 2026 • 5 min read

Featured image for article

AI has fundamentally changed how we write software. That statement is no longer controversial, debated, or speculative. It is simply the environment we operate in now.

A developer can describe a problem in broad terms, press enter, and receive a complete solution. Functions are laid out, edge cases are handled, comments explain intent, and most importantly, the code works. It compiles, it runs, and it often passes tests. On paper, the task is done.

And yet, many of us hesitate to ship it.

We stare at the code longer than expected. Not because something is broken, but because something feels off. The solution is technically correct, but it is not how we would have done it. The issue is no longer about errors or bugs. It is about structure, intent, and alignment. Ironically, this often leads us to spend more time adjusting, reshaping, and “optimizing” the AI-generated solution than it would have taken to write it ourselves.

This is not a temporary annoyance. It is a defining tension of software development in the age of AI.

New Kind of Problems

In the past, problems were easier to categorize. Code failed to compile, produced incorrect output, performed poorly, or crashed under edge cases. These were concrete failures with clear fixes. AI-generated code often avoids these traditional issues entirely.

Instead, it introduces a different category of problem, one that is harder to point at and harder to justify. The abstractions feel slightly wrong. Responsibilities are blurred. Naming does not reflect the domain. The architecture is generic where the system itself is deeply specific. Nothing is objectively broken, yet everything feels misaligned.

This happens because software development has never been just about producing correct output. Code is not merely an instruction set for machines. It is a communication medium between humans across time. When we write software, we encode intent, assumptions, trade-offs, and expectations for future change. We leave behind a trail of reasoning that explains not only what the system does, but why it does it this way.

AI skips that trail.

It jumps directly from problem description to solution, usually selecting the most statistically common pattern, the safest abstraction, or the least opinionated structure. This makes the code useful, but also foreign. You are reading something that works, but does not think the way you think. The mental model behind it does not match the mental model of the system you are building.

“Your Way” Is Not Just Ego

At this point, an uncomfortable question naturally arises. Is this discomfort simply an ego problem? Are developers too attached to their own style, mistaking preference for correctness?

Partially, perhaps. But dismissing it entirely as ego misses something important. A developer’s “personal way” of doing things is rarely arbitrary. It is shaped by systems that have failed in production, by bugs chased under pressure, by trade-offs learned the hard way, and by constraints imposed by real products, teams, and deadlines. What looks like preference is often condensed judgment.

AI does not carry that context. It does not know which parts of the system are expected to change frequently and which must remain stable. It does not know which abstractions are intentionally imperfect because they reduce risk elsewhere. It does not know which shortcuts are acceptable in this specific domain and which would quietly accumulate technical debt.

So developers adjust the code. They simplify it. They restructure it. Not to make it prettier, but to make it true to the system it lives in. The goal is alignment, not aesthetics.

Will This Ever Stop?

This leads to the larger question: for how long will this friction exist?

The uncomfortable answer is that it will remain an issue for as long as software remains a human system.

AI will continue to improve. It will better follow conventions, better mirror popular architectures, and better adapt to common frameworks. But software is not just a collection of patterns. It is intent, context, and consequence intertwined. As long as systems evolve over time, requirements remain incomplete or contradictory, and trade-offs depend on business reality rather than technical purity, the personal way of doing things will matter.

This is where the real shift in the role of the developer is happening. The value is moving away from the ability to write code and toward the ability to judge it. The question is no longer whether a solution works, but whether it should exist in this form. The work becomes less about producing and more about shaping, less about implementation and more about authorship.

Seen through this lens, the time spent “optimizing” AI-generated code is not wasted effort. It is the effort. It is the act of aligning a generic solution with a specific reality.

When something breaks in production, no one will ask what the AI intended. They will ask why the system was designed this way. That answer still belongs to the developer.

In the age of AI, working code has become cheap. Understanding has not.

And that personal way of doing things, shaped by experience, context, and judgment, is not a weakness to be optimized away. It is the difference between software that merely runs and software that survives.


Author

AMMAR MAHFOUD

Proud Software Engineer | Magic Maker | Tech Content Creator

ammar.exceed@gmail.com

RELATED ARTICLES

Featured post thumbnail
AI Development

Software As A "T-Shirt"

In the current wave of software production, AI-guided methods promise speed, scale, and the seductive idea of near-zero marginal cost. The result, many observers note, resembles the output of a budget T-shirt factory tucked away in a developing region where labor is cheap and quality control is an afterthought. This...

31, Jan 2026 • 5 min read READ MORE →
Featured post thumbnail
AI

Cyclical Exuberance

In Irrational Exuberance, Nobel prize winner Robert Shiller chronicled how markets fall in love with their own stories. Prices climb not on fundamentals but on faith, the collective conviction that the future will be brighter simply because everyone believes it will be. For Shiller, this was not just a technical...

02, Nov 2025 • 6 min read READ MORE →
Featured post thumbnail
AI Development

Keep it "Boring"

There’s a quiet but growing unease among developers who use AI tools to help them write code. It’s not about whether AI is useful, it absolutely is. It’s about something deeper, something that most discussions skip over: consistency.In software development, consistency is sacred. It’s what separates a reliable system from...

20, Oct 2025 • 4 min read READ MORE →

STAY UPDATED

Subscribe to receive new articles, tips, and insights directly to your inbox.