My PDC Keynote Demo
I was forwarded a few pictures from my PDC keynote demo today. Keynote demos are always “fun” events, and are great at creating a lot of stress in a compressed period of time.
This year I did an ASP.NET and Visual Studio Whidbey demo, where I built up a customer facing insurance website on stage. Some of the new features I showed off included Master Pages, the Membership System and Login Controls, building a user control that databound to a web service (using the authenticated ID of the user) and bound the data to a new GridView control that automatically added sorting and paging support on it, and then lastly using the new Web Part server controls in Whidbey and page personalization to add end-user customization (enabling the user to drag/drop the controls on the page -- and then automatically save the changes to the new asp.net personalization store). What was nice was that I was able to build all of the code from scratch in about 12 minutes. The audience seemed pretty impressed (the drag/drop stuff at the end always takes people's breath away).
In general, I tend to be fairly comfortable with speaking to large crowds. I typically don't practice my talks at all for crowds less than about 1500 people, and don't get butterflys for audiences of less than 3000.
Keynotes like the PDC, though, are stressful. Both because of the audience size (the total number of people in a general session keynote is between 7,000-8,000 people in seats), but also just because of the overall logistics and mass of people involved (and the fact that the press corp occupies the first few rows and are salivating over a slip-up or crashed demo).
Work on this keynote started about a week before the event, and we ended up building my demo over a few days. Ususally the hardest thing about constructing the demo is making it look pretty (thankfully the product makes the coding part easy!). In the past I've hired professional designers to help with the graphic look and feel. This time we actually did something new -- which was purchase an existing site UI from a cool company: http://www.templatemonster.com. They charge about $50 for a good looking site design, and ship all of the Photoshop image files, CSS and html needed to let you customize it (which is cheap considering how much you'd pay for a professional designer).
This got us started on the initial look and feel -- Jeff King from my team then did some awesome work in a short few days to modify the design for our specific scenario (“Woodgrove Insurance“), and built the ASP.NET Master Page that I used in the demo to base all of my pages on.
We then built up a laptop demo machine with the bits, as well as a backup demo laptop that we could use as well (more on this later). Some general demo machine tips/tricks I've learned over the years:
1) Make sure the demo machines are laptops. You'll want to practice, practice, practice before you get there. Much easier than with a desktop. You can also hand carry them down to the conference. Don't ever trust anyone else to transport your demo machine for you -- carry it yourself personally to make sure it gets there. Side-note: it is always fun watching the security people's faces as Seatac when I pull out 5 laptops to go through the X-Ray machine.
2) Have both the main and backup machine imaged exactly the same. Get decent hardware (this is not the time to be cheap)
3) Have a batch file called “reset.bat“ that you put on the desktop (both primary and backup machines). Simply clicking it should reset all files on disk to start the demo from the beginning (no thinking required). Make it idiot-proof to make sure you are in a good working start state. You don't want to worry 5 minutes before you go on as to whether everything is setup ok. Just click the batch file, watch it say “everything worked“, take a deep breath, and then walk onstage.
4) Disconnect the laptops from a domain. Windows sometimes gets funny about re-authenticating SSPI credentials when offline (example: database connections might fail). Ensure the laptops are totally self-sufficient for credentials.
5) Disable instant messanger. It sucks to have someone IM you with a “hey butthead!“ message in the middle of your demo onstage in front of lots of people (yes -- my sister did this to me once by accident. thankfully it elicited a good laugh).
6) Turn off wireless access. Eliminate those annoying wireless up/down messages on the task bar. Eliminate randomness with how you are connecting to things.
7) If possible, don't plug into the network -- and design your demo so that it doesn't need to connect to remote machines. Network access is always highly random in a conference -- call everything locally to avoid having to worry about a router blowing up, DHCP overloaded, proxy machines down, etc, etc.
To go along with the backup demo machine, you also always want to have a “demo buddy“ that you are willing to absolutely trust with your life. They have three jobs:
1) Double-check the demo-machines dozens of times (especially right before you go on stage and are trying to relax and stay calm), and make sure absolutely everything works.
2) Guard the hardware during the hour before you go on stage and all the time you are on it. Specifically they need to watch out for someone mistakenly confusing the machine and walking away with it. At PDC 1996 someone unplugged and started walking away with a server while the demo-er was using the machine onstage (forcing the speaker to riff while his buddies backstage tackled the guy, grabbed the server back, and furiously tried to boot it up again). A good demo-buddy will stop the guy before he unplugs the machine (another good reason to use a laptop: they will run for at least an hour on battery if someone mistakenly pulls out the power cord).
3) Follow along with the demo on the backup machine while the main demoer is on stage. That way if there is a catastrophic failure on the main demo machine (example: hardware crash, blue screen, etc), the speaker can calmly (or not...) switch to the backup machine (there is a button onstage for them to control this) and pick up the demo where they left off -- the demo buddy having previously followed the demo along and got the backup machine in the same location in the script. Although by no means seamless, this at least allows the demoer to finish the scenario onstage and limp off without looking like a complete goat.
If you have a good demo scenario and a good product, you are 80% of the way there. All that is left is making sure you know what you are going to say and smoothly flow through it. Generally you want to practice this a lot. One of the things I usually do on the flight down to the event is spend an hour or so on the plane explictly writing out a detailed outline and/or script for the talk. That way I can avoid awkward pauses and “umms“ as I talk, and can make sure I keep a fairly smooth flow.
The most important thing I find is the first 30 seconds of the talk, when you come out from behind stage, are hit with tons of strong lights, spy a close-up of your face on a 60 foot tall screen projected behind you (which is a weird “out of body“ experience), and you can't see the back of the room -- just hundreds of rows of chairs fading into the distance. Having a pre-canned opening 3 sentences already prepared and which you know cold helps a lot at this point. I find that once you get beyond this and into the flow of the talk, the rest comes naturally.
One trick I do in big keynote demos is to make sure I have this opening script printed out and on paper with me for immediately before I go onstage (while the stage director is flashing me the 1 minute hand signal). That way, if I feel myself blanking out I can quickly refresh those opening 3 sentences, feel confident, put down the script, and confidently walk out on stage with a smile (note: always leave the script behind -- don't ever bring it with you...
Thankfully I flew down Saturday afternoon and avoided the travel fun that most people who came in (or were supposed to) on Sunday ran into. On Sunday, I checked in to the keynote backstage area -- which is somewhat akin to mission control at NASA.
It it setup backstage behind the big stage screens, and houses about 30 full-time stage crew members, lots of marketting folks working on slides and final messaging, a makeup artist, various technical support staff, and misc execs wandering about watching everything go.
There is a public area backstage where everyone with a special backstage pass can go, as well as the official “green room“ tent that has additional security outside and is limited to just speakers and demoers (and the makeup crew).
The stage and technical crews handling the keynotes are always top-notch and total professionals. They do a great job setting you up and getting everything ready. The demo machines are plugged into a sybex (sp?) system backstage so that they can be projected anywhere. There are then rows of demo dry-run stations where demoers (and their demo-buddies) backstage can check the machines (running through the sybex system) and test and run through everything before going on stage.
On Monday night we did a formal dry-run of EricR's keynote to make sure timings were right and the flow of the talk worked. Thankfully Eric didn't want any changes to my demo so I got off early (tip: when the senior exec says no changes are required, get the hell out of there before they have a chance to change their mind).
One thing I always try todo before a big talk is to make sure I get a good night sleep before. It is much better to be rested and sharp than tired but more prepared (I've learned this the hard way). If you aren't ready the night before the talk, frankly an extra hour of practicing won't really help.
On Tuesday (the day of the keynote) I arrived backstage about 90 minutes early -- just in time to see the last minute changes to the slide deck (it is always good to double check what has been changed so that you at least know the 3 slides before you go on stage). We did a last minute tech check (this is where the “reset.bat” file is a lifesaver -- and lets you leave the machines feeling totally calm). They then shipped me off to makeup and audio.
Having makeup put on you always feels a little weird (at least for me), although like everything the person doing it was a total pro. On a previous job she said she had worked on Ozzie Osborne, although as I sat there in the chair pondering that statement I wasn't sure whether to feel re-assured or worried by that (I ended up not looking in the mirror and just trusted her not to add any dripping blood to my face).
About 15 minutes before my segment, a stage handler arrived to take me from the green room to some holding chairs right offstage. Everything is dark offstage (which makes navigating through the maze tricky). Thankfully there are white strips of tape on the ground marking off safe paths, with giant tape arrows directing traffic to help you find your way.
As you wait in the holding chairs, you collect yourself, try to get yourself pumped up (while remaining calm). AriB, who did the demo right before me, was doing rocky style air punches to get himself psyched up. I ended up doing a few arm stretches, and walked back and forth a few times, to get the blood and energy flowing.
In no time at all the stage director was flashing the 1 minute sign, I did a last minute review of those first three sentences, took a final swig of water, and then walked calmly on as I heard Eric say “....and I'd like to invite Scott Guthrie....”
P.S. I'm the guy in the blue shirt above.