Prepping for a demo
I typically have a checklist of things that I go through before I give a demo or presentation.
I know Scott Hanselman does as well: Have a Pre-Talk Checklist and Demo Reset
The following is a set of checklist items and tips that I use before doing a demo.
Demo Prep
Close all apps that won’t be used. I know this sounds like a duh!, but I’ve seen no shortage of Outlook toast popups, and Instant Message popups during someone’s presentations and demos.
Setup a one-click restore of my database. I have a simple BAT file for SQL Server that looks like:
sqlcmd -Usa -Psa -Q "restore database dovetail from disk = ‘C:db_backupsdovetail.bak’ with replace"
Start the apps that you’ll be using – especially the slow ones. I know Visual Studio takes 4 minutes to startup on my laptop. 4 minutes seems like an eternity when I’m doing a presentation. So I’ll typically have this running if I’ll be using it.
If I need to use a command prompt – have the command prompt open already. Make sure you’ve changed to the directory that you want to be in.
Adjust your font sizes! That includes in your editors (Visual Studio, Ultraedit,etc.) and in your DOS and PowerShell prompts.
If I’m showing a web application:
Reset IIS: iisreset.exe. Now I know my web apps are in a clean state. And the apps I’m not using will be unloaded.
Hit the web app with your browser. This starts the app itself, loads the .NET Framework, etc. No reason for my participants to have to sit waiting for the web app to load for the first time.
Start the browser before the presentation (no need to waste the audience’s time waiting for Firefox to check for updates to your plugins)
If you need to have multiple tabs available, open the multiple tabs
I often create a simple start page, that only has links to what I’ll be showing:
I’ll set my default home page to be this new page. Participants don’t care to see your Yahoo homepage.
Turn off the browser toolbars (Links, Bookmarks, Google, Delicious, etc.)
I may even turn off the navigation bar, depending on the situation.
Turn off the status bar.
You can also run your browser in Full Screen mode, which accomplishes a similar look.
Compare the differences:
Why would you not want to maximize the screen real estate given to your application?
Speaking of screen real estate, I’ll also use the whole screen for the browser. You can also auto-hide the taskbar.
Why show all the files, shortcuts and other crap that are on your desktop? Why not put your product front & center so that it gets full attention?
Compare the differences:
Tools
Occasionally, I want to be able to zoom in on a particular piece of code or a part of the UI. To do this, I use ZoomIt.
ZoomIt allows me to zoom in on a portion of the screen, and I can also draw and type on the fly, such as:
As I tend to forget keyboard shortcuts that I don’t use often, I also keep a note card by my side of the ZoomIt commands and keyboard shortcuts.
I also use SlickRun. I have most of my common tools and apps defined as SlickRun magic words. I find it super useful in day to day work, but also for quick launching of things within a demo. Much cooler looking and less distracting that seeing someone do Start – All Programs – and seeing a whole screen full of menu items. Yuck.
I know Sam uses Launchy instead of SlickRun. Equally effective.
Browser PlugIns
As I’m showing our application, I often log notes to a case, send emails, etc. As I’m not the world’s fastest typist (and no one cares to waste time seeing me type), I use a Firefox plugin called Clippings. With it, I can save clippings (or snippets) of text, and then easily paste them later. For example, I have clippings for paragraphs of lorem ipsum text, email addresses, as well as a couple of technical articles.
I also use Stylish and GreaseMonkey plugins. I’ve blogged about use of these in the past. These allow me to do some minor customizations and styling to a web app without necessarily having to modify the app itself. For example, I may use a customer’s logo or colors within a web app so that they can better envision it in their environment.
Script
I have to have a script to follow. I often create a custom script for each demo, but I always have one. It allows me to make sure I’m covering the important items without missing anything. Because I create
a script, it allows me to rehearse many times before the demo. This is where having a restore database script comes in handy. I’ll go through the script, make some tweaks, restore my database, and do it again. Rinse. Repeat. Until I’m comfortable.
My scripts not only have the steps I follow, but I list important things to point out, notice, and talk to.
For example, here’s a portion of the script I use when demonstrating SchemaEditor:
<snip>
we’ll use SchemaEditor to add 2 new fields to our schema
– Show Intellisense
– type <add
– notice how it shows me available commands
– choose addTable
– notice how it shows me the id and name fields
– give it an id of "my_table_id"
– notice the blue squiggly line; mouse over it; notice the validation message
– The point: schema validation BEFORE even hitting the schemaeditor app.
– se -p (schemaeditor.exe -preview)
view output (who; what; when)
– se -a (schemaeditor.exe -apply)
view output (who; what; when)show contact table in BOLT
– There are now 2 new fields: x_contact_method, x_ssn
– Notice that they were automatically marked as USER DEFINED
(this is the default, I didn’t have to specify this)
– There are also 2 new view columns on rol_contct</snip>
In summary
And there you go – a little peek under the covers of my demo prep. I know there’s nothing earth shattering here, but perhaps it’ll help you remember some of the small items that add a lot of polish to your demos and presentations. I know it helps me.
Rock on.