Ever since I adopted test driven development, I have noticed a subtle shift in my development patterns.
Before TDD, I used to make a lot of effort to get into a "code head", a place where the code would just flow. To get there, I would eliminate all distractions and think about nothing but the code. Any lengthy interruption would set me back by an hour or two, because I needed to remember everything.
Now, I don't bother to remember anything. I maintain a to-do list of tests that I need to write, and I cycle continuously through "write test --> write code --> check-in". If I forget something, the tests tell me immediately.
This has meant a lot to my productivity as I get interrupted a lot. ;-)
2/12/05 - Updated wording.