I hold in my hand a 63-page requirements doc . . .
We spend a lot of time reworking the requirements doc to reflect the reality of the system that we’re actually building. We also spend a lot of time reworking all the docs that derive from the requirements doc — design docs, UI docs, test plans, etc. — to reflect the changes in the requirements doc.
Another way to think of this is that the project is driving the requirements, rather than the requirements driving the project.
So why did we create all these incredibly detailed documents in the first place?
We have a vast collection of well-documented ignorance . . .
Thus spoke The Programmer.