Day One of the Craftsmanship Swap:
Today Micah and I paired on test driving a user interface through FitNesse. The UI in question is a JRuby rich client application that had reached the point where they wanted to have some acceptance tests that fire it up, click around, and assert that things are where they should be. We used DRb to stow away a reference to the application when it started up and then we could make the application dance. If you haven’t used DRb it’s yet another deceptively simple and powerful Ruby tool. Check this out:
~ $ irb
> require ‘drb’
=> true
> object = “hello”
=> “hello”
> DRb.start_service(‘druby://localhost:9001’,object)
=> #
> ref = DRbObject.new(nil, ‘druby://localhost:9001’)
=> #
> ref.size
=> 5
> ref.to_s
=> “hello”
Stick any object in and then another Ruby process can pick it up and do stuff with it. Neat.
I noticed 8th Light has the same desk space problem as Obtiva in that we have an open workspace, but people tend to settle into one space. And then they let all their personal junk pile up. Where do you keep all the personal products (toothpaste, dumbbells), mementos (awards, action figures, ninja swords (interesting side note: Every 8th Lighter got an engraved ninja sword for Christmas)), and other detritus (old specifications, note cards) when people don’t really have a desk of their own? When I went up to Atomic Object a few weeks ago (I gave a talk at their XP West user’s group) they had a bunch of cubby holes, like you might see in a school, big enough to toss a backpack into. At least it got the backpacks off the floor. Personal space is hard when you’re committed to pairing. I’ve seen situations where developers had their own desk in addition to working in a ‘war room,’ but that can be tricky as when you’re not used to the war room it can be tempting to sneak off to your desk so you can ‘get some work done.’ Phone calls can also be a problem. I love the pairing and the war room environment and there’s no way I would have learned as much as I have without them, but they do present some unique problems.
I finished up the day having a good time ping-pong pairing with Eric Smith on a large rails app. It’s funny how quickly you can pick up the spirit of an application and contribute when conventions are followed and there’s an expert engaging you at every turn. Sure, the first 30-45 minutes I was asking a lot of questions but after that I was adding something to the process – it really does surprise me every time.