August 2010 - Posts - Jon Galloway

August 2010 - Posts

Behind the scenes at mvcConf: How we ran a free virtual conference

Summary

mvcConf was a free, virtual conference focused on ASP.NET MVC which ran on 7/22. We ran 25 sessions in three virtual rooms and had roughly 500 people logged on throughout the day. All sessions were run via LiveMeeting and were recorded. We were really happy with the community reception, e.g. this public “well done” for the ASP.NET MVC Conference post.

This post talks about how we ran it, what worked well, and where we can improve. The idea is to pass along the information to gather feedback and to help others who would like to run similar events.

There’s huge opportunity for virtual conferences. Unlike traditional conferences, virtual conferences. Some benefits:

  • Can be run for very low cost
  • Can be made available to anyone with an internet connection
  • Require no travel or time away from family for attendees or speakers
  • Can be very flexible, adding sessions and speakers at the last minute without any cost
  • Can make different decisions on what content to provide by removing cost from the equation

Background

The conference was proposed by Eric Hexter and Javier Lozano, two ASP.NET MVP’s who have been running Community For MVC. C4MVC is a virtual user group with monthly presentations from the MVC developer community, presented over Live Meeting (the LiveMeeting account is made available via INETA). Eric proposed a full day virtual conference back in March. Eric said they were looking for help from the community, and I pitched is as one of the core conference team.

Pre-conference

In addition to e-mails, we used the following tools to keep things organized:

Day of conference

Meeting Rooms

We ran three concurrent tracks throughout the day, so we kept three LiveMeetings running and attendees moved between the meetings as they desired. Each room had a facilitator, who made sure things ran smoothly. I ran one of the rooms - it was pretty easy because the responsibilities were well defined and documented.

Track Facilitator Responsibilities:

  1. Start a pre-recorded intro at the beginning of the session.
  2. Start the server side recording in live meeting
  3. Introduce the speaker for the session
  4. Help the speaker, by letting them know if the video is rendering properly, audio is working properly , etc.
  5. Monitoring the Question and Answer queue, and asking the questions verbally to the speaker.
  6. Ending the recording at the end of the session.
  7. Setting the live meeting slides to a pre-created slide while the next speaker gets prepared.

Backstage Room

In addition to the three Live Meetings which were used for the tracks, we had an additional "Backstage" meeting running all day. We used that for communications between the event organizers, and for AV checks with the presenters. AV checks were especially important since speakers were presenting from a lot of different locations and the schedule didn’t allow for the usual “Hmm… can you hear me yet? Not sure what’s going on here…” fumbling that begins 90% of Live Meetings.

mvcConf.com Website

All rooms had a landing page with instructions on how to join the meetings, and the Live Meeting links were handled via bit.ly links. Note that the Schedule page has “Join” links for each track.

mvcConf - Schedule

Clicking a Join link takes you to a landing page for that room.

mvcConf - Room Landing Page

The “Join the live meeting” button links to http://bit.ly/mvcconf1 rather than an ugly Live Meeting link. We’ve all been on Live Meetings in which attendees had trouble finding the correct link; we found that this system made it easy to get where they wanted quickly. It also gave us the opportunity to get people involved in the Webchat.

Steve Smith’s company, Nimble Pros, donated a designer’s time to give us a professional website design. This kind of thing is huge for an all-volunteer effort – as Eric summed it up: “That type of donation was worth way more than any monetary equivalent. I would like to encourage that type of support.” Thanks, Steve!

Community Conversations: Twitter

We scheduled Twitter announcements for each session from the @mvcconf account using HootSuite. Example: Amir Barylko is presenting "Behavior Development Development" in Room 3 #mvcconf Join: http://mvcconf.com/Room?id=3

All the conference organizers were active on Twitter, encouraging as much community chatter as possible. Everyone used the #mvcConf hashtag, and recent tweets were displayed on the homepage at mvcconf.com using the WebMatrix Twitter widget.

mvcconf - Twitter Stream from day of conference

Community Conversations: IRC

We ran four IRC sessions – one for each room, and a hallway chat. We linked to the IRC sessions from the site and talked them up via Twitter. There was a lot of activity on IRC – great discussions of the content, connections being made, etc. In several cases, attendees would help presenters out with demo problems by suggesting code fixes via IRC.

Attendees were free to use any IRC client they wanted, but we linked to webchat.freenode.net from all conference room pages and from the homepage of the site.

