The first dojo – coding with Cucumber

I started my first dojo with being a bit late. I didn't have the slightest clue on where I should go or what I should do – always a nice beginning.

At the first coding dojo we split to the two groups right from the beginning, one student from the expert group on the theoretical subject being in each dojo group. As we started with the presentations, I (along with others) found out that it was quite difficult to follow a presentation when there was another one going on on the opposite side of the (smallish) room – especially when the subject was the same. Despite that, though, the introduction to ATDD was interesting and enlightening. I knew something about the subject also beforehand, so it's hard to estimate how much the introduction was of use for me – at least the pros and cons became much clearer than before.

The toolkit subject of the first coding dojo was Cucumber and Gherkin. This one was basically an on-hand introduction to the subject – no slides, just demonstration and good explanations about the subject. I had looked at Cucumber before and dreamed about some day maybe doing something real with it (especially after I realized there is a Drupal module that does something with Cucumber – cleverly named Drucumber). I liked the elegance and non-IT-people compatibility of the description files. It almost looks like you can just throw that at your client and s/he can instantly understand it.

Because of the elegance, I had been wondering how exactly Cucumber works to achieve that. During the demonstration it became clear enough – it led me to believe that Cucumber perhaps might be more than just a cool idea and a nice toy for demonstration cases isolated from the Real World™.

After the introduction, we finally got to work. One student (”driver”) on the laptop, one next to him/her (”copilot”). Originally the instructions were that these two students were also the only ones allowed to initiate discussions about the code – the only two exceptions were (at least if I understood correctly) asking about an action / line / whatever that someone didn't understand, or when either the driver or the copilot asked for help. This was a nice and on the other hand interesting idea, that proved to be somewhat challenging – some drivers were a bit shy and didn't tell the others what they were doing; on the other hand help was rarely asked and because of that some problems took longer to tackle than they maybe should've.

I have to say that when I first heard about the structure and especially about the way only one person in each group would be on the laptop at one time, and everyone else in the group would be watching that, I was a bit nervous. It sounded like a sure recipe for a disaster including lockups and ”oh my god, I dunno, how embarrassing, I want to sink below the table”... Well, the first coding dojo luckily quickly alluded that fear to some extent. When we started working, I realized that the amount of new things concerning Cucumber, its syntax and its logic was quite manageable. Actually, when I sat on the driver seat it was quite clear for me what I should be doing.

All in all, you could actually see the development in the students' understanding on Cucumber – we refactored the test cases multiple times, and each probably better than the last. In the end we actually had test cases that I thought were quite good, especially taking into account that we weren't really any kind of experts on Cucumber at the beginning.

The dojo ended with some evaluation, and the problems (ie. having two presentations at the same time in the same room) were identified. My feeling after the first dojo was, that this was quite probably the best course I've ever been to. Nice!


Add new comment

Filtered HTML

  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <h2> <h3> <h4> <h5> <h6> <h7> <p> <img>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.