For me it was first time to facilitate this kind of event. Many thanks to organizers for providing hangout workshops about facilitating coderetreat event. This provided many helpful information
We followed a fairly standard format but we had only 5 sessions in total. We wanted to leave some time to participants to network and get to know each other doing brakes.
My first thought of theme of this coderetreat was Test-Driven development. But after seeing how good people are doing TDD and Pair programming after first few sessions we started to play with OO programming in last sessions.
Session 1 – Warm up with no constraints
Starting session to get to know the problem.
Session 2 – Ping pong pair programming with TDD
Session teaching pair programming and Test Driven Development rules. One additional constraint was not using plain arrays.
Session 3 – Mute pair programming with evil coder
Person being Evil coder was supposed to implement the code in a way the tester doesn’t expect.
Session 4 – Extreme OO.
3 lines of code per method
2 fields per class
3 methods per class
One dot per line
It turned up to be very difficult to follow those rules. But there were some insights that creating small classes and small methods made the code more readable and better designed.
Session 5 – Pick your own
In last session we voted for constraint. And “no if statements” was picked up. We have very interesting approaches to code without ifs and people have a lot of fun in this session.
One thing i could have done is ask user to write down one thing they wanted to learn before event. Then after last session write one most important thing they learned.
On Retrospection session we could compare this findings with others. I got this idea watching photos from other cites and i think its the best way to sum up whole day.
Interesting sessions in other locations
Some interesting sessions that other teams around the world were doing:
Inherit the code from the previous session (yes we did not delete our code). With mixed pairs (1 of the 2 knows of the old code base).
Zombie cells, which are cells that where alive, died, and then revived. Zombie Cells behave like Alive cells for now but we ought to know if they where ‘resurrected’
No return values
Abstract cartoon names for variables