You finished the sprint. You shipped the feature. Product looks at it and says: "That's not what we asked for."
You pull up the ticket. You read the spec. You're right — technically. But somewhere between the spec and the code, the feature mutated. A field got renamed. An edge case got "simplified." A business rule got reinterpreted because the original wording was ambiguous.
This is spec drift. And it's eating your team alive.
What Spec Drift Actually Is
Spec drift is the gradual divergence between what was specified and what gets built. It's not a bug — bugs are violations of intent. Spec drift is a quiet mutation of intent itself.
It happens because: