Grant Boughton December 18, 2019
One of my first assignments at Nuvalence was to create a workshop for a client to explain how to best use serverless computing, specifically Amazon’s serverless offering, Lambda. This is something we’re often asked to do for clients, so I’ll share some advice. There are countless methods of creating an effective workshop. I’ll be explaining my approach in the context of making a workshop about serverless computing. In this blog post, I’ll go through my process to provide some guidance and tips for effectively conveying technical information.
Keep your audience in mind
The most important aspect of designing a workshop is to always keep the audience in mind. You need to make sure that the content in the workshop is appropriate for most potential attendees. In my case, I knew a portion of the audience would be developers. Based on my experience, the most important thing to developers is a simple question, “what do I need to do differently when it comes to serverless?”. So I knew the best way for them to absorb this new information was by comparing and contrasting Lambda with technology they’re already familiar with. However, there would also be non-technical individuals in the audience who don’t necessarily have the background knowledge needed to compare and contrast two technologies. It’s important to provide the necessary context, such as terminology, for those who need it. At the same time you don’t want to risk boring the technical crowd with a ton of information they already know.
Consider the different groups within the audience
Filter background information for what’s crucial for everyone to know
Research, research, and
You need to have a good understanding of the material in order to explain it effectively. In addition to being knowledgeable about the concepts you’ll cover, it’s important to know what resources are available for related topics outside the scope of your presentation. For example, if an attendee did some research before your workshop and asks a question about a topic you didn’t cover, you should be able to guide them to resources that will answer their question.
Being familiar with the resources available can also help you anticipate questions people may ask. Before starting, I worked with another Nuvalence developer to create a list of important topics to cover based on our experiences using Lambda, as well as questions clients often ask. This provided a good outline for how the presentation would eventually be structured. At this point, I would recommend taking as many notes as possible. You should have all the information you need to work from later available in your notes. At the same time, having a lot of notes isn’t helpful if you can’t find anything, so it’s important to keep organized.
In my experience, the best sources come straight from the company which developed the software/service. Reading through FAQs, best practice documents, and “getting started” pages provided a bulk of my information. I also found that talks from AWS re:Invent were good sources of information for more advanced aspects of serverless computing. Many of the talks had helpful information that I could include in the workshop (ex. Become A Serverless Blackbelt – Ajay Nair, Deep Dive on AWS Lambda – Vyom Nagrani).
Familiarize yourself with documentation and learning resources
Decide what important questions your presentation should answer
Decide what’s important
At this point, you should have a deep understanding of your topic, but that isn’t what the audience needs. Here’s when it’s important to think about your audience. The goal for my audience was to know enough to create a basic Lambda and set it up to be triggered by a couple of AWS services.
A developer should understand the actual code they’re deploying to Lambda and how it’s different from what they are writing now. A product manager or other less technical role doesn’t need that information but should still be able to get the same end result. In addition to the Lambda-specific information, I also needed to include enough context for the best practices to make sense. An effective presentation should provide enough relevant content so that the audience can meet their learning goals without losing track of what’s important.
Determine what information is necessary to answer important questions
Include some extra background information for context
Make the presentation
At this point, you should have gathered all the information that you expect your audience to know by the end of the workshop. Now all that’s left is to put together your slideshow, activity, speech or other chosen means of presentation.
When figuring out how to best present the serverless workshop, I found it helpful to think about the end goal. I decided a guided workshop would be best so the audience can get hands on experience using the AWS Console as they will need to do in the future. In addition, I chose to preface the workshop with a short presentation explaining key terminology, best practices, and how Lambda works under the hood.
Using serverless functions and understanding them are two different things, so giving a deeper explanation of the runtime helps to set context for some of the best practices I shared. These methods of presenting may not work for every case, so it’s important to find what works best for your audience and goals.
Find a presentation format that aligns with your goals
Engage the audience with an activity or exercise for hands-on experience
Structuring the presentation
When putting together a presentation it’s important to have a cohesive story or at least some sort of progression. You’ll want a steady increase in the complexity and depth of knowledge you’re presenting.
In the case of the serverless workshop, I started with a simple “what-if” question that Lambda would solve, “How can you deploy a cloud-native application that is infinitely scalable and makes efficient use of resources and infrastructure?”.
Starting with a question gets people thinking and provides a common entry point for all attendees because they are able to think about the problem in a context they understand. Then I slowly ramped up to explain some high-level features of Lambda and how that solves the question posed at the start. From here I continued to ramp up and explain more complex concepts.
With this format, one challenge I faced was dealing with topics requiring conceptual knowledge of a more advanced concept that I wanted to cover later in the presentation. In this case, I chose to briefly introduce the more complicated topic with the caveat that I would explain it in detail later. Given the linear nature of the presentation, the audience can’t go research things they don’t understand and gain context on their own, so you’ll often need to refer to other parts of the presentation, either past or future. This may seem strange when you could just reorder your presentation but you don’t want to sacrifice the story and progression.
Once I finished organizing all of my slides, I wrote a script for the presentation. I don’t know if I would recommend doing that for everyone, but planning out what I would say made it easy to tell if the slides flowed together well. Practicing the scripted presentation in front of my co-workers with experience presenting was also very helpful. They were able to provide valuable feedback on the overall flow and story, as well as more specific instances where the presentation was lacking.
Start with a question
Slowly ramp up to more complex concepts
Refer to different sections of the presentation if needed
Practice to make sure the presentation progresses well
Hopefully, now you have a better sense of how to approach creating a technical presentation. I’ve included a link to my presentation if you’d like to see the end result. Here are some key points you can take away from this blog post:
Always keep your audience in mind
Make sure to include only relevant information
Keep track of the goal of your presentation
If you have any other tips for effectively sharing knowledge please feel free to leave a comment.