Last week was my fourth week at 8th Light and much of the week was spent working on the Minimax algorithm in Ruby for my Tic-Tac-Toe app. I’m still working on it, but at the end of the day last Thursday I finally made a solid step forward and I’m looking forward to finishing it up this week.

I’m almost embarrassed at what it finally took to make any headway, but it’s obviously a valuable lesson I need to keep learning: keep it simple. I had spent a day-and-a-half writing out test-code, trying to imagine the whole concept of recursively playing and ranking hundreds of thousands of possible games… but nobody climbs a hill by thinking about how to jump to the top and then jumping, you climb by taking one step at a time. It was only after I finally decided to play just one round of possible moves that I started to build the momentum I needed to take on the rest of the task.

Fortunately, that day-and-a-half of thinking and writing out code didn’t feel like a waste. When I took a break from Minimax and decided to tackle one of my other user stories that also involved recursion it went much quicker than I’d estimated and helped to clean up a lot of code and tests. A friend also asked me for help on a recursion problem and I was able to think through the solution pretty quickly without feeling like I was tying my brain in knots.

On Friday Mike and I had my one month retro and I did the prime factors kata for him. The kata went pretty smoothly- I just need to make a few small adjustments- and during the retro we agreed that I’ve made some solid progress and we can see it in my code and in my tests. However, I still think that I can pick up the pace so my challenge to myself this month will be to continue to take one step at a time, but to start taking them a little quicker.