Simple Design & Testing Conference 2007

I attended the Simple Design & Testing Conference over the weekend. A co-worker made me aware of it about two weeks ago, and since it was a) free; b) held at Penn State York, about 20 minutes from my house; and c) had some really smart people like Ron Jeffries on the guest list, I figured I had little excuse not to go.

The format of the conference was all Open Spaces, meaning that it was completely self-organizing conference. This worked out quite well, I thought, and despite having never done anything remotely like this in the past I felt comfortable enough to propose and host two sessions.

Highlights included:

Deliver Value on Day 2: I came in about halfway through this one, but I got a lot out of it. I heard the “Strangler Vine” metaphor for the first time, referring to the practice of gradually replacing legacy code with new code until nothing is left of the old. There were also some good points made about how frameworks like Rails can constrain your thinking. For instance, your first step on a project should not necessarily be to create the tables – or even to create the database! Instead of starting with the habitual Rails overhead, just start creating your domain objects and let data persistence be a task for day two.

Questions that drive towards simple design: The goal here was to come up with a list of questions developers ask themselves (or others) which help them to arrive at simple designs. A lot of good content here, like:

  • Ask five times “Why?”
  • What is the simplest example of doing this sort of thing?
  • What is the most catastrophic failure that we need to plan for?

Unobtrusive Confirmation: This was a thought-provoking exploration of humane user interface paradigms. Points included making sane assumptions (but also providing an obvious way to override the assumptions); and providing a way to undo an action instead of asking “Are you sure?”. The conversation grew to encompass a lot of other interesting topics as well.

The two sessions I hosted were:

BDD/RSpec Best Practices: This wound up being more of an intro to RSpec, since most of the attendees had little or no experience with BDD or RSpec.

What are my tests telling me about my design? The idea for this session popped into my head Friday night as I was looking at the wall of proposed topics. I thought it turned out really well. We had a lot of good discussion, and came up with a list of potential test smells that might indicate that there is something sub-optimal about the design. I might write more about the points that emerged when I get a chance. For now, you can see the list we made at the above-linked page.

The conversations were stimulating, I met a bunch of great folks, and the (free!) food was great. All in all it was a fun and productive way to spend a weekend, and I hope I’m able to attend next year’s conference in Chicago.