Two weeks back I participated in the Code Retreat Pittsburgh. It was part of a series of Code Retreats happening around the world, and a very unique event.
There were no presentations, other than a 15 minute introduction at the beginning by Corey Haines, who came out from Chicago to help facilitate the day. He gave a brief explanation of Conway's Game of Life, and then we paired up for the first of six 45 minute programming sessions. As was explained to us at the beginning, 45 minutes is not nearly enough time to finish Conway's Game of Life, so the focus of each session is on writing the best code you can, and learning something new. We were encouraged to try "TDD as if you meant it". At the end of each session we deleted all the code written in that session, talked a bit about what we had done, and paired up with a different programmer for the next session.
I learned a lot in the various sessions. It was interesting to learn new techniques from other programmers. I was also amazed at how different people took the same problem and approached it in different ways. I also learned things about myself, including the fact that I have a strong tendency to narrow in on a piece of code and lose sight of things like Test Driven Development or refactoring. My favorite part of the day was after the second to last session, when instead of deleting our code, we traded computers with the pair opposite us and tried to finish their code. We got very close to a working iteration, admittedly by throwing some caution to the wind, but didn't quite make it. It was very interesting jumping into another team's code with no explanation and being expected to finish it.
Overall, it was a great day, very educational, and lots of fun. I hope that another Code Retreat happens here soon! Many thanks to Jim for organizing, the folks at Vivisimo for hosting, Corey for running the show, and everyone who participated for making it a great experience.
