Write the Test First, Your Test Must Be Able to Fail
I'm pretty new to Test Driven Development and it's the first time I worked on an environment that adheres to its practices. Something I learned today is Write the Test first before you make any changes. This ensures that you know what you're writing your code against, and you make your solution fit the expected behavior, instead of the behavior trying to fit your solution.
I develop and maintain code. I didn't quite know that TDD can be used in the maintenance stage. I thought at first that it was only useful for new, ground up projects but I was wrong. It could also be, or maybe even more useful in maintenance projects. So again, why do you need to write the test first? Because your test must be able to fail if your designed solution is taken out, and pass if you put it back in.