I picked up a term that I have not used in all my years of programming, and I love it:
“Drift”.
As in “Specificaiton Drift”: you write the spec at time _T_ , implement at _T+1_ , learn something new about the problem domain in the process and adjust your implementation (you know, normal programming) at _T+2_ , then at _T+3_ the spec doesn’t reflect the reality of the code base anymore.
But…