Ruby Randori

TL;DR: The Ruby Randori was a success! Thanks guys! See you next time!

We just had our first "Ruby Randori" and man: it was fun! I think we can regard the experiment as successful and we're definitely doing it again! Thanks everyone for your attention! If you missed this one: no problem, come next time!

Here's a short overview what we did: After a short introduction by yours truly on what Conway's Game of Life is, and what the idea of the evening was, we discussed a while on how to implement it. There were two people that were unfamiliar with RSpec, so we gave a short introduction on that too. It was interesting to see these discussions develop. In general, developers think too far ahead, and some were solving problems in their heads way before they were even an issue. Remembering these same discussion from the Code Retreat, Arie and asked a few simple questions to make it a bit more interesting. Do you really need to know the neighboring cells? Do you really need to know the coordinates? Does a cell really need to have a state?

But after a while we were hacking away. Now we were pair programming. One person was writing specs, and the others was writing code. It became a game: the one writing the specs was really enjoying making the other write the code they just tested, and the other tried to dodge the implementation as long as he could by making simple methods. Still, the moment came when everybody realized: we need to refactor! We ended up with a really clean (stateless) implementation of a cell and a bunch of succinct and readable specs.

I really think we've all learnt something tonight. I saw a flicker in everyones eyes as they realized something they hadn't realize before, whether it was how to do BDD (and how a tool like RSpec can help you guide your thoughts and design decisions) or how you can use subclassing for separating out logic and creating classes that have only a single responsibility.

As for a next Randori: I think we're going to focus more on the coding and less on the discussion. For a short evening it's better to have a small, well marked, problem domain. There are countless ways of solving even the most simple problems, so the discussion on our approach can last forever. It is a worthwhile discussion, but it needs more time. We might even use Rails and Cucumber in the future.

The next Rotterdam.rb will be in januari. I'm not quite sure what we'll be doing. If you have something interesting to say, or some good suggestions, please share your thoughts :)

Cheers! See you at the next meeting!

Iain 

(download)

Nov. 22nd: Rotterdam.rb Ruby Randori

Hi guys!

Coming Monday, November 22nd, at 6 PM, there will be another Rotterdam.rb. It's at Finalist IT Group again, and pizza, beer and other drinks will be free once again. This time, we're doing an experiment: The Ruby Randori. Let me explain:

The Randori is a form of exercise in martial arts where one person stands in the middle and defends himself against multiple enemies attacking him simultaneously. A "Code Randori" isn't that violent though. There is one pair programming and the others ask questions and give feedback. After a few minutes, people rotate, giving everyone a chance to write some code. Hopefully, this will be an educational experience for everyone!

Why?

At the last Ruby And Rails conference in Amsterdam, Corey Haines spoke about practicing your skills as a developer. He made a compelling argument and backed it up with his "Code Retreat" on saturday. Inspired by his talk, we want to do something like this too. We're not going for the Code Retreat format, because that requires more time than we have in one evening.

The goal is not to show of your Ruby skillz, but to learn and get challenged on what you know and do. When you program at work, you're always forced to make compromises in order to make the deadline. At the Randori, we don't have a deadline, so we can focus on creating "perfect" code. This means pair programming and TDD/BDD too. And you know what they say: "Practice makes perfect".

We think there is something for programmers of all levels here. If you're not an expert yet, this is the time to see other people work and ask them questions. If you consider yourself an expert already, this is the time to get your beliefs about programming and old habits questioned. We're going to work on a relatively simple problem (probably something like Conway's Game of Life), so anyone can chime in.

Remember, this is just an experiment for now. So we'll be asking you for feedback and suggestions. But regardless of whether the Randori is a success, it's going to be an enjoyable evening, with lot's of interesting discussions. We hope to see you all there! So, tweet it, blog it and spread the word!

If you haven't been to a Rotterdam.rb meeting before, you're more than welcome! The Finalist office is located in the "Groothandels Gebouw", right next to Rotterdam Central Station. Take the main entrance (Entrance A) and take the elevator to the 4th floor. You'll see a big {F} next to the stairs. Just knock on the window :)