Tips for giving a live software demo
June 2011 (perspective of a Ph.D. student)
I recently gave a Tech Talk at Google about one of my research projects. During the second half of my talk, I presented an 18-minute live demo of my research software, and I was happy that the demo went smoothly. If you press Play on the embedded video below, it should jump to the beginning of my demo at 32:20 (make the video full-screen and increase the resolution to get a clearer view):
A successful live demo often looks like a speaker showing his/her software in an ordinary conversational manner, but it takes a great deal of preparation to make a demo look natural in front of a live audience. Before I began my tech talk, my Google host told me that he sees live demos fail in embarrassing ways all the time, so I shouldn't be bummed if mine failed as well! Fortunately, my ~10 hours of prep time paid off, and nothing exploded during my 18-minute demo.
In this article, I want to share some tips that might help improve your chances of giving a successful, glitch-free live demo. In short, the better prepared you are for your demo, the more natural and comfortable you will appear on-stage, and the more fun you will have! You've worked hard on your software, so you want to convey your enthusiasm to the audience while minimizing the chances of an unexpected slip-up.
Tip 1: Minimize your typing
It's much harder to type quickly and accurately in front of a live audience than when sitting alone at your desk, so do everything you can to minimize the amount of typing that you do during your demo. If you simply type less, you will experience fewer embarrassing typos and awkward pauses during your demo.
For my Google Tech Talk, I pre-seeded my BASH shell history (.bash_history) with terminal commands that I could access using a Ctrl-R reverse incremental search. However, I later learned a more efficient strategy for minimizing typing on the UNIX terminal: Using an ~/.inputrc file to create readline macros. Here is an example ~/.inputrc file:
\C-f "python plot_scientific_data.py london.dat" \C-g "~/cde python plot_scientific_data.py london.dat" \C-j "cd ..; tar -cvf cde-package.tar cde-package/
Now pressing, say, Ctrl-f in my terminal is equivalent to typing "python plot_scientific_data.py london.dat".
Another trick I've seen other people use is to have all the required commands written out in a text file and then simply copying-and-pasting them into the target application instead of manually typing.
Tip 2: Rehearse with a script
Write out a detailed script containing all the actions you plan to do during your demo along with what you plan to verbally speak at each step. Remember that your software demo is actually a presentation, so the usual tips for making good presentations are relevant. In particular, make sure you give the audience a sense of the "big picture" rather than being bogged down in the mundane technical details of how to run your software.
When you begin rehearsing, simply read the script verbatim like a robot to get comfortable with the flow and pacing. As you rehearse more times, you will inevitably find ways to revise and improve your script. As you get more comfortable with your script, you will eventually be able to give the demo in a more natural conversational manner without reading from it. You can feel free to improvise after you're comfortable with the basic scripted version.
It's very important to keep your script updated and know where you are with respect to your script at all times during rehearsals, even if you aren't directly reading from it. In my Google Tech Talk example, I knew that when I transitioned to the Google Earth portion of my demo, that time corresponded to, say, the top of page 6 in my script.
When it's show-time, bring a printed copy of your script on-stage and put it besides your laptop on the podium. If you've rehearsed enough, then you will never need to even look at it. However, that printed script will be your lifesaver if you happen to get a sudden panic attack and forget what you are during your demo. If you feel stuck or lost in the middle of your demo, you can take a quick glance at your script and hopefully get back into your groove without the audience even noticing.
Tip 3: Rehearse on low-resolution
When rehearsing, set your laptop's monitor to a low (1990's!) resolution such as 1024x768 or even 800x600 in order to simulate the projector's resolution. Projectors usually have much lower resolution than laptop screens, so if you rehearse using all of the screen real estate on your laptop, then you will be in for a shock when you go on stage and see your screen projected in low-res.
On a related note, you should expect projectors to do a much worse job of displaying colors than your laptop monitor, so don't rely on subtle color differences in your demo. Make everything as high-contrast as possible.
Tip 4: Make fonts readable
Make sure that your on-screen fonts are large enough so that people in the back of the room can read the text. Start by making the fonts slightly bigger than usual, but more importantly, figure out the proper options for adjusting font sizes in your particular application. For example, before my demo I learned that typing Ctrl + increases font sizes in my Linux terminal application.
Tip 5: Automate your setup
The process of giving a demo will likely mutate your computer's state by, say, creating new files or altering the state of your application. In order to reset your computer's state to give the demo again, you will probably need to undo those actions. Automate this process as much as possible. For my Google Tech Talk demo, I wrote a BASH script to reset my filesystem to a pristine "pre-demo" state. That setup script was very useful since it made it easy for me to start rehearsing and thus encouraged me to rehearse more often.
Tip 6: Do a super-quick run-through
If you have spare time before your demo starts, connect your laptop to the projector and do a super-quick run-through of your demo. Just run all the important commands and applications without verbally giving the presentation. This run-though will allow you to check for screen resolution and font size issues. Also, if your demo needs to fetch online data (like my Google Earth demo), this step will also give you a chance to make sure that your internet connection is working properly in the room. And because you have an automated setup script (see Tip 5!), you can quickly reset your computer to a pre-demo state after your run-though.
Tip 7: Close all other applications
Close all other applications on your laptop except for those that you need during your demo, because it's really embarrassing if your friend sends you an instant message or your OS pops up an automatic software update in the middle of your demo! Also, make sure your desktop background photo isn't embarrassing either. If you're sufficiently motivated, you can create a brand new user account on your computer for the purpose of giving the demo.
Tip 8: Have backup screenshots
While you're rehearsing, take a few screenshots of key moments and then put them together into a PowerPoint or PDF presentation. In the event of a catastrophic monster failure, you can always whip out your screenshots and show the audience what the rest of your demo would've looked like if your software didn't explode.
I hope that you don't have to resort to using this backup, but in the worst-case scenario, showing a faux-demo using screenshots is a lot better than running off the stage in shame!
Addendum from May 2018 (7 years later!)
Whoa whoa whoa, I was just going to write up an article on tips for giving tech talks but found this one already written. So instead, I'll just add more tips that I've picked up over the years of seeing a bunch of presentations implode with technical difficulties:
Last modified: 2018-05-01