Tim Bray –Build One To Throw Away:
"Managers, good managers, want a plan; they want to lock in design constraints so that work can be dealt out and progress tracked and promises kept. Programmers, good programmers, know that they’re not smart enough to get the core design choices right until they’ve built something that works.
The various techniques and disciplines gathered around the banner of “agile” are on balance more honest at facing up to this unavoidable tension. But there’s still lots more work to be done.
And the most important thing is, we all have to remind ourselves, all the time, that we’re not smart enough to get anything important right the first time."