Humans can not accurately describe what they want out of a software system until it exists.
Humans can not accurately predict how long any software effort will take beyond four weeks. And after 2 weeks it is already dicey.
I'm sure there are exceptions that prove the rule, but I tend to agree with these statements.