Session Recordings

Live Meeting offers two options for recording meetings – To My Computer or To Service. We used the Service based recording, as it’s both easier to manage (all recordings in one place vs. on different facilitator computers) and is supposed to be higher quality.

Live Meeting - Recording Options

Note: The Live Meeting recording quality isn’t great. It’s 1024x768 and the audio is understandable, but it’s not at all ideal (more on that later).

Keynote

Scott Hanselman presented a very well received keynote presentation. He was the only presenter who also showed live video via webcam, which – especially for a keynote – added quite a bit to the presence and live feel. As an example of the flexibility offered by the virtual format, Scott (very graciously) presented the keynote while he was on vacation. As opposed to a standard conference, this didn’t require Scott to leave his home or spend more than a half hour away from his family.

mvcConf - Keynote

Scheduling and Time Zones

Eric, Javier, and a lot of our other volunteers are on US Central time, so we chose that as the time-zone for our conference schedule. Based on my experience with podcast scheduling, I anticipated a bit of trouble due to folks assuming things were on their local time. We took a few steps to try to mitigate that.

First, we made sure to mention the time zone in all correspondence, especially when scheduling speakers.

Second, we added a big clock to the Schedule page on the website using jClock.

mvcConf - Official Clock with jClock

Post-conference

Video

After the conference, we set up an online spreadsheet and had volunteers do some basic editing on of the recordings. We used Camtasia. Here’s the instructions our volunteers followed:

The goal here is to get a rough editing of the videos.

What I mean by this, is getting the beginning of the videos cleaned up so that some of the silly banter is cut out. Cut out any technical cliches that happened during the talks, in some cases audio from the presenter is lost and a moderator may work through the issue. I am looking for you to help get the part of the videos that provide no value because the presentation stopped. Also, I am looking to cut the Q & A sections at the end of the talks out. Again, these are general rules, if there is a question that adds to the value of the session, leave it in.

The process:

  1. Download Techsmith Camtasia, you can use the 30 day trial of http://www.techsmith.com/download/camtasiatrial.asp
  2. Watch the editing tutorial, http://www.techsmith.com/learn/camtasia/7/cut-spit-unwanted-video-audio
  3. There are additional tutorials that will help, but the editing is a required viewing.
  4. Update the spreadsheet to show which videos you are editing, and when they’re complete and uploaded.
  5. Download the video
  6. Edit the video:
    1. Open Camtasia studio
    2. Import media
    3. Add video to timeline
    4. Choose 1024 x 768 dimensions
    5. If necessary, use the zoom feature to remove black borders
    6. Use audio enhancements (volume leveling, voice optimization) if it improves audio quality
    7. Edit all audio and video portions of the video
    8. Produce as web 1024 x 768, mp4

By dividing up the labor, we were able to get all of the videos produced and online just a few days after the conference. We hosted the videos on Viddler and distributed via Bittorrent (using ClearBits.net, which hosts legal torrents).

Note: ClearBits is great because they only host legal torrents and offer a server-side seed. I recommended them to Jeff Atwood a long time ago and he’s been using ClearBits to host the StackOverflow Creative Commons data dump.

Tekpub also offered to mirror the videos on their channel here: http://mvcconf.tekpub.com/

Code Samples and Slides

All available code samples were hosted on Codeplex: http://mvcconf.codeplex.com/releases

Speaker Ratings

Speaker Ratings were handled via SpeakerRate.com here: http://speakerrate.com/events/503-mvcconf

All the sessions and speakers were set up before the conference so attendees could enter their ratings immediately after the session.

What Went Well

  • Overall conference logistics
  • Scale
  • Website
  • Session content
  • Community involvement
  • Microsoft involvement (good participation from product teams)
  • Community response
  • Post-event video turnaround speed

Note: To hear Phil Haack and Scott Hanselman discuss this from a speaker point of view, listen to Hanselminutes 224 (or read the PDF transcript).

Opportunity to Improve: Live Meeting

Overall, Live Meeting worked out pretty well. We ran a free conference with 25 sessions given by geographically distributed presenters without requiring special gear, servers, training, or extensive software setup. Live Meeting did have a few limitations, though.

Windows only client

We had 3 or 4 people complain about this. Since all sessions were recorded, anyone could get access after the fact, but it was unfortunate that a few people who wanted to view the presentation couldn’t (or wouldn’t) due to requiring the Windows software.

