Skip to main content

Public speaking: lessons learned

I’m on the train going home from Gliwice, where Quality Excites conference was held this year. I was giving Testing Microservices Architecture talk here and it was my biggest event so far. Over the past few months I was fulfilling my personal goal, which was to participate in IT events as a speaker. I started as a complete beginner, and despite I still consider myself as one, I manage to gain some experience and learn important lessons.


Busting stress 

Stress is on the top of the list of obstacles to speak in public. There’s no silver bullet – you gonna face it. Before my first talk, I catch myself asking question: What am I doing here, waiting to give a talk in front of 100 people? Stress can symptom physically – in muscle tensions, headaches or anxiety, and mentally – mostly in run away feelings. It’s a standard body response, and there are some practices to fool your body and reduce those symptoms. I usually felt it only before walking on stage. After I start speaking, stress leaves and I felt comfortable. More events I attend, less stress I felt, and it’s now rather motivating than numbing.

Preparation 

If you’re beginner like me, important thing is to be prepared in 110%. It means not only to make some fancy slides. I always try to practice whole talk few times. First of all, it gives you more confidence – during final talk you would have some some schemes already framed. Second thing is time management – going beyond timeframes is far from professional. I learned to set time checkpoints – if during the talk you’re 10 minutes late comparing same slide at the practices, it means that you’re already short on Q&A time. I like also to know details like microphone type (to hand or on the head), or if the slide switcher would be present.

Feedback 

Good idea is to get feedback from participants. But be careful here: opinions may vary and be non-deterministic. As many listeners, as many expectations and experience. Giving exactly the same talk on two different meetups, I received opposite feedback – at first I heard that my talk is far too technical, and secondly that talk was great but too little of tech details. I learned that you can’t satisfy everybody, especially when you bring up technical subjects, when reception depends more on bare knowledge than subjective opinions. There is although some reliable factor informing whether your lecture hit – number of questions and listeners approaching you after the talk. Best reward for me is to see excited people surrounding my desk and asking some curious questions and sharing their experience, which is also often very inspiring and instructive.

Maintaining interaction 

Giving lecture doesn’t mean you have to do a monologue. Maintaining interaction and activating audience can be often hard, but will benefit in better talk’s reception. One of the best ways to activate listeners is to ask the questions. Remember though, your goal isn’t to prove that you’re an oracle, but to get the answers, so questions should be rather light. Second tip – practical one – is to make pauses. If during the talk you suddenly pause for few seconds, people would be alerted and you’d gain attention. I also like to introduce problems and ask questions, and then working out solutions, which gives the audience feeling of participation in it.

Summary 

Public lecturing is demanding, and it’s based now on firsthand experience. As a beginner, I not only admire, but also learn from watching more experienced speakers and attending events for my own. On the other hand it’s also confidence and knowledge building experience, so I look forward to participate in upcoming events in future.

PS: Honestly, every event I attend as a speaker was great, but I want to thank especially Quality Excites – for excellent organisation, and KraQA – for nailing atmosphere and good beer afterwards (not mentioning the venue)!

Popular posts from this blog

Testing Asynchronous APIs: Awaitility tutorial

Despite the growing popularity of test automation, most of it is still likely to be done on the frontend side of application. While GUI is a single layer that puts all the pieces together, focusing your automation efforts on the backend side requires dealing with distributed calls, concurrency, handling their diversity and integration. Backend test automation is especially popular in the microservices architecture, with testing REST API’s. I’ve noticed that dealing with asynchronous events is particularly considered as challenging. In this article I want to cover basic usage of Awaitility – simple java library for testing asynchronous events. All the code examples are written in groovy and our REST client is Rest-Assured. Synchronous vs Asynchronous  In simple words, synchronous communication is when the API calls are dependent and their order matters, while asynchronous communication is when the API calls are independent. Quoting Apigee definition: Synchronous  If a

Rerun Flaky Tests – Spock Retry

One question I get asked a lot is how you can automatically rerun your test on failure. This is a typical case for heavy, functional test scenarios, which are often flaky. While test flakiness and its management is crucial and extensive matter itself, in this post I want to give a shout to the extremely simple yet useful library: Spock-Retry. It introduce possibility to create retry policies for Spock tests, without any additional custom-rules implementation – just one annotation. If you are not a fan of Spock testing framework and you prefer JUnit – stay tuned! I will post analogous bit about rerunning JUnit tests soon. Instalation  If you are an maven user, add following dependency: <dependency>       < groupId > com.anotherchrisberry < /groupId >       < artifactId > spock-retry < /artifactId >       < version > 0.6.2 < /version >       < type > pom < /type >   </dependency> For gradle users:

Performance Testing – Vegeta Attack!

Performance testing is crucial field of modern software development. Taking into account that in today’s world majority of app’s communication is web-based, it turns out to be even more important. However, it still enjoys less interest than automated functional testing, and publications on load testing subject usually focus on mature and complex tools like JMeter or Gatling. In this post I’d like to introduce command line usage of a super simple and lightweight tool for performance testing of HTTP services, which is Vegeta. Who is Vegeta  Besides Dragon Ball’s character, Vegeta is a simple load testing tool written in GO, that can be used both from command line and as an external library in your project. In order to use Vegeta, download executables from here . It is recommended to set environment variable for ease of use.  For Mac users, you can download vegeta directly from Homebrew repositories: $ brew update && brew install vegeta Vegeta’s Arsenal  Usage