Presentations: Balancing Slides and Code

At Microsoft UK we run at least one free developer event a week on average, catering for all levels of skill from novice to expert. Over several years of delivering presentations at these events, I've built up an array of presentations on different aspects of .NET development, ranging from introductory overviews to in-depth "under the hood" sessions. One balance that is often a challenge to get right is the trade-off between showing slides and demonstrations.

My gut feeling is that most presenters rely far too heavily on PowerPoint slides as something of a comfort blanket. When you have an audience of several hundred and 70-90 minutes in which you're expected to entertain and inform them, the length of time feels like a huge chasm that needs to be filled. The temptation is to bring enough slides to ensure there's no possibility of running out of material. Of course, this almost never happens - instead presenters often take far too long over the first couple of introductory slides, then realise they have far too much material and wind up rushing through the more interesting stuff to finish on time. I know I've done this myself on more than one occasion, yet ultimately it will never deliver the best experience either as a presenter or an audience member.

This is not a unique phenomenon to the computing industry, but it's not helped by the way PowerPoint slides are treated as documentation by many. I've lost track of the number of times I've heard people say "I can't make the presentation, but I'll read the slides" as if the two things were interchangeable. My aspiration at least is that my slides would illuminate and illustrate the concepts, rather than be the core material of the presentation itself. I've no problem with making the slides available in printed or electronic form to those who attended the presentation, but it seems to make less sense to use them as an alternative to the session itself. Imagine trying to read a book from the illustrations alone without having the prose that goes with it! Yet this is the norm, internally in Microsoft as well as externally. I'm sure I can't be the only one to have had the ridiculous experience of seeing a slide I authored presented back to me by somebody else - who clearly had little idea of the point I was trying to get across originally!

The other challenge is finding the balance between instruction (the slide bit) and demonstration (the code bit). Across the thousands of technical presentations I've either attended or delivered myself, I've seen about every point on the scale between pure slides and pure demonstration. I've decided that there's no one hard and fast rule on the right approach: different presenters, topics and audiences merit different styles. But I'm coming to the conclusion that for me at least, the more practical code demonstrations, the better. Rather than trying to get a complex concept across purely through diagrams and explanations, I find it much easier to explore it through practical demonstrations. Furthermore, as an attendee I find it far easier to believe somebody who shows something working in a real scenario than someone who simply tells you that it works! The downside is that it's harder for attendees to review the material they have learnt back in the office than if they had more in the way of slides, which brings us back to the original problem.

Lastly, one of my managers recently commented to me that he thought I could improve my presentations by going further "off-piste". Rather than having everything slick and well-honed enough that there's no potential for digression or exploration, the fun comes when you are experimenting with things for the first time in front of an audience. For example, I've started getting audiences to vote on which language I use for a particular demo (C++ and COBOL are out for the time being!) Taken too far, this could lead to all kinds of blind alleys, but I've certainly seen this used to good effect by DevelopMentor in their training courses. The concept of extreme programming certainly comes into its own when you've got several hundred people looking at your code quality and spotting bugs before you compile!

In summary, I plan to work on making my presentations:

  • Have fewer, higher-quality slides - mostly diagrams rather than text
  • Include more demonstration than presentation - I'm aiming for an average 70:30 ratio, depending on topic
  • Travel further into "off-piste" territory - trying things out based on audience feedback

If you've attended one of my presentations in the past, I'd be interested in your comments - feel free to add your honest feedback below. I've delivered some that I'm truly proud of and others that cause me to shudder when I remember them (TechEd 1997 was one event I'd prefer to forget...)