Live Meeting video quality is poor

Live Meeting’s audio and video quality are both good enough that the content is understandable, but they’re not good.

Live Meeting is conferencing software, not streaming video

Live Meeting is more immersive than the streaming video many conferences now offer, but it would be nice to offer both, especially for the keynote. Live Meeting takes a little more investment, has a limit of 1250 attendees per meeting, etc.

Options (in addition to staying with the status quo)

  1. Offer Live Meeting + live streaming video. Offering streaming video would have allowed for “drive-by” attendance, unlimited overflow, probably some better video quality, etc. We tried to get that together for mvcConf but couldn’t find a free solution that would scale to 500-1000 attendees. If we did this, we could potentially use the video feed for higher quality video recordings.
  2. Have a set number of presentation facilities (e.g. Channel 9 studios + potentially a few Microsoft Tech Centers), which could then handle Live Meeting, video streaming, and potentially some live attendees. This sounds good, but could require a good amount more organizational overhead.
  3. Find another conferencing solution and if a cost is associated, charge attendees to cover it. Not ideal, but it’s an option.

I’ve taken a look at some Live Meeting alternatives. Some lists:

So far, all the solutions that I’ve seen are prohibitively expensive once you want to broadcast to 500+ attendees, or allow several users to presenters. I’ve seen one interesting open source server solution, Big Blue Button, which bears more investigation.

Opportunity to Improve: Attendance Limits

We capped registration at 1000 for two reasons:

  • Live Meeting caps attendance in one meeting to 1250. Note that with our 3 rooms (+ using the Backstage room for overflow) we could have scaled to 5000 if we’d pushed to the absolute limits.
  • This was a first shot at it and we wanted it to go well.

Based on those factors, we “closed” registration at 1000. Note that this was really a soft registration cap, since actually entering the Live Meetings didn’t enforce a login, but we stopped publicizing the event once we hit 1000 registrants and didn’t pursue some easy high-profile publicity options (e.g. ASP.NET Community Spotlight listing) because we wanted to make sure everything went smoothly.

Opportunity to Improve: Local Events

Without changing our platform at all, we could have greatly broadened our reach by setting up local viewings of the conference using Microsoft facilities such as Microsoft Technology Centers, user group events, etc. These would have offered the following benefits:

  1. Broad scale without any additional requirements from the conference organization point of view
  2. Greater community feel by spanning both virtual online community and local community
  3. Local publicity and promotion by locally respected leaders
  4. Potential for follow-on workshops, etc.

(thanks to Clark Sell for this idea)

Opportunity to Improve: More Sessions

There are two ways to expand: more concurrent tracks, and two (or more) day events.

Offering more concurrent tracks is a small incremental cost – if we’re running three tracks, a fourth takes minimal additional effort in things like scheduling and logistics. It would require more effort in some areas, like video processing and setting up speaker ratings, so we’d need more event volunteers to scale, but not a whole lot more.

Making the event longer is harder, because the event was very exhausting to run. The only way this would be possible is if the second day’s sessions required a lot less overhead:

  • Long workshops (half-day / full day)
  • Open spaces meetings
  • Dedicated tracks, like a full day Web Camps track

Opportunity to Improve: Logistics

The logistics went pretty well overall, but there are some things we’d do differently next time. From our retrospective meeting, in no particular order:

  • Push IRC more
  • Confirm speakers individually (we had a mix-up caused by confirming a group of speakers via a group e-mail thread, this would have been avoided by confirming individually)
  • Get more session abstracts ahead of time
  • Have more video editing volunteers set up ahead of time, and go to work on them as soon as each session ends
  • Collect slides and sample code from speakers when they’re presenting (before or after presentation)
  • Look into a Tuesday conference, vs. Thursday

Note: Please let us know of other opportunities to improve on the mvcConf UserVoice page.

None of this is specific to ASP.NET MVC

One important thing to point out is that none of this is specific to ASP.NET MVC. There’s no reason that we couldn’t see a lot more virtual conferences following this model, in any number of technology areas. Got one in mind?

Note: Eric and Javier got this conference off the ground and made it happen. I was happy to help out, but it would never have happened without them. I coordinated this post with them and incorporated their feedback, but please don’t assume that I’m trying to take credit for their awesome work. We just wanted to share our lessons learned with other people who want to host similar events.

And while I’m thanking people, I should of course thank the speakers (all of whom presented for free) and our generous sponsors.

More Posts