I read this somewhere (can’t remember where, but I think it was DeCarlo) and it has served me well. These laws have certainly held true for every software project I have ever been on.
1. The requirements are going to change.
2. It is impossible to gather all the requirements at the beginning of a project.
3. There will always be more requirements than time and budget allow.