EA.

Jan 18, 20265 min read

The 5 Stages of Accepting AI

A reflective look at how experienced developers grapple with AI adoption, and what acceptance actually looks like in practice.

← Back to blog
Two people at a desk with a thought bubble showing bureaucracy and blame

Accepting AI has been one of the biggest shifts in software development I've experienced since my career began. We lived through COVID, watched entire companies go remote almost overnight, and somehow made it work. It wasn't painless, but in hindsight, the transition to remote work feels like a speed bump compared to the ongoing integration of AI into our daily workflows.

As this shift has unfolded, I've noticed a remarkably consistent pattern among the engineers I work with. Some adopted early. Others resisted longer. But most of us, myself included, passed through the same emotional progression. It looks an awful lot like the five stages of grief. Not grief over loss exactly, but grief over accepting a fundamental change to how we work.


1) Denial

Think back to 2022, when OpenAI released ChatGPT 3.5. For many people, that was the watershed moment. It was undeniably impressive, more capable than any chatbot we had seen before. It could reason, explain, and generate code. And it also made absurd mistakes. Some of us remember watching it confidently insist that the word “strawberry” only contained two R's.

It was the smartest dumb thing we'd ever seen.

I know I had thoughts like: This tool can't be useful. It will never replace us real software engineers. It hallucinates constantly. Anything it does, I can do better. Looking back now, those thoughts are funny. Not because I was replaced by AI, but because I was so clearly in denial. At the time, though, that denial quietly started to harden into frustration.

2) Anger

The next stage was irritation, plain and simple.

Why was everyone hyping this up? I tried using AI with almost no thought given to how it should actually fit into my workflow, and it wasted more time than it saved. It felt clumsy and unreliable. I couldn't understand why others saw so much potential in something that seemed to slow me down.

That frustration turned outward. I started blaming management and influencers for pushing it so aggressively. I told myself their excitement was probably cost driven. They just want to pinch pennies and stop paying experienced developers. Whether I liked it or not, though, leadership was moving forward. The train wasn't stopping. And that left me feeling both powerless and ready to bargain my way out of a future I didn't fully understand yet.

3) Bargaining

Engineers are problem solvers. We reason through constraints for a living. So it makes sense at this stage that I felt I could reason my way out of this situation.

I started telling myself I could see how AI might be useful for greenfield development. New projects. Simple prototypes. Isolated problems. But at my company, with a large, established, and complex codebase? There was no way it could understand our architecture well enough to be helpful.

This was classic bargaining. AI could help with trivial tasks like regex, SQL queries, or boilerplate, but it certainly couldn't replace us in the real work. The uncomfortable truth was that the idea of changing how I'd always coded felt deeply unsettling. And sitting with that discomfort wasn't something I wanted to do yet.

4) Depression

This stage crept in quietly. I felt like I hated this new world of AI driven development.

I realized I could still write code better than AI. But I was dramatically slower if I refused to use it. The gap wasn't about correctness. It was about speed. I felt like I was being held to a level of efficiency I couldn't realistically meet unless I “cheated” too. And if I didn't adapt, I knew I would fall behind.

That realization brought real anxiety. Not fear of being replaced, but fear of becoming less effective in a world that had already moved on. Ironically, this discomfort became the secret sauce I needed for acceptance. Change has always been part of software engineering, but this was one of the hardest shifts I'd faced in a long time.

5) Acceptance

Once I stopped resisting and started observing how others were using AI effectively, everything changed. My workflow evolved. My expectations adjusted. My outlook shifted faster than I expected. This new role, it's pretty cool.

I still have to remind myself that it's okay to give up parts of my old role. But the tradeoff is worth it. I no longer feel like a low level developer glued to an IDE. I feel more like an architect. I spend more time thinking about design, business impact, and the big picture. My planning is better. My unit tests are stronger. My execution is cleaner.

I'm still coding. AI isn't perfect, but now I dive into the details when it matters, instead of being trapped there by default. I'm not vibe coding. I'm vibe engineering.


Every major shift in engineering has felt like this. IDEs. Cloud computing. CI/CD. The grief was never about the tool itself. It was about letting go of a version of ourselves that felt safe and familiar.

AI is no different. It's just the latest example of a pattern we've seen before, and a big one at that. Whether we're ready to admit it or not, this will become our new normal. After working through these stages over the past year, I'm less concerned about what AI will change, and more confident in what it won't.