The pre-AI debugging process was, from Gee's perspective, one of the most effective learning environments ever accidentally created. The developer conceived a function, wrote it, watched it fail, received a specific error message, hypothesized, tested, failed differently, consulted documentation, tried again, and eventually succeeded — hours or days later. In those hours or days, situated understanding accumulated that no shortcut could replicate. The developer came to feel how the function behaved, not just to know its specification. This embodied understanding developed through failure because failure is where expectation meets reality and loses — the moment when the model breaks and must be revised.
AI eliminates productive failure for a specific and significant class of work. The developer describes the function. Claude writes it. It works. There is no error message. There is no debugging session. There is no sequence of hypotheses and tests and failures that would have deposited layers of situated understanding. The output is correct. The learning cycle that would have been triggered by failure did not occur, because the failure did not occur. The practitioner learns something — about direction, about evaluation, about how to communicate with the tool — but she does not learn what implementation failure would have taught her about the domain itself.
The distinction between productive and unproductive friction is crucial. Much of what AI removes was never educational — dependency management, configuration boilerplate, the cognitive overhead of tasks that stretched nothing. But mixed into the unproductive friction were moments of genuine revelation: the debugging session that taught something unexpected about how systems interact, the build failure that forced an architectural reconceptualization. These moments were indistinguishable from the surrounding drudgery until they happened. AI removes both kinds indiscriminately, because the tool cannot distinguish between the four hours of tedium and the ten minutes of learning.
The cost of eliminated failure is not immediately visible. Output quality continues to look excellent. The practitioner appears competent. The gap between what the output demonstrates and what the practitioner actually understands emerges only under stress — when a novel situation arises that falls outside the AI's reliable range and the practitioner must rely on her own depth. At that moment, the layers that failure would have deposited are discovered to be missing, and the failure that follows is not productive failure but catastrophic failure.
Gee developed the concept through his analysis of video games in What Video Games Have to Teach Us About Learning and Literacy (2003), where he observed that well-designed games make failure informative, immediate, and low-cost. The player tries something, it doesn't work, feedback arrives instantly, the player adjusts and tries again. The pattern Gee identified had been described in different vocabularies by Manu Kapur (who coined the specific phrase "productive failure" in his 2008 educational research) and by learning scientists working in the Bjork laboratory at UCLA under the rubric of desirable difficulties.
Failure carries more information than success. Success confirms the existing model. Failure specifies the gap between model and reality.
Calibration matters. The difference between productive and destructive failure is whether the learner has the resources to extract useful information from it.
Immediate, specific, actionable feedback. These are the properties that distinguish productive failure environments from merely painful ones.
Embodied understanding requires iterated failure. The feel for a system that senior practitioners possess is the accumulated deposit of thousands of failure-feedback cycles.
AI removes failure indiscriminately. The tool cannot distinguish educational friction from unproductive drudgery, and removes both.