I drove down to Boulder last weekend to participate in an open-spaces Python conference, speak at an eyes-forward programming conference, and attend a workshop on TurboGears 2. Here's what I learned.
This was the first time the organizers had tried an open-spaces approach, and I learned a few things by witnessing it. The first time you do one of these things, you can't imagine that they will work at all, and because of this it's far too easy to slide back into old habits. The event was held at the Google offices in Boulder, and one big mistake was pre-announcing that there were projectors available in all rooms. This basically invites everyone to bring their slide deck, and once you get slotted into that approach, every conversation that tries to start is met with "yes, that's interesting, but let me just get back to my slide deck."
I am not by any means saying that the conference was bad, not at all. I enjoyed it. But if you went with the expectation of conversation rather than presentation, in most rooms you didn't find that. And seeing what open spaces conferences can be, it's always disappointing to see backsliding into eyes-forward conferences.
To pull it off, you need full commitment. It also really helps if you have a core group of people who've done it before and can lead everyone else -- at the very least you need one experienced person to establish the structure at the beginning. If someone's entire life has been spent sitting and listening to lectures, it's not that surprising that, without guidance in a new direction, they fall back into that pattern.
I have seen this kind of thing in many forms -- this weekend's Python unconference did (IMO) the right thing by fully committing to open spaces and I would have volunteered to introduce the concepts but it seemed like it might have been intrusive. On numerous occasions I've been asked to manage open spaces at a conference, but these are usually situations where the conference organizers may be thinking "this unconference thing is getting viral, maybe we should get some skin in the game." The problem with those has been that they have been eyes-forward conferences that are throwing a little open-spaces into the mix just in case. All the marketing and the history of the conference promises eyes-forward, and that's what people show up expecting. They come for a set of lectures that were advertised, and it's almost impossible to change people's patterns at that point. The Pycon conference has been more successful, but only after some time and fine-tuning and (again) after there are enough people who've experienced it to lead the others away from eyes-forward stuff. Personally, I'd like to see Pycon go to a completely open-spaces forum, but I can only imagine what kind of push-back we'd get from the community who expects a traditional conference (the conference organizing committee, however, might see it as a great relief).
Everyone at last weekend's conference seemed pretty happy with the results. It was free, after all, and I think people got a pretty good payoff for showing up, a lot better than they normally expect. I only lament because I know how good it can be when you give up projectors and slide decks and lectures and focus on conversations. I did have a discussion with the conference organizer and he could see what had happened so I'm sure he will try harder next time to move it in the direction of open spaces.
Aside: at one point we had the opportunity to take a tour of the offices. I had no desire to do so; indeed I actively avoided a trip through the cubicles, knowing instinctively that I would find it depressing. I can visit, but I don't think that life in a cubicle is part of my next life.
I was interested in this event because of its goals: make a conference that's local and inexpensive. Also, they asked me to speak, and if I am going to an eyes-forward conference (as this one was), then I find speaking to be much more engaging than attending -- indeed, I basically never attend an eyes-forward conference anymore unless I've got something else to do (when I was on the senior advisory board for the Software Development Conference, a completely eyes-forward event, I was always involved in something other than just conferences).
There were about 40 people or so, in a single room with serial presenters and about 20 minutes between each presenter. I didn't see much conversation going on among the attendees (as a fan of open spaces, this always bugs me -- I think "if we're going to travel any distance to be in the same room, we should be talking to each other! I can watch lectures on the web!").
I saw two talks before giving the closing keynote. The first one was on Scala, and I learned a little more about it. The second was on core animation on the iPhone and Mac. This one assumed you knew Objective C, but it was primarily the library calls that you made in order to achieve nice effects. Although the code was very succinct -- you could do amazing things with just a few lines -- I came away wondering how much effort it would be to figure out those few lines, which seemed very obscure to me and the presenter didn't really try to explain them because, I suspect, that would have taken us down the rabbit hole. Afterwards we went to a bar and one of the other people at my table said that he had been studying this stuff for 3 months and couldn't yet see where the steep part of the learning curve might start easing off. Apparently it's not the Objective-C that's hard to figure out, but the libraries and framework structure. So that is a useful thing to know.
Aside: James Ward told me that at the Max conference, someone demonstrated a tool that takes a SWF and rebuilds it (using cross-compiler magic) into a legal iPhone app -- including the rule that you can't use a VM (even though Flash is a VM). Some very clever stuff, and it opens the door to creating iPhone apps with Flex. Adobe needs to hire this guy if they haven't already!
This was not the first Developer Day; they've had them in several other places in the country. It seemed successful enough from the standpoint of the attendees, although I don't know whether the conference organizers achieved their goals (we'll see if they continue to schedule others).
Chris Perkins has been doing a lot of the core work on TurboGears 2, and one of the problems he's been trying to fix is education, thus this workshop. He said we were the guinea pigs for the workshop, which he plans to take to a number of other cities (I'll blog about it when I get the full schedule from him).
I've been periodically puttering with TurboGears for awhile, so I have a basic feel for it; I even rewrote the introductory Wiki tutorial (which has since been significantly modified). This time, Chris was focusing on the process of taking an existing database and building a TurboGears 2 application around it.
My experience was around the tools we used. Chris is all about the tools, and it was extremely useful to be marched through them.
A great deal of the smoothness of the workshop depended on easy_install, which, as many people already know, works great except when it doesn't work at all (we had at least one example of this). Most of the time, though, it did its job in a way that allowed us to very quickly experience new tools and libraries. For example, no one had used coverage so Chris was able to very quickly guide us through installation and use (his TurboGears tools generate a test framework).
We installed everything within a virtualenv, another tool I've been hearing about but haven't used. This creates a directory where all the installations go, and doesn't load anything into your default Python installation. If and when you need to back out, you just delete the virtualenv directory and it's all gone. In order to use it, you must run activate, which puts you in a special command prompt while inside virtualenv. One thing Chris pointed out is that some of the sloppier installations don't always behave properly under virtualenv -- they still end up putting things in your site-packages.
One of the most impressive tools Chris had us use was the simplest, and thus something you wouldn't necessarily think of: he got everyone in the room to install an IRC client (if they didn't already have one) and connect to the #turbogears chat. This was very beneficial during the workshop, because if you need to download something or put in a command, Chris could just put the URL or command on IRC and everyone in the workshop would immediately have it (so simple, yet so obvious once you see it working). But IRC also had a second effect, which was to get everyone used to the IRC channel where a lot of the TurboGears technorati hang out, so it's a good place to get fast answers (I also encouraged Chris to try to use StackOverflow, primarily because SO reduces or eliminates the problem of duplicate question-answer sessions that has been the bane of newsgroups by exhausting all the experts until they flee).
Here is the (edited) list of commands that I used during the workshop (they should work once you have both Python and easy_install installed):
> Aside: James Ward told me that at the Max conference, > someone demonstrated a tool that takes a SWF and rebuilds > it (using cross-compiler magic) into a legal iPhone app > -- including the rule that you can't use a VM (even > though Flash is a VM). Some very clever stuff, and it > opens the door to creating iPhone apps with Flex. Adobe > needs to hire this guy if they haven't already!
I am definitely hoping to build a larger user base for TurboGears by providing free tutorials throughout the country. Next Friday I am going to be free and in San Francisco if anyone is interested in meeting at a coffee shop, unfortunately my attempts to contact the local PUG there have failed.
I definitely provide a tools-heavy workshop. I feel like there are so many valuable new tools out there, and I try to give everyone a taste of them. People are encouraged to explore each tool to the depth they desire during the tutorial. My hope for future tutorials is to have a few power users live in IRC to help me answer questions. That way no one is stuck on the "tutorial track," and I can handle managing multiple tutorial topics simultaneously. It was my hope that the power, modularity and flexibility of TG's new Admin system would be conveyed, I think i need to work on this a bit more.
Anyway, thanks for coming out to Denver Bruce! Hopefully we will see you again soon. Any chance of hosting a TG WorkShop in central CO?