There are two types of people: producers and consumers. Producers make things that consumers use. We as software developers are both - we build software using software. We also create and consume information: books, blog posts, and conference talks, to name a few.
I recently gave my first conference talk at wroc_love.rb in Wrocław, Poland. We’ve had good success with refactoring a complicated form to a form object, and we wanted to share this knowledge. There are many blog posts that mention form objects, but we found that they only gave an overview of what they are and didn’t go into as much detail as we wanted.
Some of the best talks for me go into detail on a specific topic with lots of examples. Attila Domokos’ “Simple and Elegant Rails Code with Functional Style” is one example, and I wanted to emulate that style of deep diving.
Two great resources were http://speaking.io/ for how to give the talk and reveal.js for the presentation. Reveal.js was super simple to set up, and it let me use Markdown for the content. These constrained me to keep the slides basic and not get caught up with all the fancy features of typical presentation software.
My goals were to draw the audience into why one would want to use a form object and to be (somewhat) entertaining. I framed the talk around a scenario of building a form that needs to persist to multiple database tables, and then adding a feature to it to show how quickly complexity appears with the Rails default ways of making multiple model-backed forms. I’d then show the refactored version that used a form object and how much simpler the same new feature was to implement.
Of course, I had to include some silliness as well. Because Internet.
I was nervous about the talk. I thought I would talk too fast, that I would forget everything, that nobody would pay attention and have any questions, that I would be a failure. There were a lot of psychological barriers, but I figured I should just keep going - preparing the code, the slides, the content. My coworkers were a big help, giving me support, feedback, and accountability. After all, I couldn’t back out when everyone I work with would know about it.
There were about 100 people at the conference, mostly local developers, but I heard a few American accents. I spoke on the second day so there was time to incorporate some of the information from the initial talks into mine. We had plenty of coffee and slow wifi, just like every other conference I’ve attended.
Well, it was finally time. I plugged in my computer, set up the microphone, got introduced, and proceeded to rip through my slides at lightening speed. Nerves and tunnel vision do quite a number on ones perception of time, and as Mike Tyson says, “Everybody has a plan until they get punched in the face.” Good thing I had my notes as I could read from those. It was also incredibly important that I went through the talk numerous times, adding notes each time and getting more comfortable with the material. The difference between my first run-through and the last was night and day.
And then I was done. There were a few questions, some definitely because I spoke too fast. After some applause, a dozen audience members came up to the podium to ask more specific questions. We ended up digging through the code of the sample application. Everyone was very nice and we had some good discussions. It felt good to know that the content resonated enough to talk to me.
Here are the slides. I will update this post with a link to the video once it’s posted.
Lessons Learned and Next Steps
- Talking to Michael Feathers about pierogi; amazing.
- If you’re conference traveling, watch for jet lag; creeps up quickly.
- It’s going to happen so just keep moving forward.
- A support network is invaluable.
- Talk even slower than you think you need to.
- Practice, practice, practice.
- People are nice, they want you to succeed, they’re cheering for you (inside) so don’t be afraid of them.
The questions I received while practicing with the team here at Sharethrough provided a lot of good feedback for the content, so I know that the next time will be a much stronger presentation. Plus I will be less nervous (but still nervous) and can present the material more slowly and effectively.
I can now say that I’m a conference presenter. It feels good, but there’s a lot of room to improve. To that end, I’ve submitted the talk to more upcoming conferences, so hopefully you’ll be able to catch the presentation.
It was a great experience, that I recommend to everyone. We’ve all have hard-fought experiences that we can teach others. I’ve done a conference talk and so can you.