I'm writing this on Friday evening, sitting in Chicago O'Hare airport while waiting for my delayed flight to depart. (I wonder how many blog entries there are that start with that exact same sentence.) I'm returning home after spending the day attending 37signals' Getting Real workshop. Today was pretty cool, and I know a lot of people wanted to attend the workshop but couldn't so I'll do my part by writing something about it.
First off, if you are waffling about attending this workshop in the future and are just waiting for a recommendation, I think it's well worth the cost in time and money. There's a lot of good stuff, all very practical and applicable to what a lot of us are doing. The program was jam-packed, the speakers were all very good, and they even threw in some discount coupons for some of their products. They didn't cover much that I hadn't seen before, and in fact some of the content was quite familiar, but the thing that impressed me was how integrated and cohesive their methodology was. It all fit together and seems like a great way to create an environment that is both productive and fun to work in.
I haven't read Getting Real, the book, so I can't compare the workshop to the collection of essays, but Jason Fried said the material presented today was more in-depth. I'll probably grab the book and keep it as a refresher for the workshop. From looking at the table of contents of the book I think the workshop covered much the same set of topics. The main speakers were Jason Fried, David Heinemeier Hansson, and Ryan Singer. The rest of the 37signals folks were there too, missing only Jamis Buck who was at home in Utah (though he did pop into the Campfire chat for a bit). Jason, David and Ryan took turns presenting different sections of the agenda. Sometimes that kind of tag-team presentation style can get annoying, but in this case it worked well and let each topic be covered by the speaker who was most experienced.
A brief aside: The meeting room was set up with a wifi network so everyone with a laptop could get online. 37signals provided us a Campfire chat room, which was at once amusingly cool and distractingly annoying. When I was at Apple the term we had for this kind of side-talk channel was snide-band, and this forum lived up to that moniker quite well. The group kept careful count of how many times Jason dropped the F-Bomb or David said "whoops!", and there were more than a few Dilbert cartoons. But there was also a lot of value to the chat. Often when a topic was mentioned people could expand on it or provide references to background material, even links to the exact resource the speaker was talking about. And some of the 37signals folks were in the chat room too, answering questions that otherwise would have taken time away from the speaker's presentation.
As I said, there wasn't much material that was truly original, though all of it was good stuff. Still, the selection of practices represents the collective experience of some clever people who have been quite successful, and it's worth paying attention to what they think is important. Jason said that opinionated software is valuable to the user because it encodes the experienced decisions of the creator, much like ordering from a menu at a good restaurant lets a diner enjoy the benefit of the judgement and experience of a masterful chef. Likewise with the Getting Real methodology itself.
Over two dozen topics in seven hours of class time was a fairly relentless pace. There was too much to remember all the particulars, so I'm looking forward to getting the slides as reference. I don't often take a lot of notes in class, as I prefer to engage with the material rather than just act as a scribe. Even so, I did jot down a few particularly good keepers:
Don't display a blank page when there isn't any content yet. Instead, show example content so users understand how the page will work when they do get some content on it, and have a better idea of how to get there.
Don't let users pay you for your product until after they've been using it for free for a month. This avoids churn and potential problems with users who aren't happy with the product.
Include in your Terms of Service: "We reserve the right to refuse service to anyone." Because there are some people who's business you just don't want. This isn't a discriminatory practice, but is to protect you from having to deal with problem customers.
Discover people to hire by seeing who is an effective contributor to an open source project you care about.
The difference between a product being a failure and a success is sometimes how many features you throw away. I am reminded of the quote by Blaise Pascal: "I apologize for the length of this letter; I hadn't time to make it shorter." There is value in distilling an idea to its simplest expression, free from clutter and distraction. Customers will pay for that value.
If I were Guy Kawasaki or Dave Letterman there would be 10 items in that list, but I'm not, so there. What do you expect for free?
Clearly the Getting Real methodology works for a small, agile company. But if you work at a big company you may find it a frustrating experience to learn about this way of doing things because it's probably going to be nigh impossible to escape your onerous corporate processes. David made a good case for Getting Real having value for large organizations, and I tend to agree with him. But I've worked at big companies, and I know how they love their specifications, their processes, and their meetings. The only time I've managed to escape that overhead was when I was part of a small team that was firewalled from the rest of the company and allowed to operate largely autonomously. And given how often a big company will set up a skunk-works with free rein, I guess it's worth knowing what to do when you get the chance.
Alan Kay likes to say that the right perspective is worth 40 IQ points. I think the thing that makes Getting Real work for 37signals is that it gives a powerful perspective on how to solve a bunch of crucial problems. To try to sum up that perspective in one line is hard, but I'll go with Blaise Pascal again. Cut away the crap until what you have left is worth something. That philosophy pervades everything about Getting Real.
But there is also a subtext to Getting Real, and that is that the way you operate productively is through effective communication. I'm a big fan of the power of communication. I think if you could only invest in yourself in just one way, you should pick getting trained in how to communicate effectively. But that's a whole other topic I don't have time for just now.
As a coda, I'll say it was great to get to meet the team at 37signals. I'm more than a bit jealous of their work experience, which gives me something to shoot for in putting together my own team. It's nice to see an example of someone who got it right.