So Day 1 of my agile metamorphosis has passed, and I can pretty much sum it up by saying "Boy, that makes you think."
The major hurdle to me was overcomming that nagging thought of “This is stupid--I could be done by now if I did it the other way.” And that thought, maybe more than any other, may be the dividing line between improving oneself and staying opportunistic.
It's very tricky to write tests around code that doesn't exist. I had to outline class structures carefully, and create a skeleton with properties I thought I needed. As I planned the tests, I did find myself adding or changing a couple properties--a habit I hope to break as I get better at planning.
In his webcast Thursday, Jim Newkirk said he likes to separate programming tasks into what he can complete in 4-8 hours, and spend as much time writing and running tests. That's about how these things seem to go--as much time doing one as the other. At first blush it looks like you're doubling the amount of time it takes to do something (and at this stage in my learning, that's about the case), but it becomes apparent that this deliberate, thoughtful progression will actually speed up the process.
link to Jim's on demand webcast: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032256315&Culture=en-US