I love creating live demonstrations of the latest thing I’ve been working on for KubeCon, but let’s be honest, creating *good* tech demos is not easy! I wanted to share a couple of learnings from the past few years, which may help those of you (and future me…) that are still struggling to finalize your demo.
Start with the Story
It doesn’t matter how technical the demo will be — whether it’s dev-focused or ops-focusing, using the command line or a GUI, or showing a pet project or commercial product — you need a story in order to capture the watcher’s attention and draw them into your world and narrative.
A good story teller can make seemingly boring tech interesting, and a bad story teller can… well, you get the picture. I’ve learned a lot from this book:
As to my story creation process, I like to clearly set my goal (e.g. Thomas Rampelberg and I will be showing the value of multi-cluster networking at KubeCon NA), and then break out the top three points I want to make. I then build the narrative around this, often sketching the journey I want to take the audience on via Notes on my iPad.
Fortunately for this talk, Thomas and the Linkerd team had already created a series of excellent blog posts that capture the multi-cluster story we want to tell.
Automate for the Win!
Automation is your friend with tech demos. As a shameless plug for the app that my team and I have been working on recently, I bootstrap all my example/teaching Kubernetes cluster config using the K8s Initializer.
I select the tech I want to include in the cluster via the GUI — Ingress, CD, tracing etc — mash the “Review and Install” button, and apply the automatically generated YAML to my cluster, wherever it happens to be located (local or in the cloud).
This has helped me a bunch, as I’ve been spinning up a lot of ephemeral clusters for our Ambassador/Linkerd mulicluster demo. The ability to easily tweak my config options (and change networking config as I’ve worked across multiple cloud vendors) have saved me a lot of time.
Small automations also make all the difference. I’ll frequently alias long or complicated commands I’m going to be using in a demo (such as
kubectl config use-context east). Some folks use typing automation tools, such as AutoKey, too.
Record the Demo and Watch It Back
As the upcoming KubeCon NA 2020 is a virtual event, this step is a no-brainer (and, in fact, essential), but I would still recommend doing this for in-person events. Not only does it allow you to step out of the demonstrator role, and attempt to critique the content as an attendee, but it also gives you a backup option if your live demo fails!
I was quite nervous about my live Telepresence demo at last year’s KubeCon NA, but having a backup video safely available on my laptop definitely helped my confidence a lot!
And Finally: Practice, Practice, Practice
I’ve always admired the great live demonstrators on the KubeCon stage: the Jessie Frazelles’, Kelsey Hightowers’, and Liz Fong-Jones’ of the cloud native world; and one common nugget of advice they have given to me is to practice. They make it look so easy because they have put in the hard work off the stage.
It was great to see so many of you (virtually) at KubeCon! If you missed the talk that Thomas and I delivered, you can catch it here:
I’m @danielbryantuk on most of the Interwebs, and I also hang out in the CNCF Slack.