If you're relatively new to the agile/xp/software craftsmanship community, you get:
- As good an overview of test-driven development and simple design as you're likely to find anywhere.
- An introduction to people in your community who are probably themselves excellent software developers and who can support both your learning and your professional network.
If you're already experienced in TDD/BDD, Code Retreat is great for:
- Humbling you. It's a rigorous exercise, and a lot of its value is derived from the emphasis that no one take any shortcuts—it's great for identifying and tackling one's own bad habits.
- Its low-pressure environment. There is expressly no expectation that you "finish" with a working implementation. This frees you up to nurture or reclaim your own vision of what an "ideal" design is by focusing on perfecting just a small aspect of the problem.
- Pairing with extremely bright people on a challenging problem; because so few of the solutions are obvious, Code Retreat is actually great communication practice.
I'm a little skeptical about the format though.
You develop in 45 minute long cycles, and must delete your code at the end of the 45 minutes.
However, you are supposed to use test driven development.
I'm a little skeptical of TDD in general - I see advantages to the process, although suspect its oversold.
But TDD for a 45 minute development window? Does this really make any sense?
It seems to me that it'd end up more as a practice of writing tests quickly, rather than a practice of coding. Why do you need the agility that tests bring, in a 45 minute window?
I guess I'll find out on the 3rd!
Does anyone that's done this before, want to give me the benefit of their experience?
Because the goal is not to solve the problem.
The goal is to realize that many of your preconceptions of how you should write code ought to be bent, modified, or broken.
I participated in a code retreat less than a month ago (led by, of course, Corey)... I'd always thought I was pretty good at TDD and OO design. I like to think that I'm humble enough to know I wasn't an expert. But after the code retreat, I realized that I have much further to go than I thought.
AAA+++++ HIGHLY RECOMMEND!!!!
Uncle Bob[2] is, among many other things, the creator of fitnesse[3].
Interesting enough, he is a bit critical of the Software Craftmanship movement[4,5], which is sponsoring this code retreat.
[2] http://en.wikipedia.org/wiki/Uncle_Bob
[3] https://github.com/unclebob/fitnesse
[4] http://cleancoder.posterous.com/stub6-restoring-the-trust
[5] http://cleancoder.posterous.com/software-craftsmanship-thing...
During the break between cycles you can reflect on the solution you tried to write and hear how other pairs tried to solve the problem.
What I've found the most value in, is that you get to pair with 6-7 different programmers you've probably never met before - and thus you get to learn how other people approach the problem, you'll learn how your skills compare to those of others and you'll also learn a lot of little things, e.g. IDE shortcuts you didn't know of.
And you usually get to program in a language you might not be familiar with.
I've already attended two code retreats and it was very, very well worth it!
Those are common and very valid concerns. Over the past (nearly) 3 years, the format has really proven itself as a great way to focus on the design of your code and practice the process of writings tests.
Thanks for being open-minded about the idea; it is great to mix it with a bit of skepticism. :) Looking forward to hearing your thoughts after attending.
This one is "sold out" http://paris-globaldayofcoderetreat-autohome.eventbrite.com/
But, I think this one can still be attended http://coderetreat.ning.com/events/global-day-of-coderetreat...
Here's why: http://tooky.github.com/2010/03/17/why-i-think-you-should-go...