How To Deliver a Great Technical Presentation
Two years ago marked a major shift in my career as a software developer; I transitioned from a full time mobile C#/.NET developer to a full time developer evangelist at Xamarin. Sure, I had attended a few developer conferences in my days, but I had actually never delivered a technical presentation, which may come to a surprise to some. In the past two years I have learned a lot delivering nearly 200 technical presentations, webinars, and workshops. There are a few things for sure is that I have learned a TON on how to deliver a technical presentation and have had a blast having the opportunity to talk to so many amazing developers across the world. I wanted to take a step back for a minute from the mass amount of code that I am often sharing on my blog and write up a few tips and tricks that helped me and hopefully can help you before getting on stage and presenting in front of ten, fifty, one hundred, or thousands of developers.
Prepare that IDE
I can not stress enough how important it is to properly configure your IDE of choice for “Presentation Mode”. On a day to day basis as a developer we have our IDE environment completely customized to our liking and have code spread out between multiple monitors and know every magical keystroke. The problem here is if your audience can’t read or see what you are doing they aren’t going to take anything away from your talk. Here are a few things to get the IDE setup properly.
Stop Using Dark Themes!
I know, I know! You are probably thinking that James has no idea what he is talking about and he has lost his mind saying to use the Light/Blue/Default theme for Visual Studio or Xamarin Studio. Think about it for a second, it is the DEFAULT theme, which means most developers are going to be used to this option of development. Better yet, go stand at the back of the room and attempt to read what you are typing without getting a headache. The Dark Theme of IDEs have a huge contrast between colors and it actually is a strain on your eyes from across the room. Please, please, please stop using the Dark Theme and switch to the default light theme and together we can stop eye strain at conferences.
Use BIG Fonts
This may seem obvious, but text does not always appear bigger when on a projector. Most IDEs default to a 10 or 12pt font, which is nowhere big enough for any attendee to actually read your code. Combine that with the fact that hardly anyone will sit in the front row and the majority of your attendees attempt to sit as far away from you as possible means that you need to crank that font size up. I know it may seem weird at first, but go into your IDE and set your the font to Lucida Console with a minimum of 16pt font. Each projector is a bit different and as of recent I have been presenting with at 24pt font! Best practice here is to take those 10 minutes before your session and open the IDE with some code and walk all the way to the back of the room and see if you can read it. I recommend adjusting the entire IDEs font because scaling each tab in Visual Studio is very painful and you can easily forget during a presentation, so don’t risk it.
Master Zooming
Even though you have adjusted to nice big beautiful fonts it may not be enough some times when you need to highlight and show off your solutions projects or need to highlight something small on the screen. This is where zooming comes in! Learn to master the zoom tools on both Mac and PC and you will surely impress all of your attendees. On Mac OSX, it couldn’t be easier to setup, just go into Accessibility, Zoom, and turn on zooming with a Command + 2 finger swipe in and out. Practice this though so it is a small, slow, and steady zoom so it isn’t jarring for your attendees.
On Windows there are some Magnifier tools built in, but I personally like the ZoomIt tool from SysInternals. With a Control+1 you can zoom in to a specified area and even draw on the screen! So cool!
Turn off those plugins
I am sorry to say, but all of those fancy IDE plugins such as CodeRush and Resharper that you use on a daily basis should really be turned off. Attempt to get your IDE back to as close to a clean install as possible as you don’t want these tools to be distracting and often they can actually hide what you are trying to show by being too clever. Additionally, I never like to show off additional software that needs to be purchased to make my demo look fancy. If it is in the box then show it off else turn it off.
Get your Machine Ready
As you can see I have put some serious consideration into the optimal IDE settings for presenting and now I don’t even adjust my IDE back to how I used to code. I like to make the joke that I code at 20 pt font, and it is true plus I think it is a bit easier on my eyes. How about the actual machine and operating system itself though? There are plenty of small tweaks that can really ensure that nothing unexpected happens during your presentation and that your demo has the full machines resources needed.
Turn off Notifications
There is nothing worse than an email or twitter notification popping up during a presentation! We have all seen it happen as it is easy to forget to hit that little switch in Mac or Windows to disable all notifications. Usually when screen mirroring this is done for you, but why risk it? Simply turn everything off. On Mac OSX simply hit that odd little trip line on the very very top right of your screen. This will bring out your notification center with a hidden setting you can get to by scrolling/pulling down to put your machine in Do Not Disturb mode (similar to the iPhone).
On Windows 10 simply tap on the notification icon and disable all notifications.
Disable and close apps
This also sounds silly, but there is nothing worse that having Slack keep bouncing up and down because someone mentioned you in a random channel. Don’t risk any unexpected popups and just close EVERYTHING you don’t need. In addition to less clutter on your machine it also will free up resources on your machine. If it isn’t part of your demo then close it out. This is very important for resource intensive programs such as Google Drive, Dropbox, and others.
Auto Hide The Dock on OSX
Get rid of it! It is using up precious screen space!
Acquire the Right Equipment
You have to have the right tools for the job and presenting is no different. The most essential tool for presenting is a presentation pointer/clicker. If I ever forget mine at home I am completely lost without that button to progress to the next slide. My favorite is the well built, light weight, long battery, and very lovely Logitech Wireless Presenter R400. Buy it and thank me later.
Of course you should also make sure you have all of the cables and devices necessary for giving a technical presentation. You can’t always rely on emulators for everything and may need to do some screen mirroring, so be sure to read my guide on how to properly screen mirror iOS, Android, and Windows. There are of course lots of other things that you may want to think about bringing with you such as a small wireless router, HDMI cable, usb hub, usb cables(Amazon Basics are perfect for this), power adapters, and of course a pad and paper to jot down notes of your presentation.
Oh! Don’t forget a bottle of water before you present. This is one of your most powerful tools that you have in your toolbox. It allows you to stop for 10 seconds, relax, take a sip of water, and carry on because you are crushing it!
Adapters, adapters, adapters!
Buy and carry every single HDMI, VGA, DVI, and Ethernet adapter you possibly can think of. You have no idea what kind of situation you are getting yourself into at a conference and you can’t rely on the organizers to have every little adapter. If you are on a Mac buy official adapters on Amazon, for Surface tablets buy the Microsoft stuff, and of course just get anything else that you can think of. Including a Displayport to HDMI… even if your Mac or PC has a HDMI. It sounds crazy, but trust me you may in fact might only complete the HDCP handshake this way!
Practice, practice, and practice some more!
I can’t stress it enough that it is really really important to practice your slides and of course your demo even if you have presented it in the past. I have a private GitHub repo that is “demo ready” that allows me to revert changes to for any presentation, but things can still go wrong. New updates, new operating systems, small changes in a NuGet package, who knows! Always run, compile, and download every bit that you need and run through your demo at least the night before just to be sure.
Know your slides
Do you know that little box on the bottom of each slide that says “Presenter Notes”? Do you know what they are for??? Presenter Notes! Don’t try to be all fancy and step out in front of your screen and try to Steve Jobs a presentation unless you have your slides memorized to perfection (I have only done this a few times, and it is not easy). Feel free to move, but put your laptop showing a few small notes and the next slide in between you and your attendees and you will be happy you did.
To live code or not to live code?
This is a question that I ask myself going into every presentation I submit. How much actual live coding do I want to do on stage… aka how much risk do I want to put myself into that something could go wrong. To be honest every presentation will be drastically different and it is OKAY to not write a single line of code. Most people will not take away what you tried to type up. My recommendation is use either small snippets or uncomment code for anything too complex and explain it line by line. I honestly do not see any real difference if you actually typed it out for something overly complex. If it is a very very important concept such as XAML or designing a page and showing off a cool feature then my thought here is absolutely go for live coding and people will appreciate it. My one recommendation is to absolutely NOT do a full presentation of just live coding, it is too much to handle. If you want to show code in slides do it side by side what the feature does with a screenshot. Your attendees will appreciate the effort you put into the sample you built and love that they can download it after.
Prepare for the Unexpected
Sometimes you can’t prepare for anything. Just a few weeks ago I was at a Xamarin Dev Days event in Boston where I was showing off a small weather application using openweathermap.org’s awesome API. Little did I know that a day or two earlier they changed their “open” API to require an API key! All of my demos failed completely and it caught me off guard. I stopped thought and adjusted the demo to just hardcode fake return data to show off what “would” have happened.
Get ready for bad Networks
I can not lie that I am spoiled at home with Cascade Link offering me up a 1GB data connection up and down in Seattle. I can literally download Xamarin faster then it can install on my machines. This is not the case at conventions, hotels, airports, and of course airplanes! Be sure to download and install every bit you need ahead of time. The day of your presentation be sure to connect all your devices and test that connection. If things are going absolutely horrible and there is no internet make sure you have some sort of hotspot or hotspot enabled plan to tether that sweet sweet data. For really complicated demos be sure to also have an offline demo ready.
Here are the two issues I talked about above in the very famous iPhone 4 demo fails by Steve Jobs:
Notice Steve had a hard time and at some point you have to just carry on with the demo, and that is okay. If you can fix it for future demos then go ahead and do that and joke a bit about it. Just don’t ever say that it was the “demo gods” that weren’t with you, just say “well I’m not sure why this isn’t working” and continue on to the next demo. At most give a demo 60 seconds.
Be cognizant of time
Seems silly I know, but time yourself and know how long your presentation will go. Will you have time for questions during or after your sessions? If not tell the audience and don’t stop to answer questions, simply say you will be available after. I have recently started to put turn on a count up timer on my phone so I can glance down to check my time. I highly highly recommend this.
Be the expert
People packed the room to hear YOU speak. Be the expert that made you submit the talk in the first place. There will always be someone in the audience that knows something you don’t, but for the vast majority you are the expert so be confident in yourself. I know I am asking a lot here, but just do what you know and if you don’t know something when you are asked a tricky question don’t try to fake an answer, simply say “I am not sure, but let’s have a talk after and I will find out or find someone that does”. Honesty goes a long long way.
One last thing here when it comes to being an expert. Do not in any case ever ask or point out to someone in the audience for an answer. Just because you see an expert doesn’t mean they will know the answer or are following along super close. They are there to learn and all of the attention should be focused on you, not a random person in the audience.
You are your own worst critic
Whoa! You just gave a presentation! Stop and first congratulate yourself as you did something that most people will never do in their life. You got up in front of a room of random people or maybe even your peers and talked for 40 to 60 minutes on a topic. That is pretty amazing so be HAPPY! Stick around and answer questions, be nice, and hand out business cards. Don’t worry about mistakes, an odd wording, or that you think you did “bad”, trust me you didn’t. You will always nit pick your presentation and think you did worse than you actually did. Most likely no one noticed that 10 seconds of silence or small typo in your slide that freaked you out, trust me you most likely crushed it.
Have Fun
You have to have fun when presenting, crack some jokes, engage the audience and have a blast even if something does go wrong. Every presentation will not be perfect but each is a learning opportunity for the next one.
There you have it. This is a lot of text to read, but I am sure glad you did. I am in no way perfect and I am always looking to improve my presentation skills, so if you have your own tips and tricks please share them in the comments below.