Sergio and the sigil

Trying out a Randori

Posted by Sergio on 2008-12-08

Tonight's meeting of the Software Craftsmanship Group was led by Uncle Bob Martin.

This time around we tried a Randori-style coding dojo. The task was to build a clock and, although we fell short of the original goal of having a GUI, there was plenty to be learned in this process.

I felt it was an interesting way to learn about your own performance under a moderate amount of pressure. More importantly, at least for me, was getting exposure to BDD and pairing with other developers that are a few step ahead of me on that particular road.

Once again, because I'm not a Ruby developer by day, I felt a little bit uneasy taking my turn and going up there to code a little bit. But I would not pass the experience, otherwise why even bother showing up for the event at all.

The whole thing was captured on tape. Hopefully the video will be made available and I'll come back and link to it here.

UPDATE: Doug has put some videos up.


Software Craftsmanship - Coding Dojo - Kata


Software Craftsmanship - Coding Dojo - Randori

Video - The Langston's Ant

Posted by Sergio on 2008-11-14

Remember one recent post when I talked about the Code Kata that I attended? Well, Micah prepared a screencast version of that Kata and that video is now available.

It's a short screencast (14') and even if Ruby is not your cup of tea, it's interesting to watch BDD being practiced.


Langston's Ant in Ruby Kata from Micah Martin on Vimeo.

Performing Code Katas

Posted by Sergio on 2008-10-13

I just came back from the first meeting of the Software Craftsmanship Group. Tonight Micah Martin talked about Code Kata but added an extra facet to it.

Micah proposes that, although practicing the Katas by yourself, in your spare time, is valuable, presenting your routine to an audience can deliver even more results. For the presenter there is the opportunity to gain feedback from the audience (peers, masters, even pupils.) For someone watching there's the chance of seeing another peer (or even a master) in action and learn how other developers approach problems and construct their software. By the way, it takes a non trivial amount of courage to sit in front of an audience and write code, even if you have practiced it several times beforehand.

To demonstrate this concept, Micah created a Ruby program that implemented Langton's Ant. I'll try to illustrate the results of this experience.

The audience - me (and many others)

Once Micah explained what the problem was, he asked that we watched him code and be prepared to evaluate his performance (quality, smoothness, clarity, etc.)

Although I know a little bit of Ruby, I'm by no means a proficient Ruby developer yet. Seeing someone that works with the language all the time in action would be interesting no matter what. But there was more in it for me.

Micah, as a true BDD pratictioner, started by creating the specs with RSpec and proceeded with the red/green/refactor iterations until he achieved a complete successful specification execution.

There's nothing like seeing a technology at work to understand it better. Tonight's performance contributed a lot for my BDD understanding.

The presenter

After the presentation we had to rate it (0 to 10) and give some feedback. There's where the other Ruby and BDD ninjas in the room could make educated comments about Micah's performance and average joes like myself could comment on less sophisticated issues like font size and keystrokes.

Judging by the constructive feedback, I'd imagine the presenter's future performances will be fine tuned and get better. On that note, the suggestion is that the presenter moves on to a different Kata for each performance.

Buncha' Links

New Software Craftsmanship Group

Posted by Sergio on 2008-10-02

It's so rare to find interesting group meetings up here in Suburbia that I can't pass the chance to attend new ones.

As Micah Martin announced, the Software Craftsmanship Group was created and the first meeting happens soon.

One of the topics for the evening will be Ruby Kata. Should be fun.

Design Patterns in Ruby - book review

Posted by Sergio on 2008-07-22

I have a friend that is very much into Design Patterns and wanted to learn Ruby with a more applied perspective of the language.

I went the exact opposite direction. I know a little bit of Ruby already and I wanted to improve my limited patterns knowledge.

What we had in common is that we both picked up Design Patterns in Ruby by Russ Olsen. The title can be a little deceiving in that you might think it assumes Ruby knowledge, but no, it actually covers the Ruby language at a level that doesn't bore the reader with programming basics. The book assumes you know how to program already but you're new to Ruby.

After an introductory chapter about Ruby basics, the book delves into Design Patterns, their formal definitions, how they look like in Ruby, how to leverage Ruby features to tweak the patterns, and examples of the pattern being used in examples extracted from the Ruby class library or popular components (gems). As the examples and tweaks are being presented, any new Rubyism being applied is explained.

I found this book to be a great way to learn more about the Design Patterns and the proper way to implement them in Ruby. I also learned a little more Ruby and some language features that I did not know how to use yet.