This weekend I indulged myself in a programming exercise with a difference. Usually, as I program, I keep on testing. So, for example, if I am making a web-based app, I will write a bit of code, load it in the browser and test it, fix it if needed, and then go forward
I do similar. This is what I am planning to do: If your needs are fixed, define them first. If they are flexible, then find out a suitable level and define them. Then write non-browser tests (as in module). Write small piece of code at a time. Run them against your code.