Author Archives: mamy1326

CfP 駆動で登壇する技術

mamy1326|2021年11月08日
イベント/登壇

バックエンドエンジニア / DBRE の まみー です。

今回は自己流の登壇テクニックを勝手にご紹介します。
カンファレンスや勉強会、登壇してみたいがどうすれば…と思っているかたの背中を少しでも押せたらいいなと思ってます。

CfP 応募から登壇までの流れ

僕が登壇時にやっていることを時系列で紹介してみます。
要件・設計・実装・運用と同じです。

  • 前準備 〜 CfP 応募
  • テキストシナリオ作成
  • テキストリハーサル
  • ハーフリハーサル
  • 通しリハーサル(1回目〜3回目)
  • 馴染ませリハーサル
  • 登壇
  • アフター

前準備 〜 CfP 応募

要件フェーズです。

僕は自信がないので、いつも概要だけじゃなくアジェンダまで書き下して応募します。
が、大抵の場合、CfP には文字数制限がありますので、なるべく簡潔に、かつ伝えたいことを確実に盛り込む必要があります。

  • アジェンダ作成
    • 思いの丈を書き出す
    • 起承転結で構成し直す
    • 必要ならプロローグ・エピローグを設ける
  • 文字数調整
    • CfP 応募フォームの文字数に調整します。これがなかなか難しい…!
  • CfP 応募
    • submit するだけ!

サンプルは コチラ

ここで作った大筋は、大抵変更なく最後まで書き切ることが多いです。今回もほとんど変更していません。
逆にここで何を話したいか固まらない場合はまだブレているということなので、熟成するまで次の機会を待つこともあります。

一番ワクワクしている時期かもしれません。

書いたら勢いのまま申し込みましょう!

テキストシナリオ作成

基本設計フェーズです。

応募したら、熱の冷めないうちにアジェンダの各章の概要を書いていきます。
アウトラインとも言うかもしれません。

  • アジェンダへ肉付け
    • 章の段落分け、概要書き下し
  • コード実行確認
    • 段落に必要なコードの実行と結果(エビデンス)取得
  • エビデンス作成
    • スライドにそのまま使えるよう「テキストで」エビデンス作成
    • 画像だと後で微調整できないのでテキストがオススメ
  • 解説
    • コード・エビデンスに対し、解説するテキストを書く
    • 設計時の技術検証に似ている

ここで書いた内容を通しで読んでみて、起承転結が繋がっていることを確認します。
できれば音読して読んだほうが、より自分に染み込んでくるのでオススメです。

僕の場合、この時点で「実際に話す口調でテキストに落とし込み」を開始しています。
理由は後述します。

また、コードをスライドに書く際のちょっとしたテクニックとして以下を実施しています。

  • VS Code にコピーしハイライターを当てる
  • そのままスライド中のテキストボックスにコピーペースト
    • keynote 前提ですが他でも方法ありそう
  • 色がそのまま再現される

格段にみやすくなるのでオススメです。
また、テキストにしておくと未来の自分が使いたくなった時に便利です。

さらに、コードはまとめて GitHub に上げておくと試聴されたみなさんも使えて便利です。(できていませんが…)

テキストリハーサル

詳細設計フェーズです。

テキストシナリオが一通り出来上がったら、全てが自然に繋がっているかリハーサルします。
ここで大きくズレてしまうと、あとあと合わせるのが大変になります。
実際の開発と同じですね。

  • 脳内リハ
    • まずは頭の中でリハーサル
    • 足りないところを書き下し
  • 声出しリハ
    • 実際に登壇するイメージで声出し
    • 違和感を即座に加筆修正
  • 話し口調でテキスト化
    • そのままスピーカーノートになる
    • これが次の実装フェーズのもと

このプロセスを納得いくまで繰り返します。些細な違和感も徹底して追求します。
ここまでできると、あとはスライドに落とし込み、いよいよ実装です。

見積りが甘いか否かがじわじわとわかっていくフェーズに突入です(震え声)

スライドへ落とし込み

実装フェーズです。単体テストも兼ねています。

