Monday Memo!
When writing code, you should comment it regularly, particularly functions and any lines whose meaning isn't obvious. That way your code can be understood later on and doesn't become write-only.
Good requirements help here. Also requirements should be the basis of your test cases.
Correct, and if you're starting a project from scratch, then you can establish good requirements by identifying the problem and determining constraints and actions a user might take.