Exploratory Test-Driven Development
- Interestingly, I’m less interested in following some of the practices I would if writing a production application. This means I’m not worrying too much about refactoring or testing until I get the basics down. I don’t want to confuse the concerns of exploration and learning with verifying the system works (which I can barely get going right now). When I am more confident in my knowledge, I’ll definitely spend more time thinking about these things.
The subject was "Starting iPhone development" but I thought the observation above was worth commenting on.
Personally, if I can, I prefer to explore new technologies (or new features of existing ones) with test-driven development.
I find that this documents my learning so that I don't forget or mis-remember anything I have discovered.
I can even refactor that learning as I move to higher levels of grokking the subject matter.
I can even mark tests as Ignored while I am figuring out how the technology or feature supports (or doesn't support) something.
I can send my tests to someone more advanced than I am, and ask them to comment on how I am progressing.
Finally, I can share my tests with others who follow.
I think exploratory TDD is something more people should do more often.
What do you think?
