Public speaking has to be one of the most challenging things I have done as a professional software developer and open source hacker. It comes with many rewards, and can be a lot of fun, but is also a tremendous amount of work. Whether I’m speaking to a group of 5 or a crowd of 500 never mattered that much to me, the joy of exchanging ideas remains the same.
I never really thought I’d be in the position to be a part of something interesting enough that other people I don’t know would want to talk about it. But as it turns out, Prawn seems to have made it into that category. Those who know me might understand that is is a bit surreal to me.
If you choose to give a talk on Prawn, I imagine that at least part of your goal is to promote the project and in turn, lead new users to us. What follows are my thoughts and suggestions on how to maximize that effect, while improving the overall quality of your talk. These ideas are not meant to be rules for you to follow, or advice from some higher authority. Instead, they’re conversation points, so if you disagree with anything I say here, just let me know!
At a bare minimum, you only need two things: A bit of moxy and some confidence that what you’re saying isn’t a load of bullshit. Without these things, you’ll regret even getting up in front of people to speak.
However, you’ll give a much more useful talk and be better prepared if you set the bar a little higher. Ideally speaking, it’s best to work with some code that you wrote, even if it bares some similarity to the examples already out there. This way, you can be sure that you at least understand what you are presenting, and you are also providing new content that didn’t exist before your talk.
Of course, some times, a simple project show-and-tell is reasonable, especially if you’re at a local users group and basically just demonstrating Prawn (or whatever project) to your buddies because you just found it the other day and thought it was cool. But if you do this, don’t bother creating a slide deck. Download some of our examples, and actually run them on your machine. This will come in handy later on when people approach you and want to try out ideas. It will also help make sure that the code you’re demonstrating actually runs on the latest versions of Prawn. As with any pre-1.0 project, this is something you definitely need to verify. We try to keep things up to date, but plenty does slip through the cracks.
I know, live coding can be scary, and if you suck at it, you’ll bore people. But if you don’t have at least a tiny bit of original content, and you aren’t willing to do a live demonstration, you’re probably not offering much in the way of value. In these cases, post a link or two somewhere instead, or tweet the URL for the Prawn website. This way, those who are interested will get the exact same information, but from the source.
Keep in mind when I say ‘original content’, I don’t mean that you need to do something earth shattering. I just mean there should be something in your talk that adds value to the resources it references. I can think of about a thousand different ways to write “Hello World” in Prawn. Pick one that hasn’t been done already, roll with it, and you’ve got the beginnings of a good lightning talk. Repeat this process a few more times and you’re on your way to producing a full length presentation.
No matter how much you study the documentation and the articles, you won’t know how to answer people’s questions if you don’t have some practical experience with the library. Even if you find an article I’ve written where I discussed some features in more detail than what the API goes into, you won’t know the subtleties without actually making use of the code it discusses.
A way to help ensure that you don’t get stuck in a rut of contrived examples with little depth, is to propose a fairly specific topic. Don’t talk about “Prawn: Fast, Nimble PDF Generation for Ruby”. Instead, talk about “Practical Invoice Generation in Ruby using Prawn”, or “Using Prawn for Business Reporting”, or even “Ten Things You Didn’t Know About Prawn”. Have a specialized topic, and it will be a lot harder to turn your talk into a mundane feature list, or a carbon copy of an article I wrote.
If you want to run your ideas by me for some feedback, just shoot me an email. There are some topics that if done right, will really show off the benefits of Prawn. Others go down a much more bumpy road, and I might be able to quickly help identify dead ends based on what’s available in Prawn. Because every talk on Prawn obviously can benefit the project, I’m more than happy to help out in any way I can.
Giving a presentation always involves some work. Though you may luck out and find an audience that appreciates a slide deck that has 100% of its contents pulled from code samples I’ve written, you’ll be much better off if your talk has some originality to it.
It’s possible to give a good talk without creating your own content, but much harder to pull off on average. But that doesn’t mean you need to be a creative genius to give a good talk. Find a problem small or large that interests you, solve it, and focus your presentation on telling folks how you did it. If you can pull that off, I’ll be first in line to help you work through rough patches in preparing your presentation, and also the first to promote your talk once you’re ready to give it.
I’m not sure what people will think once they read these ideas, but I hope that they’re at least helpful to some. It all boils down to the oldest speaking advice around “If you’re going to give a talk, make sure you have something to talk about.”
But that’s enough from me… what do you think?
Written by Gregory Brown on 2009.02.10 at 14:20 | Responses