どんなプロジェクトも旗印が大事なので、最初に表紙の画像を決めます。
僕はいつも pixabay で探しています。

  • 表紙画像を決める
  • 段落からスライド単位へ落とし込む
    • テキストシナリオそのままスライドとはいかない場合も多い
    • 視聴者の見やすさを意識してできるだけ分割する
  • 話す内容は一言一句書き出す
    • スピーカーノートに口語調で書き出し・内容調整
    • 実はこれがスライドの脳内リハに繋がっている
  • 1スライド〜1章単位で音読
    • 最小単位レベルで音読してブラッシュアップ
    • 繋がりを自然にしていく
    • ここが単体テスト

1スライドでも、矢印を使うなど複数の解説項目がある場合、1オブジェクトごとにページを分け、それぞれに話す内容を分割することもあります。
つまり話の流れを固定してしまうのですが、これが後の実際のリハーサルで活きてきます。
話す時もスコープが絞られていて、迷うことが少なくなります。

段階的に実装が進んだら、次はテストです。

この時点で見積りが甘いとそれが露呈しますが、あえて忘れて次のフェーズへ進みます。進むしかねぇんだ…(震え声)

ハーフリハーサル

中間でのテストフェーズです。

全体の半分ほどが出来上がったら通しでリハーサルします。
この時、ノートPC とモニターを用い、実際に登壇している環境で実施すると効果的です。

  • 時間計測して実施
    • アジェンダの章ごとの時間を予測して計測
  • まずは話したいことを書いた通りに話す
    • 思いの丈をぶつけた上で、つまり要件全体を形にした上で調整
    • 話しながら、できれば5分単位でどこを通過したかメモ
  • 時間配分、後半の流れを掴む
    • この時点でだいたい時間が大幅に足りない
    • 今回は前半で 70 分かかって絶望しました…
  • スライドごとに話す重みをつける
    • 重要なスライド、補助的なスライドが見えてくる
    • 時間調整の基準を明確にし、品質を調整
  • 違和感のある部分、話につまづく部分を徹底してテキスト化
    • 違和感は品質低下のサイン、妥協しない
    • なめらかに話せない=自分のものにできていない
      • テキスト化を徹底

ここが一番繊細な作業になります。
妥協してしまうと品質に影響します。例えば「話したいこと」と「話すべきこと」は違う場合があります。
ここで見極めて、スライドごとに重みをつけ、全体の時間調整の基準を作ります。
結果的に、当日見ていただく方々に伝わりやすい内容になると考えてます。

個人的にはこのフェーズが 1 番ナーバスです。なにせ時間の見通しがまるで立たないことが多いですから…(震え声)

今回の登壇は、奥さんの励ましがなかったら心折れていたかもしれません(白目)

スライドと話したいことが一通り書けたら、いよいよ通しでリハーサルです。

通しリハーサル(1回目〜3回目)

納品前のテストフェーズです。
ここまでくればあとは微調整のみ。
なるべく多くリハして完成度を高めます。個人的な目安は 3 回以上です。

  • 全体が出来上がった段階で実施
  • ハーフと同じように、話したいことを書いた通りに話す
  • 時間配分、後半の流れを掴む
  • ここで長い場合はどこを話してどこを話さないか吟味
  • 違和感のある部分、話につまづく部分を徹底してテキスト化
  • 給水ポイントをスピーカーノートに明記
    • 突如水を飲むとリズムが崩れがち

完成度が上がってくると、徐々に自信を取り戻せます。
また、徹底したテキスト化には良いことがあります。
僕は以前、トークの際に「えーと」「えー」「まあ」が無意識に出てました。
しかしテキストを読み上げつつだんだん自分の血肉にしていくと、それら無駄な言葉が消えていきます。

技術トークに情熱の炎が灯ると、自然と自分の言葉で饒舌になるのと似てる気がします。

ここで初めて「おおお…行けるかもしれない…ッ!」と思い始めます。
抜けられないトンネルはないんだよ!!!!(錯乱)

馴染ませリハーサル

視聴者=ユーザーを想定した要件確認フェーズです。
本当に届けたかったことが出来上がっているかどうかは、今までの流れで常に意識し妥協せず練り上げてきました。

あとは自分の言葉で語れているか、聞きやすいか、進行に無理はないか、などを徹底的に確認していきます。

  • テキストを読まなくても自然に時間通りに話せるようになるまで己に刷り込む
  • 音読と修正を繰り返すことで書いたものを血肉にしていく
  • 録音して部分的に聞き直し、トーン、走り、聴きやすさをチェック

