We can learn a lot from doing the same thing again attentively.
Why do I do the same thing again? Because I can learn a lot more. If you have a second chance of doing the same thing, you have the chance to do it better than before. Moreover, you can see your first experience somewhat objectively out of the "tunnel." You know why you didn't do it well or do it well that time, and how you can do it better next time. You can get the power of solving all the similar problems of the kind.
One of the key point I learned from my teaching experiences was "the same problem differently approached several times". One of my recent seminar went on like this:
Every student in the class has solved the same problem at least three times and watched others' process of solving it several times when the class ends. (I don't say which one is "absolutely right" or best. I encourage them to evaluate and compare themselves. I let them experience the quality of their own design - as I later modify the problem requirement, for example.)
A friend of mine told his friend about this. And he tried programming a problem about 7 times in a week. He had never known why OOP is good though he'd been programming in one of the most popular OOP languages for years; he'd been programming in seemingly-OOP-but-actually-procedural-way. And he's now a different person after just a week. His code is now different. It looks something like a good SmalltalkLanguage code. He'd done procedural-with-OO-syntax programming for years but just one week of doing over changed his way of programming. I suspect this wouldn't have happened if he'd worked on seven different problems.
On doing the same thing over and over again:
I, as a teacher too, learn a lot from doing the same thing again. Though I say doing "the same thing again", what I actually experience is very different each time, no matter how many times I redo it. Actually, I learn more as I do it again more.
Try solving a problem for ten times, attentively. Your solution might differ slightly each time. You might learn something each time though you are doing it over and over. After ten times of doing it again, you might experience a very zen-like enlightenment, or at least a whole lot of learning, as I did.
I believe that KentBeck has done the Money example more than a dozen of times and he's learned quite a lot from it.
-- JuneKim