I hate public speaking. It's one of those things that I avoid at all costs. Though when my Brother made me his best man, there was no getting out of delivering a speech. And when my colleague signed me up to a do a talk without my consent (thanks Chris!), there was no getting out of delivering a tech talk.
My first ever tech talk was to be about how to use Terraform, Ansible and a Makefile to create a Continuous Delivery pipeline by running a single command. It was to be half talk, half live demo. This gave me three pressure points.
The foundation of the whole talk was the code I was going to write so that I was able to demo the construction of a working continuous delivery pipeline in the form of Jenkins installed on brand new AWS infrastructure. I was comfortable with using the tools, but the tooling or using a language is never the issue. It's the end product that is always the difficult, most time consuming part.
In hindsight, trying to slot this in with my day-to-day work was very tricky, and took far longer than I expected. I think if I was to ever do another talk, I would avoid having to prep so much code for a talk.
Being able to write code in time for a talk is not the only thing that is risky, but a live demo of any form can go wrong. Unless your demo is completely offline, if you can't be guaranteed a decent internet connection, or your talk doesn't depend on any third party services, there are many points of failure that could occur. I was very lucky, and I think most people are. But imagine if it was your talk where everything fell apart?!
An emergency demo plan is something sensible to have. Make sure you have a PDF copy of your slides, and presenter notes, and preferably store these on a USB stick. Also, if possible, have a screen recording of your live demo just in case. It won't be live, but at least you can present how things should have been.
What am I actually going to talk about?
The second pressure of my talk was figuring out what exactly I was going to talk about, how it should flow, and my slide deck.
When my colleague Chris signed me up, I think he was quite vague and told the organisers it would be a talk on Terraform and Ansible. I had quite a lot of flexibility with that. The high level tools had been decided for me, so all I had to come up with was something that used these tools. We're big advocates of Continuous Delivery, so using these tools to get a pipeline up and running as easily as possible seemed like a good choice of talk subject.
My plan of action for this was similar to how I write my blog posts. Start with a very rough, high level, bullet pointed list of the things I wanted to cover. In Keynote this formed my main break points during the talk. I set out by creating these slides in Keynote as just brief title slides. Then beneath each of these I would create further title slides with minimal words on them. Dragging slides inwards in the outline viewed gave my slides a form of hierarchy so I could see which slides came under which topic of my talk.
If you're able to take advantage of another pair of eyes and ears during this stage, then grab them! My good friend Luke had those eyes and ears on offer, so I managed to get some really valuable input from him on slides and things that I might have missed, or assumed the audience might know.
When it comes down to your slide deck, keep in mind that slides are cheap, and bullet point lists are boring. Whenever you're tempted to use a bullet point list, break down each point into it's own slide. This keeps things moving, keeps the pace consistent. I'm always haunted by my University days where I had lectures on data structures, and slides of bullet points where the Lecturer would just read off of the slides about how to create a Linked List, with slide transition animations. shudder
Keep your slides simple. The fewer words on them the better. And use many slides. Don't be afraid to use the Presenter Notes feature to add extra information to help prompt you while speaking, and definitely use the Presenter Display feature. But, do try not to just read off of your Presenter Notes (more on that below.)
Talking out loud
The final pressure is the talk itself. The big day has arrived.
Make sure you have water to hand. Don't drink too much of it beforhand, it's mainly there so you can clear a dry throat while talking. If needed, have a beer to calm your nerves.
Mindfulness is all the rage these days, try and keep a focused of your breathing, relax, and keep calm. While focusing on your breathing, try and keep calm, and try not to talk really fast. Focus on your pace while also delivering your talk. Talk slowly on purpose.
Don't worry about the audience. Everyone says it, but people aren't there to try and pull you up on any mistakes you may or may not make. Sometimes people might ask questions during your talk, don't let this off-put you. Unless you claim to be an expert at the very start of your talk, don't be afraid to say you don't know the answer to a question. This was one of my original fears for giving talks, not knowing how to respond to questions.
People often ask questions that have very specific scenarios and are usually going to ask how they can use your topic to fit into these. People can't expect you to know the answers, or know how to apply the thing you're talking about to all scenarios. When in doubt, defer, and tell people to come and catch you after your talk for a drink to talk about it further.
Something I found really difficult was trying not to stare at my laptop/read off of my slides the whole time. Try to make eye contact with your audience. Try not to look at the same person all the time.
To anyone reading who is about to do their first talk, keep calm. Breathe. Talk slowly. It won't be as bad as you think it will be, and once you have one under your belt, the next one will be a breeze.