リハーサルを繰り返すことで、書いた内容が自分の血肉になっていきます。
そうなると、テキストを横目程度で、自分の言葉で話せるようになります。

ここまでくるとトークは旋律。楽しくなってきます。
注意点があるとすれば、60 分セッションの場合は日に数時間しゃべり続けることになるので、ノドのケアを大切にしてください。
僕はぺラック T 錠というノドの薬を使いました。B’z の稲葉さんも使っているとかいないとか…

そういえば、いつかの PHP カンファレンス前夜祭でしゃべりすぎて当日声が出なかった伝説の持ち主もいたような…

それは置いといて、ここまで来ると残り時間を横目に動的な調整が可能になってきます。「俺はきっとやれる…ッ!」実感が湧いてきます。湧かないこともありますが(吐血)

登壇

いよいよ本番です。
あとはやるだけです。楽しみましょう!

  • 最初は緊張で落ち着かない
    • 落ち着かないけど直前にできることは何もない
    • 素振りで心を温めておく
  • 話しているうちに自分の世界に没頭するので大丈夫!
    • 最初は声が震える
    • 5 分ほど経過したら集中と没入で緊張を忘れる
  • リハーサル時の時間経過をチェックしながら話す
    • 走る場合は落ち着いて話す
    • 話しすぎている場合は「ヤバければ話さない」部分を飛ばす
    • 時間があまりそうなら「飛ばす予定のスライド」をおまけで話す(あれば)
  • オンラインでもみんながいることを想像する
    • モニターと 1 対 1 の構図になるけど向こうにはみんながいる

リハーサル通りにやれば時間内でやりきれます。
チェックポイントを設けて落ち着いて話しましょう。

やってやるぜ!!

アフター

運用フェーズです。

いただいたコメント、質問などを 1つずつ丁寧に見返し、できる限り回答します。
当日で足りない場合は、アンサーブログを書くこともあります。
オフラインなら、廊下での会話が始まる感じですね。

あとはやり切った気分とともにお祭りを楽しみましょう!

そして今後もブラッシュアップを続けていきます。必要ならスライドの更新もしていきます。
ゆえにこのフェーズが一番長いです。登壇した結果は一生ついてきますので。
実際の開発も運用が一番長いですよね。

配信環境

オンライン登壇はこれからも増えていくと思うのと、僕は完全リモートワークなので環境をいくつか紹介します。
言うほど大袈裟なものではありませんが、リハーサルから登壇まで役立ったものたちです。

マイク・スピーカー

イヤフォン・ヘッドフォンだと耳がすぐ痛くなるので、会議用のスピーカーフォンを使っています。

おそらく音声はクリアにお届けできたかなと思います。

接続する場合は Wifi ではなく有線モードがオススメです。

余談ですが、スピーカーフォンにすることで、僕の場合は耳に話し声が伝わることによる疲れや頭痛、難聴感から解放されました。
オンラインミーティングがストレスなくできます。

ネットワーク

有線 LAN を引いてます。
音声とスライド映像が途切れるのは、見てくださるかたへご迷惑をおかけしちゃいます。
せっかく来てくださったみなさんに途切れることなく視聴していただくためにも有線環境は重要かなと思います。

モニター

ノート PC で時間や進行状況、スピーカーノートを表示し、モニターで実際のスライドを表示します。
1つのモニターでやるより、実際に近い形でリハーサルできるのでオススメです。

おわりに

登壇というとハードル高いな、具体的にどうやればいいのかわからんな、という方がいるかなと思います。
かつての自分もそうでした。
が、回を重ねてみるとなんとなく自分のスタイルが出来上がったりします。

なにごとも手を動かさないと決して形にはなりません。
そして、一度アウトプットを始めると、それが起点となり、質疑応答や更なる深掘りによる次のインプットにつながり、さらにアウトプットにつながり…

つまり、インプットとアウトプットの輪廻が始まると考えています。

一人の力で解決できることには限りがあるからこそ、エンジニアの世界は互助の側面も多いと思っています。
ぜひ今のインプットをアウトプットへ繋げて、互助の世界へダイブしましょう!

そしてこのエントリーが、アウトプットに悩む人の背中を押せたらいいなと思っています。

PHP カンファレンス 2021 で「PHPer が知るべき MySQL クエリチューニング」のタイトルで登壇しました

mamy1326|2021年10月20日
DBRE

