The Java.net poll question this past week has been, "What type of technical conference sessions are most valuable?" The options that can be selected for this poll question are Keynote Addresses, Panel Sessions, Technical Sessions, Birds of a Feather (BOF) Sessions, Other, and "I Don't Know." As of this writing, there have been just over one hundred responses with 60% favoring Technical Sessions followed by the "I Don't Know" option being in second place with 20% of the responses. I don't recall seeing many poll questions where this option is so high. The next highest type of conference session after Technical Sessions's 60% is Birds of a Feather Sessions with 10%. There are potential advantages associated with each of these session types as well as risks and drawbacks for each session. In this post, I look at each of these types of sessions based on my previous experiences with them.
I have attended keynote presentations at conferences that have been the highlight of the conference (especially in terms of long-term perspective), but I have also attended conference keynote sessions that have felt like barely more than a waste of time. A keynote session has great potential if the subject is relevant to what I'm interested in because the keynote is often given by people with position, influence, and depth and breadth of experience. For example, I enjoyed the Simon Phipps keynote presentations at Colorado Software Summit because of Phipps's obvious experience in the industry (especially open source) and because of his position and influence at Sun Microsystems (Chief Open Source Officer).
In many ways the opportunity cost of keynote sessions is often low because many conferences don't have any other sessions held during the keynotes. This means that nothing potentially more valuable can be missed to attend the keynote. There was a time when I thought that detailed technical sessions were always more valuable than keynote presentations and so resented keynotes precluding the holding of additional technical sessions. However, looking back on things, select keynote presentations have had a profound impact on my development career and I now appreciate a thought-provoking and relevant keynote session.
While a technical session may provide more direct and specific details on how to do something, the keynote's nature is such that it typically has more breadth, is more far-reaching, and is future-looking. Keynotes can give us insight into what a product's steward plans to do with their product in the future. For example, the JavaOne 2010 keynote sessions have huge potential because they are likely to provide indication of the future of Java under Oracle.
The strength of panel sessions tends to be the potential diversity of opinion and the opportunity to see multiple sides of an issue. While keynotes are often very one-sided (single speaker) and technical sessions are nearly always evangelistic in tone (one speaker cares enough about the topic to take the time and effort to prepare for and present), panels can bring out real controversy. I have learned significant new concepts and formed or strengthened opinions based at least partially on observations in panel sessions. It is particularly interesting to see where panelists with different agendas and different biases can find common ground. I'm a strong believe that no single tool, language, or framework is right for all situations and no session is better equipped to help determine where certain things best fit than a panel session.
There are risks with panel sessions. They can be significantly less effective if there is very little real diversity of opinion on the panel. Second, panel sessions can easily go off on tangents and get lost in the weeds without a strong and knowledgeable moderator. I've been in some truly awesome panel sessions where significant new ideas and concepts were energetically discussed and defended and I have been in some truly awful wastes of time with a bunch of like-minded individuals rehashing the same old opinions and masquerading as a panel session.
The Panel Session often has a higher opportunity cost than the Keynote Session because there often are other session types held simultaneously with the Panel Session. It's bad enough to go to a poor Panel Session (either because of the poor Panelists or because of the poor moderator or both), but it seems even worse when you realize you could have attended a possibly more useful technical session, BOF, or unconference session.
Technical Sessions are the bread and butter of most software development conferences. It is the technical sessions that I am most excited about when I build my preliminary agenda for which sessions I'm going to attend at a given conference. One of the main advantages of the technical sessions is their typical narrow focus on a practical subject. Panel Sessions and Keynote Sessions often focus on bigger picture concepts, trends, and "softer" things like politics and other issues. In other words, focused detailed technical details are often an advantage of a good technical session.
Just as the value of the Panel Session is largely dependent on the quality of the panelists and moderator and the value of a Keynote Session is largely dependent on the experience and position of the person giving the keynote, a big part of a technical session's quality is grounded in the speaker's experience, speaking abilities, and preparation time. Technical sessions have great potential to be aligned with a participant's interests because of their typical narrow focus and because many of them are offered at once so that participants can choose the most relevant session.
Not everyone likes the technical session format. In the (currently) sole comment to the Java.net poll question, Olivier Allouch wrote, "IMHO, technical sessions are useless for me. I prefer a good doc or written tutorial." I think he brings up a good point. I generally prefer technical sessions that either introduce me to a new library or language (to decide if it's worth my time to look at the tutorials and documentation) or technical sessions that provide best practices, tips, and tricks that may not yet be readily collected and available in documentation. Specifically, hard-earned lessons learned can make valuable technical sessions. In other words, for me, the technical session is typically most valuable when it either provides an easy and soft introduction to something I have little familiarity with or when it provides the kind of specific details that can be difficult to glean from general documentation.
Birds of a Feather Sessions
The major advantage of Birds of a Feather (BOF) sessions lies in its nature: because these by definition are held by and for people with enough interest in the subject to flock together, they tend to be people either with deep and current experience or people truly interested in learning more about the subject. Having like-minded participants can be a great advantage.
A second potential advantage of the BOF format is that these are often less formal than technical sessions. The BOF can share some of the advantages of the panel sessions (different opinions and perspectives) as well as some of its disadvantages (potential for conversation to wander aimlessly). Like the panel, the success of the BOF often depends on having one or a few strong moderators. The key to a successful BOF seems to lie in its reduced formality, but without giving up formality altogether. Many successful BOF sessions I have seen have even started with a small number of slides or notes on a projector to steer the conversation. The best BOFs, in my experience, have been those held by someone with a prepared agenda, but with the ability to quickly adapt as the conversation goes without letting that conversation go too far off topic.
A great advantage of the BOF often comes outside of the session itself. If nothing else, the BOF is often a great opportunity to share contact information with like-minded individuals for future collaboration and discussion. The after-the-BOF in-the-hall sessions can often be worth more than the BOF itself.
I'm not going to get into "Other" because I have no way of knowing what that entails. However, one could argue that the recent popularity of Unconference Sessions has earned them a category of their own. This is the type of session that I have the least experience with of the session types on this list, but its concept is pretty straightforward. The Unconference Session is arguably often even less formal than the BOFs. The main advantage of the Unconference Session is the opportunity to get sessions on topics that the conference organizer may not have covered as adequately as participants would have hoped. Unconference sessions provide an opportunity for conference participants to set up their own presentations. This is particularly useful for niche topics or for topics that might be a little outside of the conference's main charter.
JavaOne 2010 already has several Unconference Sessions scheduled. An example is the recent announcement that Duchess will be holding an unconference session on "the role of women in Java and IT in general."
Like the BOFs, the Unconference Sessions enjoy advantages associated with reduced formality and the gathering of like-minded individuals. However, like BOFs, they also have greater potential for drifting off topic if the organizers are not well prepared and adaptive.
I typically attempt to attend at least one of each type of session at a conference like JavaOne. This approach reminds me of a diversified investing approach. If I attend several different types of sessions, I'm more likely to receive tremendous benefit overall and to reduce my risk of wasted time. For JavaOne 2010, I plan to attend the JavaOne-specific keynotes (especially the one on JDK7 and the road ahead) and will likely attend technical sessions most of the time when not in keynotes. However, I will try to find one or two BOFs and one or two Unconference Sessions to break up the formality and to gain some of the benefits for which those types of sessions are better suited.