The Developers Who Can't Debug Without Copilot
My team ships code 40% faster. They also can't tell clients why it works. Here's what I think is happening.
I’ve been in tech long enough to see tools change how we work. IDEs, Stack Overflow, automated testing - each one made us faster. None of them made me worry about whether we were still thinking.
AI is different.
Last month, I sat through a sprint review that should’ve been routine. My team had crushed their goals. Five developers with good mix of experience, couple of folks with 2-3 years, rest are veterans - shipped features early. Velocity was up 40%. The demo was flawless.
Then the client asked a simple question: “Can you walk me through your implementation strategy? Why did you choose this approach?”
Silence.
The senior developer fumbled. The mid-level engineer opened their IDE like the answer might be hiding in the code. Nobody could articulate why the solution worked, just that it did.
After the call, I went back through the code. The comments were suspiciously polished. The optimization patterns looked textbook. I asked one of the developers about a specific refactoring choice.
“Oh, I just fed the review feedback into Claude and applied what it suggested.”
The code worked. Tests passed. Client was happy with the output.
But nobody from my team - not even the people with ten years of experience could explain the thinking behind what they’d built.
They’d outsourced the reasoning whereas they were supposed to outsource the typing.
This Isn’t About One Team
That sprint review was six weeks ago. Since then, I’ve been watching more carefully - not just developers, but across the whole delivery chain.
The pattern shows up everywhere.
Developers who can generate clean code but can’t debug without Copilot running. When I ask them to trace through a problem manually, they stare at the screen like I asked them to do long division without a calculator. The muscle for analytical thinking is atrophying. They’ve become managers of AI output, not engineers.
Business Analysts handing me requirements documents that look impressively thorough - detailed user stories, edge cases documented, acceptance criteria spelled out. But when I ask about a specific business rule buried in story #8, they pause. “Let me check my conversation history with ChatGPT.” They generated the requirements through prompts. They can’t defend the logic without going back to the source chat.
QA engineers with test coverage numbers that look better than ever. But last week, an edge case we’ve hit three times in production wasn’t caught - again. When I reviewed the test plan, it was AI-generated based on happy-path scenarios. The weird, “this shouldn’t happen but users will definitely try it” cases? Never considered. AI optimizes for obvious. QA’s job is to think adversarial.
This isn’t about people being lazy. It’s about an entire software development lifecycle where thinking has become optional.
The COVID Education Gap
There’s a pattern I can’t ignore: this problem is significantly worse among people who started their development or testing careers after 2020.
Not universally and there are exceptions. But the trend is clear enough that I’ve stopped thinking it’s coincidence.
Here’s what I think happened as per my understanding.
The COVID disruption broke something in technical education that we haven’t acknowledged yet.
When the world went remote in 2020, most educational institutions weren’t ready. Not because teachers weren’t good, but because the infrastructure wasn’t there. The pedagogy hadn’t caught up. Teaching someone to code isn’t like teaching them history - you can’t just put a lecture on Zoom and call it equivalent.
What got lost in that transition:
The debugging sessions at 11pm in the computer lab where you and three classmates stared at the same error until someone spotted the logic flaw. That collaborative struggle - where you talked through the problem, defended your assumptions, got challenged by peers - that’s where analytical thinking gets forged.
The in-person code reviews where a professor physically walked through your logic, line by line, asking “why did you do it this way?” You couldn’t hide behind working code. You had to articulate your reasoning.
The hallway conversations where you overheard seniors debugging something obscure and absorbed problem-solving patterns osmotically. The casual “oh, I hit that issue last semester, here’s what I learned” exchanges that don’t happen in asynchronous Slack channels.
The hands-on lab work where you actually broke things, dealt with real errors, and couldn’t just Google your way out because the professor was watching and wanted to see your thought process.
That entire layer of learning-by-struggling-together got flattened into “watch this video, submit your assignment, pass the automated tests.”
So a generation of developers graduated having learned coding syntax but not coding reasoning. They learned to make code work, but not how to think through why it works.
And then they entered the workforce right as AI coding assistants became ubiquitous.
AI became the holding hand they never had in school.
You prompt, get code, it works, you’re done. No need to think through the logic. No need to debug manually. No need to wrestle with why something broke.
I want to be clear: this isn’t their fault. They didn’t choose to have their education disrupted. They didn’t intentionally skip the foundational struggle. They’re doing what makes sense in the environment they entered.
But the result is the same: a cohort of technically capable people who never built the muscle for reasoning through problems without AI assistance.
And now, three or four years into their careers, that gap is becoming visible.
The senior developers on my team - the ones who learned to code in 2015, 2012, 2008 - they use AI too. Heavily. But when I ask them to explain their approach, they can. When Copilot is down, they’re annoyed but functional. When something breaks in production, they know how to trace it.
The post-2020 folks? Many of them are legitimately stuck without the tool. Not because they’re less smart. Because they never had to build the foundational skills that let you operate independently.
AI didn’t make them dependent. It arrived exactly when they needed scaffolding most - and became structural instead of temporary.
And here’s the uncomfortable part: I don’t know how to fix this at scale.
You can’t recreate four years of missed foundational struggle in a two-week bootcamp. You can’t retroactively give someone the experience of debugging for six hours straight until they finally understand pointers or recursion or state management.
What I’m trying with my team and this is still experimental - is creating artificial constraints:
“No AI for the first implementation” rules on critical features
Pairing junior developers with seniors for debugging sessions where AI is off
Code reviews that focus on “walk me through your thinking” rather than “does it pass tests”
Dedicated time for “struggle work” where the goal isn’t shipping, it’s understanding
It’s slow. It’s frustrating for people who’ve learned that fast prompting equals productivity. Some of them resist it.
But the alternative - a generation of engineers who can execute but can’t reason — that’s not sustainable.
Not for them. Not for the teams that depend on them. And not for an industry that needs people who can think, not just prompt.
Why This Is Different
Every previous tool made us faster at executing. AI is making us faster at not thinking.
Excel didn’t make you forget math. You still had to know what formula to use and why.
IDEs didn’t make you forget syntax. They just saved you from memorizing semicolons.
Stack Overflow didn’t make you forget how to reason. It gave you reference implementations you still had to adapt and understand.
But AI does the thinking. It doesn’t just help you execute your approach — it generates the approach. And when you can get a working solution in 30 seconds without understanding it, why would you spend 30 minutes struggling to figure it out yourself?
The incentives are broken. We’re optimizing for output without understanding.
And we’re calling it productivity.
The Training Data Paradox
Here’s what keeps me up at night.
Every AI coding assistant - GPT-4, Copilot, Claude, all of them - was trained on millions of hours of human developers doing the hard work:
Debugging weird edge cases
Finding creative solutions to problems nobody had solved before
Thinking through scenarios no one had considered
Making architectural choices and documenting why
That corpus of human reasoning is what made these tools useful.
But now developers are using AI to skip that exact thinking.
So where does the next generation of training data come from?
If BAs stop thinking through business scenarios and just prompt for requirements... If QAs stop hunting edge cases and just generate happy-path tests... If developers stop debugging and just ask AI to fix it...
We’re not just losing skills. We’re poisoning the well.
AI tuning AI has limits. The breakthroughs - the creative solutions, the “wait, what if we tried THIS” moments - those come from human brains wrestling with hard problems.
I do use AI for my work and I’m not anti-AI. I’m watching this daily. And what I’m seeing is a recursive collapse problem that nobody’s talking about.
If we outsource struggle, we don’t just make ourselves weaker. We make the next generation of AI weaker too.
What Actually Breaks
These aren’t theoretical concerns. I’ve seen what happens when teams lose the ability to think through their own systems.
Client trust evaporates when you can’t answer “why did you build it this way?” I’ve sat through enough awkward calls to know that “the AI suggested it” doesn’t inspire confidence.
Systems become fragile when nobody understands them. At 3am, when production is down and customers are losing money, you need engineers who can reason through the problem. Prompting ChatGPT doesn’t work when the problem is novel.
Junior developers never become senior if they skip the struggle that builds judgment. You don’t learn systems thinking by watching AI generate code. You learn it by making mistakes, debugging them, and understanding why they broke.
Entire organizations become dependent on tools they don’t control. What happens when the API goes down? When the model changes behaviour? When you need to do something the AI wasn’t trained for?
I’ve been in retail tech for twenty years. I’ve seen what happens when systems hit Black Friday traffic, edge cases nobody predicted, load patterns that break assumptions. That’s when you need people who can think, not just prompt.
What I’m Trying To Figure Out
I don’t have this solved. I’m wrestling with it alongside my team.
But here’s what I’m seeing work:
Use AI after you think, not instead of thinking. First pass without AI for critical features. Understand the problem, sketch the approach, identify the edge cases. Then use AI to help you execute faster. The thinking has to be yours.
Code reviews that require “why,” not just “what.” I don’t care if the code works. I want to know why you chose this approach. If the answer is “AI suggested it,” we’re not done.
Distinguish scaffolding work from thinking work. AI is phenomenal for boilerplate, refactoring, documentation, test generation — the grunt work. But for architecture decisions, debugging complex issues, thinking through business logic? That needs human brains engaged.
Create space for struggle. The uncomfortable moment when you don’t know the answer — that’s not wasted time. That’s where learning happens. Let people sit with problems before reaching for AI.
I use AI myself. Mostly as a first draft to save typing, then validate whether my thinking aligns with what it generated. The thinking comes first. The tool comes second.
That order matters more than people realize.
The Uncomfortable Question
I’ve been in tech long enough to see multiple generations of developers come up. The ones who learned in the Stack Overflow era. The ones who learned with GitHub Copilot from day one. The ones whose education got disrupted by COVID and graduated straight into an AI-assisted world.
Each cohort has different strengths. Each has gaps.
But this is the first time I’ve seen a gap in foundational reasoning - and it’s not because people are less capable. It’s because the circumstances of their education, combined with the timing of AI tool availability, created a perfect storm.
We’re moving faster than ever. Shipping more code. Completing more sprints. Hitting more deadlines.
But are we building anything we truly understand?
And when it breaks - and it will, because everything eventually breaks - who’s going to fix it?
I’ve been the developer writing the code, the BA gathering requirements, the tech lead managing the team, the architect designing the system. Every role that argues in the room, I’ve been in that chair.
And from every angle, I’m seeing the same thing: we’re training a generation of people who can execute but can’t reason. Who can generate but can’t debug. Who can optimize for velocity but not for understanding.
We can fix this. But not by banning AI. And not by expecting people to retroactively develop skills they never had a chance to build.
We fix it by being intentional about where AI helps and where it hinders. By creating space for struggle. By valuing understanding as much as we value velocity.
And by recognizing that the developers entering the workforce today didn’t choose this situation - but they’ll live with the consequences if we don’t address it.
Because the moment we stop wrestling with hard problems, stop hunting edge cases, stop asking “why” instead of just “does it work”...
We don’t just lose our skills.
We lose the ability to create what comes next.
And that’s not a productivity problem. That’s an existential one.
If you’ve seen this pattern in your team or if you’ve figured out how to use AI without losing the thinking muscle - I’d genuinely like to hear about it. I’m still working this out myself, and the best insights come from people in the trenches.
Drop a comment or reply. Let’s figure this out together.



This is such a fascinating perspective on how COVID created a technological education gap. I can see it for sure. We should always default to using our brains first. That is not a muscle we want to atrophy.
(P.S. I just found out about the term "friction-maxxing" today. I think you'll like it.)
https://substack.com/home/post/p-186675216