We're going to organize first code retreat in our company and we're wondering what to do with GUI. The problem is that most of our engineers aren't GUI guys. We usually write client-server applications without GUI, but it seems that GUI is something important for the "Game of Life". Is writing by falicitator a GUI library in a few languages (like C++, Java, Python) that may be used by non-GUI guys good idea or not? We don't want to focus on problems with GUI during the meeting. What's your experience? Is knowing some GUI library required for people who come?
I assume you have already had a look at http://coderetreat.org/facilitating/structure-of-a-coderetreat ?
To answer your question. Don't worry about the GUI - during the day people will be most likely focusing on other things (TDD, clean code etc.) and within 45 minutes it is highly unlikely they will have to deal with GUI unless they choose to.
It's much more important that people have unit testing framework setup.
yes, I've read http://coderetreat.org/facilitating/structure-of-a-coderetreat.
If I understand it correctly, people should prepare an environment for coding and UT in advance, shouldn't they?
For an easy start, make sure that the attendees of the coderetreat will have the following:
If you want, I can help you with some advice during a short skype/G+ call.
I generally tell people that the UI has some interesting parts, but in the time allotted, especially on a person's first couple coderetreats, there are more interesting problems deeper in the domain.
When I facilitate, I like to focus on OO concepts, as well as things like TDD and pairing. Since the goal is not to FINISH the problem, you can gain a lot by starting and focusing on the internals of the algorithm.
I agree with the other posters. Plan not to do any UI. There are plenty of interesting challenges for several 45 minute blocks. And when you switch and pair with other developers and see their approaches, there's lots to discuss. And then if you run some of the rounds with constraints (examples on this site), lots of things will come up.
You might get the most out of your CodeRetreat if you emphasize at the beginning and several times during the day that the point is specifically not to complete the game. Rather, it's to practice and learn.
The main goals of CodeRetreat, as I see them, are:
In my experience you will most likely never get as far as the GUI in the time given (and with every session you start from scratch, right?). Therefore I have never seen GUI as any consideration for a code retreat. Particularly if you run it with a group of people who are really passionate about improvements and well down into code.
Saying that there is one case when I would consider the GUI aspect. To make it more appealing for people who are new to both code retreat and coding itself. Where the ability to see some visual manifestation of the work you have done can be a extra motivational boost and a good encouragement to keep repeating the exercise.
However, I would only recommend doing this sparingly because as soon as you introduce GUI there is a big risk that people will focus on getting the problem solved and nice patterns displayed on the screen. This is not the goal of a code retreat. The goal is to focus on your craft, to hone your skills, to consider and re-evaluate how you approach writing code. The game of life is only an excuse to focus the exercises around something.
It's a little bit like an athlete's practice - if there is a finish line he will focus on getting there quickly. It's fine during a race but if he wants to improve his technique or stamina or agility then he doesn't put the finish line in place.
Thanks for all your comments. I really appreciate that. There very valuable to me. One more thing I wanted to ask is about the minimal and maximum number of people for one facilitator. What's your experience?
Hi again Norbert,
I've facilitated a couple coderetreats and been to several. I'd guess that 6-7 pairs per facilitator is a good number. That allows the facilitator 5-6 minutes on average per pair per round. Probably they will spend little or no time with some pairs in a round and more time with others. And that still leaves some time for the facilitator to handle overhead. I can't find it, but there was a post someplace about dividing up the facilitation and the facilities/hosting/logistics between 2 people. If you follow that pattern, a facilitator could handle a few more pairs. For me, 10 pairs is too much.
What experience do other people here have?