Delivering Powerful Technical Presentations
Giving a technical talk that seems completely natural, flows, and is deeply impactful is no accident. While it’s true there are those rare people who may have the ability to make it seem like they have a shortcut to the work, countless others will tell you there is no substitution for preparation, practice, and thought (and maybe the application of a few tips learned along the way).
For the last six years, I’ve had the privilege to chair technical software conferences in San Francisco, New York, and London. In Delivering Powerful Technical Presentations, I lean on that experience along with the patterns and practices for delivering technical talks found in Presentation Patterns: Techniques for Crafting Better Presentations.
You can expect discussion around:
* How to maximize your prep time and use deliberate practice
* Know your audience and techniques to engage them
* Patterns and anti-patterns of giving online technical talks
Whether you’re giving a technical presentation for the first time or your hundredth time, you will have questions and the more you know, the more comfortable you’ll be. The focus of the talk is to help you on your journey.
5. Wesley Reisz
Chairperson of QCon San Francisco / Plus (Fall)
Co-Host of The InfoQ Podcast
Tanzu PlaAorm Architect/SoluDon Engineer
VMware
@wesreisz
wes@wesleyreisz.com
13. Prepara<on
In a single sentence (or at least as concisely as
possible) state your purpose, your thesis statement.
PURPOSE
Pandora adopted HashiCorp Consul to automate service discovery across a
containerized environment, orchestrated by HashiCorp Nomad, to create a seamless,
end-to-end deployment workflow. This is the story of how we implemented the stack
and how addressed the problems along the way. So that others can learn from our
mistakes and successes.
14. List out your three main points that support your
purpose
3 POINTS
Prepara<on
• Created a standard development workflow across all development teams for
greater efficiency and consistent work product
• Automated service discovery for more than 50,000 service instances & Enabled
greater self-service capabiliJes for developers to deploy their services
• Reduced lead Jme to applicaJon rollout from several days to 15 minutes
15. Establish a connecDng theme or metaphor that
supports your main purpose
THEME
Prepara<on
We’ll create a Jmeline of the journey and organize the
presentaJon around that Jmeline.
16. Take a second and write down your purpose. What
is the goal of your talk? What’s the moDvaDon?
What do you want people to get out of your talk?
EXERCISE
Purpose 3 Points Theme
“Great presenters are made, not born.” Using the
last six years of experience leading different
aspects of QCon, what advice would I give to a
group of speakers for HashiTalks, so that they have
amazing speaking experiences?
1. Before you touch your deck, Know Your
Purpose & Know Your Audience.
2. No amount of effort will make a
uninteresPng topic interesPng, but how
you structure your talk, in parPcular the
first and last thing you say, is what
separates good from great.
3. Stand on the shoulders of giants.
PaTerns / AnPpaTerns for success.
Prepara<on
Clean organized around a Pmeline. Reuse elements
from the Pmeline.
Feedback Draft
17. How will you organize your talk? What are the major
secDons?
STRUCTURE
Prepara<on
18. THE CLASSIC
Simple Recognizable
Structure
PROBLEM, SOLUTION,
BENEFIT
Focus on the problem
what you did to solve
it and the benefit
gained from it
TIMELINE
Move from an event
at one point to
another (now or in the
future)
LISTS
N Tips to accomplish
something or get
beTer
Prepara<on
STRUCTURES
19. THE CLASSIC
Simple Recognizable
Structure
PROBLEM, SOLUTION,
BENEFIT
Focus on the problem
what you did to solve
it and the benefit
gained from it
TIMELINE
Move from an event
at one point to
another (now or in the
future)
LISTS
N Tips to accomplish
something or get
beTer
Prepara<on
STRUCTURES
20.
21. Prepara<on
PresentaDons are a form of storytelling; don’t ignore a few
thousand years of oratory history. A NarraDve Arc is a common
trope; organizing your presentaDon in a similar way leverages your
audience’s lifeDme of story listening experience.
UNDERSTAND THE
NARRATIVE ARC
25. Prepara<on
An alienaDng arDfact is something that
disenfranchises an audience member or audience
members from the topic at hand. This can take the
form of an image, a quote, or offensive language.
ALIENATING ARTIFACTS
27. Prepara<on
Consider using short videos as your demos. Make
them full screen and short. So you can talk to each
for the duraDon for Dme you like. Conference wifi is
notoriously bad. Even if it’s just for a backup, it’s
effecDve.
CONSIDER DEMOS/CODE
WALK THRU
29. Use highlighDng (either intrinsic in the tool or a third-party add-on
like OmniDazzle) to draw aLenDon to something on the slide such as
a picture or screenshot of another tool or applicaDon. Traveling
Highlights implies that you use transiDons to highlight different parts
of the slide as you walk through the details.
TRAVELING HIGHLIGHT
(DESIGN PATTERN)
Prepara<on
30. import keras
import nltk
import pandas as pd
import numpy as np
import re
import codecs
input_file = codecs.open("data/socialmedia_relevant_cols.csv", “r”,
encoding='utf-8', errors='replace')
output_file = open(“data/socialmedia_relevant_cols_clean.csv", "w")
def sanitize_characters(raw, clean):
for line in input_file:
out = line
output_file.write(line)
sanitize_characters(input_file, output_file)
Prepara<on
31. import keras
import nltk
import pandas as pd
import numpy as np
import re
import codecs
input_file = codecs.open("data/socialmedia_relevant_cols.csv", “r”,
encoding='utf-8', errors='replace')
output_file = open(“data/socialmedia_relevant_cols_clean.csv", "w")
def sanitize_characters(raw, clean):
for line in input_file:
out = line
output_file.write(line)
sanitize_characters(input_file, output_file)
Prepara<on
32. import keras
import nltk
import pandas as pd
import numpy as np
import re
import codecs
input_file = codecs.open("data/socialmedia_relevant_cols.csv", “r”,
encoding='utf-8', errors='replace')
output_file = open(“data/socialmedia_relevant_cols_clean.csv", "w")
def sanitize_characters(raw, clean):
for line in input_file:
out = line
output_file.write(line)
sanitize_characters(input_file, output_file)
Prepara<on
33. import keras
import nltk
import pandas as pd
import numpy as np
import re
import codecs
input_file = codecs.open("data/socialmedia_relevant_cols.csv", “r”,
encoding='utf-8', errors='replace')
output_file = open(“data/socialmedia_relevant_cols_clean.csv", "w")
def sanitize_characters(raw, clean):
for line in input_file:
out = line
output_file.write(line)
sanitize_characters(input_file, output_file)
Prepara<on
34. import keras
import nltk
import pandas as pd
import numpy as np
import re
import codecs
input_file = codecs.open("data/socialmedia_relevant_cols.csv", “r”,
encoding='utf-8', errors='replace')
output_file = open(“data/socialmedia_relevant_cols_clean.csv", "w")
def sanitize_characters(raw, clean):
for line in input_file:
out = line
output_file.write(line)
sanitize_characters(input_file, output_file)
Prepara<on
35. import keras
import nltk
import pandas as pd
import numpy as np
import re
import codecs
input_file = codecs.open("data/socialmedia_relevant_cols.csv", “r”,
encoding='utf-8', errors='replace')
output_file = open(“data/socialmedia_relevant_cols_clean.csv", "w")
def sanitize_characters(raw, clean):
for line in input_file:
out = line
output_file.write(line)
sanitize_characters(input_file, output_file)
Prepara<on
36. import keras
import nltk
import pandas as pd
import numpy as np
import re
import codecs
input_file = codecs.open("data/socialmedia_relevant_cols.csv", “r”,
encoding='utf-8', errors='replace')
output_file = open(“data/socialmedia_relevant_cols_clean.csv", "w")
def sanitize_characters(raw, clean):
for line in input_file:
out = line
output_file.write(line)
sanitize_characters(input_file, output_file)
Prepara<on
37. import keras
import nltk
import pandas as pd
import numpy as np
import re
import codecs
input_file = codecs.open("data/socialmedia_relevant_cols.csv", “r”,
encoding='utf-8', errors='replace')
output_file = open(“data/socialmedia_relevant_cols_clean.csv", "w")
def sanitize_characters(raw, clean):
for line in input_file:
out = line
output_file.write(line)
sanitize_characters(input_file, output_file)
Prepara<on
38. # Highlight converts sourcecode to HTML, XHTML, RTF, LaTeX, TeX, SVG, BBCode and
# terminal escape sequences with coloured syntax highlighting. Language definitions
# and colour themes are customizable.
# http://www.andre-simon.de/doku/highlight/en/highlight.php
#
# Notes:
# -O, output formats includes html, rtf, svg
# -K, font size
# -k, font
# pbcopy, copies to the buffer on OSX
brew install highlight
highlight -O rtf tokenize.py -K 38 -k 'Lucida Grande' | pbcopy
highlight -O rtf highlight.sh -K 38 -k 'Lucida Grande' | pbcopy
Prepara<on
41. Prepara<on
• Beware of Ant Fonts (or Dny
graphics)
• Tiny architecture diagrams
• Give space for Breathing Room
(drink water… make sure it has a
lid)
• Triangulate claims
OTHER CONSIDERATIONS
• Graphs… Note: They don’t have
to be “well formed”
• Beware of bullet riddle corpses
• No magic # of slides
• Depth over Breath
43. Deliberate pracJce is characterized by several
elements, each worth examining. It is acJvity
designed specifically to improve performance, oTen
with a teacher’s help; it can be repeated a lot;
feedback on results is conJnuously available;
it’s highly demanding mentally, whether the acJvity
is purely intellectual, such as chess or business-
related acJviJes, or heavily physical, such as sports;
and it isn’t much fun.
“
“You can work on technique all you like, but if
you can’t see the effects, two things will
happen: You won’t get any beLer, and you’ll
stop caring.”
“
Deliberate Prac<ce
44. Deliberate Prac<ce
Some of the things to pracDce Tribal Knowledge,
acronyms, right Technical Depth, Too Much / Too
liLle, & jokes
CONTENT
45. A filler word is an apparently meaningless word,
phrase, or sound that marks a pause or hesitaDon in
speech. Also known as a pause filler or hesitaDon
form. Some of the common filler words in English
are um, uh, er, ah, like, okay, right, and you know.
FILLER WORDS
Deliberate Prac<ce
47. JUMP RIGHT IN
Include some vivid
details, tension,
emoPon…. hook the
audience.
SUMMARIZE
WHY
What is you 1 thing?
Describe 3 points.
Reveal your Structure
Briefly introduce
yourself, tell audience
how they will benefit
from listening
INTRODUCTION
INTRODUCE
YOURSELF
Anne Ricketts’ Formula for a Killer Intro
TRANSITION
TELL A STORY
Deliberate Prac<ce
51. JUMP RIGHT IN
Include some vivid
details, tension,
emoPon…. hook the
audience.
SUMMARIZE
WHY
What is you 1 thing?
Describe 3 points.
Reveal your Structure
Briefly introduce
yourself, tell audience
how they will benefit
from listening
INTRODUCTION
INTRODUCE
YOURSELF
Anne Ricketts’ Formula for a Killer Intro
TRANSITION
TELL A STORY
Deliberate Prac<ce
52. PRINCIPLE OF RECENCY
People tend to remember the most recent thing you
said. Make sure you make it count.
Deliberate Prac<ce
53. SUMMARIZE
YOUR STRUCTURE &
3 POINTS
What were the 3
points that you used
to support your thesis
LIST YOUR
ACTIONABLE
TAKEAWAYS /
CALL TO ACTION
What do you want
people to walk away
with? / Perhaps give
them a call to acPon
Connect the end of
the talk to the
beginning.
CLOSING
CONNECT TO YOUR
INTRO
Let them know where
to get more
informaPon and how
to get in touch /
follow you
MORE INFO
Deliberate Prac<ce
54. Where should you start (what would hook the
audience) and pull them into your story?
What do you want people to leave your talk with?
How could your pracDce it?
EXERCISE
Deliberate Prac<ce
55. • Timing
• Vocal Variety
• Movement / Posture / Stage
Presence
• Speaking aloud for the enDre
duraDon
OTHER CONSIDERATIONS
Deliberate Prac<ce
58. HANDLING NERVES
“A prepared speaker, is a relaxed speaker” - Nate SchuTa
PracPce
Know what to expect (Pme, help, backup)
Breathe
Stand like Wonder Woman for 2 minutes
Acknowledge it… “I’m excited.”
PosiPve Thoughts / Confidence
Cold boTle of water in the palm
Tips:
Delivery
62. Ask during your pracDce for types of
quesDons that came to mind
Know how your quesDons will come in…
Plan for typing delay
Repeat the quesDon
Dont try to answer them all… answer what
helps tell your story. Come back to others.
Q&A
Delivery
63. How do you project confidence?
STAGE PRESENCE
Delivery
69. When you’re in person. There are people to assist
you if something in your environment becomes a
distracDon. That’s not the case online (at home). Plan
ahead.
CONTROL YOUR PHYSICAL
ENVIRONMENT
Delivery
73. Wrap
• Make your slides/videos available. This is your personal
brand. It’s not uncommon to ask for a video example of you
presenDng.
• Ask for feedback
• Do a retrospecDve… don’t skip it.
OTHER CONSIDERATIONS
74.
75.
76.
77. RICHARD TURERE STORY
My invention that made peace with lions
https://www.ted.com/talks/richard_turere_a_peace_treaty_with_the_lions
HEART RATE PUBLIC SPEAKING
Andrew MacDonald
http://bit.ly/2AoRX9w
TALENT IS OVERRATED
Geoffrey Colvin
Where you get your books
PRESENTATION PATTERNS:
TECHNIQUES FOR CRAFTING BETTER PRESENTATIONS
Matthew McCullough, Nathaniel T. Schutta, and Neal Ford
http://nealford.com/books/presentationpatterns.html
REFERENCES
78. • Know Your Purpose & Know Your Audience.
• No amount of effort will make a uninteresDng topic interesDng, but how you
structure your talk, in parDcular the first and last thing you say, is what
separates good from great.
• Stand on the shoulders of giants. Leverage Pa@erns / AnBpa@erns (such as
NarraDve Arc, No AlienaDng ArDfacts, Traveling Highlights) and remember to
tell your story.
@wesreisz
wes@wesleyreisz.com
KEY TAKEAWAYS
80. Wesley Reisz
Chairperson of QCon San Francisco / Plus (Fall)
Co-Host of The InfoQ Podcast
Tanzu PlaAorm Architect/SoluDon Engineer
VMware
@wesreisz
wes@wesleyreisz.com