- First Law: You may not write production code until you have written a failing unit test.
- Second Law: You may not write more of a unit test than is sufficient to fail and not compiling is failing.
- Third Law: You may not write more production code than is sufficient to pass the currently failing unit test.
These laws are good because they force you to get each piece of code working (i.e. passing a test) before you can write the next piece of code.
For more information on TDD take a look at wikipedia.