I had a discussion with some friends about people’s views on doing live coding within a presentation – for or against.
From my view, there is no right answer to the question. As developers, we like to look at things almost from a bit perspective – 0 or 1, yes or no, true or false. But humans aren’t computers, and so to say that yes, you should or no, you shouldn’t use live coding demos isn’t a worthwhile argument because you’ll never get consensus from the most important group of people for a presenter – your audience.
Consider these two comments from a session at a recent conference I organized:
“I attended this session based on my experience from his other session. Great demos!”
“Number of presenters clearly didn't have any developer content prepared and re-used decks of the web and didn't get into any programming. [Speaker]’s was particularly bad.”
Note the last part of the second comment, about a certain speaker’s sessions being bad because they clearly didn’t have any developer content prepared? Well, the first comment is about that speaker’s second session. I was in that session and yes, he showed code, but didn’t write any. Huh? Two people, same session, different… expectations?
It’s Always About Expectations
I have learned this through much trial and tribulation – the sure way to ensure success in life is to set clear expectations as early as possible. Doing live code? Showing slides of code? Using copy/paste or snippets? Not having any code whatsoever? There is no discussion about whether one of these styles is better than the other. I’ve seen all these styles work and work well. (I’ve also seen them all bomb just as well also, but I’ll get to that in a second.)
So, what we’re really talking about is audience expectations.
A few years ago, some friends and I went out for Chinese food. One of our friends decided to buy a lobster for the table. He was invited into the kitchen to see it prepared. He came out pale and a little shocked. Why? Well, he was going to see a lobster get cooked – y’know, dropped in boiling water. Isn’t that how you cook a lobster? Not in this restaurant. In this place, you chop it with a huge knife while it’s still alive and then throw its pieces into a pan and stir fry it. Now, had the cook set the expectation that he’d be seeing something else, he may not have gone into the kitchen.
The same thing happens with presentations. Why do people not like a presentation? Sometimes it’s because it was just a bad presentation. But most of the time, it’s because expectations weren’t set up front. If you don’t set expectations up front, you let the audience’s expectations become the baseline and you as a presenter have no ability to meet a room full of different expectations. If you set the expectations of what will be seen and the style, then the audience has two options: accept it (stay) or reject it (leave). Either way, you are in control.
So, it Doesn’t Matter What Style I use (Live Coding/Snippits/Slides Of Code)?
Like any presentation, you need to use the best medium for communicating your message and address the risks associated.
Want to do live coding? Great! Make sure you set your font and IDE colour scheme; ensure that it’ll work and compile in its finished state (use the Julia Child method*); test out the available wi-fi to ensure it’s reliable if your presentation requires it; ensure all updates and required components are installed to your machine/VM ahead of time; ensure all background running processes (virus scanner, auto updates, etc.) are turned off ahead of time; etc., etc.
Want to do slides of codes? Fantastic! Make sure you’re ready to answer questions about how to do things differently/more advanced than what’s on your slides. Make sure you check that your code is readable on your slides and the background/style doesn’t clash. And remember that if you’re using image snapshots of code, you can’t change the font on it, so it better be big enough for the guy in the back row to read. Oh, and make sure that your version of PowerPoint or whatever tool you created your presentation with is usable with the version on the presentation computer (if it’s different from your own).
Presentations are Tools to Communicate Your Idea
I do a talk on how to give technical presentations as well as a presentation workshop, and the one thing I stress is that your PowerPoint, your code, your demos, your whatever, isn’t as important as you. You and your knowledge are the reasons people are coming to a presentation. You need to pick the tools and techniques that will ensure that you will communicate your message to the audience.
You won’t please everyone that comes to your presentations. But if you set expectations and give thought to the tools/techniques you’ll employ, you can limit the negative comments and ensure more people leave understanding what you were trying to get across.
*Footnote: The “Julia Child Method” is having a fully functioning version of whatever demo you’re showing so that if something goes wrong you can just pull that one out to talk to. Julia Child was a TV chef pioneer who would show you how to cook a turkey, then pull a fully cooked finished turkey out of an oven.