Articles Feed

Authors

Categories

Craftsman Swap at Relevance - Day 2

by: colin | July 7th, 2010 |

Today was my second at Relevance for our craftmanship swap (see my first post for the goods on Day 1). Chris and I continued work on the project from yesterday. I was glad to have a chance to continue the story work we'd started, and see it through to completion by this afternoon, eliminating a few timezone bugs along the way (I'll get back to that).

We started the morning off with the company-wide stand-up meeting again, followed by a retrospective for the project I was pairing on. Chris explained that every iteration on a given project, Relevance does either a retrospective or a risk assessment meeting. After some scheduling and telephone difficulties on the client's side were (mostly) sorted out, Jason kicked us off as the retrospective facilitator. I haven't been on a project that held retrospectives on a regular basis before (though we've certainly done them at times), so it was interesting to see the very structured approach Relevance takes. As a brief outline, the team (and customers) began by outlining their expectations and hopes for the retrospective, followed by ratings of how several areas of the project (communication, ROI, building the right thing, etc.) were going, and finally a review and a set of action items with due dates attached. The team members - Chris, Jason, Don Mullen, and Michael Parenteau - were all excellent at interacting with the customers. I like to think that I'm pretty good at that kind of interaction, but there's a lot I picked up in a short time on that conference call. I heard a lot of rephrasing the customer's concerns to verify that the team always had the correct interpretation, and I'm sure the customer came away feeling like their needs were really being addressed, especially with the clear action items to address any issues that came up. Michael's design work on this project, incidentally, is pretty killer and got rave reviews from both of the client representatives.

In yesterday's installment, I neglected to mention the project management tool the teams use, Mingle. It's a very nice tool, which looks to have a ton of features, but (unlike some other many-featured products I've used) manages to keep the interface very clean and simple. I'm not sure in what situations I'd feel compelled to switch to it over something nice (and free) like Pivotal Tracker or Agile Zen, but it is an impressive piece of software that I'm glad to have had a chance to take a look at.

So... time zones. Every time I deal with them it's a mind-bending struggle to keep all the concerns in their proper place, and today was no exception. We had our Time.zone in Rails set to UTC, but were still getting some EST times. Well, it turns out things like Date.today.beginning_of_day don't respect that setting and use whatever the default system time zone is. After about an hour of investigations and pondering, we eventually decided to replace most uses of Date with the Rails TimeWithZone object, allowing some mildly unsavory naming with the understanding that the decision is going to need to be revisited to account for various user time zones anyway. It seems to me that this is a universal problem for apps that might be used in different time zones. Chris suggested that this might add to the often-quoted-but-rarely-sourced list of hard problems in computer science: cache invalidation and naming* (and off-by-one errors?). So henceforth, time zones are in there too. That's right, you heard it here first: it's three (or four, depending on if you're telling the off-by-one joke) hard problems: cache invalidation, naming, and time zones.

After work Aaron Bedra, Alex Warr, Stuart Halloway, and Stuart Sierra introduced me to my first draft-style game of Magic the Gathering. Yes, that's right, I spent the evening with three of the Clojure/core guys and learned a ton... about Magic. It was fun - I got a TON of help from everybody, especially Alex, and with a lot of help, I actually won a few rounds. We played duels, best-of-3, and I went 2-2 overall in games. And by "I", I mostly mean "the people who told me what I should put down." I heard a rumor on one end of the table that Relevance prefers to hire Magic players over non-players as programmers**, so potential applicants should take note. I don't know that I'll run out and buy a deck, but it's always fun to learn a new game, especially when the cards are named things like "Lord of Shatterskull Pass".

Sounds like I'll be sitting in with Alan Dipert's team tomorrow on some Clojure work, which I'm very much looking forward to.

* Some people on the Internet say the credit belongs to Phil Karlton, so it must be true.

** This sounds made up, and may be.

[UPDATE: fixed retrospective timing description based on Jason's comments below]

4 Responses to “Craftsman Swap at Relevance - Day 2”

  1. Jason Rudolph Says:

    Thanks for the great writeup, Colin! It's been a pleasure to have you with us for the last two days, and we always appreciate hearing new perspectives on how we work.

    You mentioned the frequency of the retrospectives and risk assessments: "Chris explained that every two iterations on a given project, Relevance does either a retrospective or a risk assessment meeting." Chris may have misspoke; it's actually every iteration (i.e., every two weeks), we alternate between a retrospective and a risk assessment meeting. For example, at the end of Iteration 1, we'll do retrospective. At then end of Iteration 2, we'll do a risk assessment, Then it's back to the retrospective at the end of the next iteration, and so on. We find that this pattern works well for getting feedback and surfacing concerns. We talk a bit more about these feedback loops (and others) on howwework.thinkrelevance.com:

    http://howwework.thinkrelevance.com/agilists.html#feedback_loops

    Looking forward to days 3 and 4! ;-)

  2. Chris Says:

    I blame time zones, or maybe it's an off by one error. But, yeah, what Jason said.

    (If our iterations were one week long, I'd stop making these iteration to weeks conversion errors!)

    Thanks for the write up Colin! It's awesome to see how we work through your eyes.

  3. Eric Says:

    So you hadn't played Magic the Gathering before? We may have to re-evaluate your geek card.

  4. Colin Jones Says:

    Jason & Chris- my fault; thanks for clarifying. I've updated the blog to reflect that as well.

Leave a Reply

#