Anatomy of a TechEd Embedded Demo

Thanks to Paul Yao for uploading photos from TechEd to Facebook (images below).

You've probably sat through a ton of conference sessions, and have seen the speaker (or demo monkey) do his thing, and amazingly (most of the time) everything works! - Here's a peek behind the scenes of my Architect panel session demo at TechEd 2008 Developers.

 

Step 1 - Make sure your demos actually work (typically spending time in the speaker room running through the demos the morning of your session) - the alternative is to spend all night in your hotel room with other speakers (who are working on getting their demos working), ordering room service (double espresso typically works - although getting sleep afterwards isn't so easy) - this always seems to happen at TechEd!

Step 2 - Show the hardware and the software you are using for the demo, explain how the demo is going to work, and the problem you are solving.

Step 3 - Hit "Deploy" (or run, or debug, or whatever), now wave your hands in typical magic show fashion, to distract the audience from what's really happening!

Step 4 - Hope that the demo gods are with you today! - Look at the screen, mumble something appropriate while code is (hopefully) deployed.

Step 5 - The distributed services are deployed to each of the nodes on the network - some UI is up on the screen... looking good.

Step 6 - And.... it works! - Now its time to bask in the glory of a running demo!

Its as easy as that! - or is it?

Oh, and to give you a feel for the amount of time needed to get the TechEd distributed services demo up and running, I needed to write three Robotics Studio Services (a Phidgets service, UI Dashboard service, and an XML Web Services 'service'), and the Visual Programming Language application diagram - I also needed to build a demo laptop (o/s + tools), and create a Windows XP Embedded operating system image to run on the distributed nodes.

  • Demo laptop took probably 1/2 day to configure from installing a clean o/s image through to having all the tools installed (with appropriate service packs etc...)
  • Windows XP Embedded operating system images probably took most of a weekend to configure, build, and deploy
  • The Phidgets MSRS service was fairly quick, this was probably about an hours work to get up and running
  • The XML Web Services MSRS service was also quick, probably 30 minutes
  • The UI Dashboard service took a while to write, not because of the MSRS bits, but the UI controls needed some work - so this was probably a 1/2 day to complete.

Total demo prep time was roughly four days from start to finish - total demo time, about 10 minutes. Note that the purpose of the demo wasn't to show how to build an XPE image, or how to write MSRS services, but to show how a services based programming model (CCR/DSS) can be used to easily build distributed systems based on Windows CE or Windows XP Embedded.

I've received a number of comments over the years about demos I've delivered, the comments go something like "you make it look too easy", or "its never that easy when you try it for yourself" - Its worth thinking about the purpose of a demo, here's a random stream of thoughts about demos.

  1. Demos should be used to prove a point, to show *how* something works
  2. Demos *can* be used to wake up the audience (probably means your session is too boring!)
  3. Keynotes demos are limited to ~5 minutes, it's hard to show the complexity of technologies and get a point across in that time (most demos start at about 12 minutes and need to be cut down to 5 minutes)
  4. If it really is that complex then there's something wrong with the product! - Someone needs to write better tools or API frameworks to make it easier!
  5. I find demos to be more effective than slides, it brings the technology to life - I prefer to do demo based sessions than slide based sessions - "Let's build something"
  6. Demo failures can be as informative as demos that work - if the presenter has time then it can be fun to determine the cause of the failure and fix it up "real time"

Do you have any examples of demos you thought worked really well, or examples of demos that either failed to work or seemed pointless?

- Mike