こんにちは! DBRE の まみー です。
10/2 (土) 〜 10/3 (日) にオンライン開催された PHPer のお祭り PHP カンファレンス 2021 に参加&登壇してきました。
今回はゴールドスポンサーもさせていただき、例年以上に濃密でした。

2021 年は過去最高の参加人数(登録者数)、2575 人だったようですよ!
各種情報は コチラ にまとまっています。

PHPer が知るべき MySQL クエリチューニング

60 分のセッションで登壇してきました。
お話ししたいことをありったけぶつけたので、興味を持っていただけたらぜひご覧ください。

  • CfP

  • スライド

  • アーカイブ

なんだかんだで PHP カンファレンス本体への登壇は今回が初でした。
ランサーズで DBRE としてやっていることや、課題感、想いなど、実例を交えて赤裸々に語りましたので、感想、指摘、マサカリなど、インプットなんでも大歓迎です。
Twitter などで直接コメント、DM などいただけると泣いて喜びます!

ちなみに「いつも心にマイエスキューエル」こと @yoku0825 さんと トークが被りそうで震えていた んですが、事前に互いのスライドを確認して胸を撫で下ろしたのも楽しい思い出です。

また、当日の配信を担当してくださったスタッフが実は入社したばかりの同僚でした。
挨拶がまだだったので、Zoom の登壇ルームに入るなり「あ、あれ?お疲れさまです!」「というか初めましてですよね?」なんていう一幕があり、かなり緊張が和らぎました。

ランサーズのCakePHP4化の取り組みについて

同僚の金澤さんの登壇です。事前の社内リハも完璧でしたが、5分だけじゃなくもっと聴きたい人が多いと思うので、次は PHPerKaigi かな?(チラッチラッ)

  • CfP

  • スライド

  • アーカイブ

感謝

  • 仲間に感謝
    ここまで形にすることができたのは、エンジニアチームが僕を DBA / DBRE に推してくれたことと、エンジニアみんなが気軽にレビューに呼んでくれたからこそです。
    僕は経験に個人的な考察・検証を加えただけですので、仲間に心から感謝です。

  • 家族に感謝
    業務後にスライドを書き上げ十分なリハーサルができたのは、家族のおかげでもあります。
    おとーちゃんとゲームする楽しみを我慢してくれた我が子と、時間オーバーしまくりで凹んでいた僕を「いや、できるやろ」って励ましてくれた奥さんに本当に感謝です。

  • 運営のみなさんに感謝
    接続チェックから本番、スポンサーツアー、懇親会までオンラインで滞りなく実施できたのは運営のみなさまあってこそです。
    おかげでなんの心配もなく登壇を終え、祭りを楽しむことができました。
    毎年本当にありがとうございます。

  • 視聴者のみなさんに感謝
    Twitter、joind.in、Discord、いろんなところで感想や質問をいただけて、とてもとても充実した時間でした。
    いただいた内容は全て拝読し、密かに感動しておりました。やってよかった…
    ブログエントリーで具体的に感想いただけたのは本当に嬉しかったです。 PHPカンファレンス2021のMySQL関係のセッション2つがめちゃくちゃよかった

CfP 駆動登壇

どうしようかな、やめとこうかな、と思ってたんですが、うっかり CfP が書けてしまったのであとは勢いのままに応募。最終的には思いの丈を語ることができました。
いわゆる今回は CfP 駆動登壇でした。

登壇したいと迷ってるそこのアナタ。

  • 普段のネタをストックしておく
  • 想いとともに熱く書き出す
  • CfP として目次化する
  • 勢いのままに応募する

これだけです!
あとはもう、採択されたらやるしかない。

四の五の迷ってるなら書いて応募しましょう!応募だけなら簡単!(血反吐)

ちなみに、 個人的な CfP 駆動登壇テクニックの紹介 は、別エントリーで書きました。

登壇してみて

いやー正直大変でした。最初は 90 分かかり、これ本当に終わるのかな…と絶望した時期もありました。
でも本当にやりきってよかった。

今まで何年もやってきて形になっていなかった想いも語ることができて、ああこれがもしや DBRE ってやつでは?とスライド書きながら思いました。
まだまだ課題も多く、やること山積みですが、課題の先にまた別の課題が見えることを今後も楽しみつつ、引き続き DBRE やっていきます!