2019年3月 1日

黒帯

海外カンファレンスへの登壇を促進する取り組み

  • このエントリーをはてなブックマークに追加
黒帯WEEKの1日目の記事です。カテゴリの一覧はこちら

あいさつ

こんにちは、Androidエンジニアの森です。
ヤフーには黒帯制度という、特定の技術領域の専門家が社内外の技術課題の解決や知見の共有に貢献するための制度があります。
3月1日〜7日は黒帯ウィークということで、各技術領域の黒帯が現在取り組んでいる活動についての記事を投稿します。初日となる今日は、ヤフオク! アプリの開発を行いながら、Androidの黒帯としても活動している私が、現在他のエンジニアと一緒に行っている海外登壇についての取り組みについてご紹介いたします。

現在の取り組み

現在、私は海外のカンファレンスで登壇するアプリエンジニアを増やすための活動を行っています。
なぜそんな活動をしているのでしょうか。
1つは会社の広報のため。カンファレンスに登壇すると、そのセッションについてブログ記事に書いてもらえたり、スライドを見てもらえたりなどを通じて長期に渡っての広報的な効果が見込めます。
もう1つはエンジニアの成長を促してスターエンジニアを生み出すこと。そうしたエンジニアは存在自体が会社の認知を広げてくれるうえ、放っておいても勝手にカンファレンスなどで登壇してきてくれるので、広報的な効果が見込めます。
つまりは会社の広報のためです。
技術分野にもよるのでしょうが、私の専門とするAndroidなどモバイルアプリケーションの分野では、数多くの勉強会やカンファレンスが活発に開かれており、多くのエンジニアが自らの知見を共有しています。私自身もこれまでDroidKaigiYahoo! JAPAN Tech ConferenceKotlinFestDevelopers Summitといったカンファレンスから、Shibuya.apkpotatotipsMix Leapといった勉強会などで発表してきました。
なぜエンジニアはカンファレンスや勉強会で発表するのでしょうか。
私の場合は、次のような理由からです。

自分の勉強のため

エンジニアに求められる技術は時間とともに変化していきますので、自分の市場価値を維持し高めていくためには、継続的な学習は欠かせません。特にモバイルアプリケーションのように変化の速い技術分野では、手に入れた知識の価値も時間とともに急速に減少していくため、意識してインプットを増やしていく必要があります。
カンファレンスや勉強会への参加はそのための手段なのですが、自分の成長という観点でいえば、人の発表を聞くよりも自分で発表してしまったほうがよほど勉強になります。
あるトピックで発表するためには、そのトピックについてしっかりと下調べする必要があります。会場の中で、そのトピックについては自分が一番詳しいと言えるくらいには調査します。そうして調べたことをもとにストーリー立てた発表内容に落とし込んでいくのですが、実は1度のセッションでは自分で調べたことのほんの一部だけしか伝えられていません。
この取捨選択とストーリーへと組み替えていく過程で、調査のなかで得た知識が構造化されていきます。また登壇の緊張感もあってか知識がよく定着します。
そういうわけで自分が勉強したいのであれば、人の発表を聞くよりも、自分で発表したほうが勉強になります。
自らの学習を目的としているため、私はできるだけ毎回異なるトピックについて話すようにしています。

社外のエンジニアと交流するため

多くの場合、カンファレンスや勉強会の後には懇親会が開かれます。
これは別に聴講者を引きつけるために、ご褒美として食べ物やお酒を出しているわけではありません。懇親会はコミュニティ内でのコミュニケーションを目的とした重要な活動の一つです。そのため、懇親会ではお酒ばかり飲んでいないで、できるだけ多くの人と会話をし、他者と知り合うことが推奨されます。
他社のエンジニアとコミュニケーションをとることで、他社ではどのような開発手法を採用しているのか、共通する課題に対してどのように対処しているのか、また複数選択肢のあるOSSのうちどちらを採用していて、その理由はなにかといったことについても情報交換することができます。こうした情報はあまりネットや書籍には載っておらず、実際に会話をすることでしか得られないことも多いものです。コミュニティに参加する意義は、むしろここにあると言えます。
しかし、慣れないうちはなかなか知らない人に話しかけづらい人も多いのではないでしょうか。
身内だけで固まって、ビールを飲みながら周囲を眺めていたりしませんか?
そのような人にも、発表側で参加することが有効です。
発表者はカンファレンスや勉強会のなかでは聴講者よりもずっと目立つ立場です。懇親会では、内容に対する質問などのために向こうから話しかけてくれることも多いでしょう。また、こちらから話しかけたときにも、相手からはこちらが発表者だとわかっているため、身構えられることなく会話してもらえることが期待できます。

技術の潮流を知るため

カンファレンスの個々のセッションから得られる情報だけでなく、カンファレンス自体をメタ的な視点で俯瞰することで得られる情報もあります。
タイムテーブルを眺めるだけでも、現在どんなトピックが注目されているかがわかるでしょう。さらに例年開かれているイベントならば、過去のタイムテーブルと比較してみることで、エンジニアの興味の移り変わりや、モバイルアプリケーションのなかでも変化しやすい部分と変化しにくい部分がわかると思います。
カンファレンスがマルチトラックで開かれ、さらに各セッションの部屋のサイズが異なる場合には、一番大きな部屋に割り当てられているセッションは、運営が事前のアンケートなどをもとに多くの聴講者が見込まれるだろうと考えたものであることが多く、そのため発表者が特に有名な人で無い限り、そのセッションのトピックが特に注目されているものであると推測できます。
先日行われたDroidKaigiではマルチモジュールに関するセッションが4つもあり、また参加者が全員入れる大きさのホールで行われた2つのセッションはともにマルチモジュールに関するもので、モジュール分割によるビルド高速化とDynamic Deliveryや、実際どのような戦略でモジュール分割するかといったトピックに対する関心の大きさを伺うことができました。
Clean Architectureなどのアーキテクチャ関連は根強い人気がありますし、テストについてのセッションはもはや定番です。エンジニアとしての時間投資を考えると、目立ちやすい技術にキャッチアップするだけでなく、こうした長期間通用しやすい技術も並行して押さえておくと良いでしょう。特にテストについては、技術的にしっかりとしたチームになってくるほど必要とされるスキルです。ちゃんと身につけておきましょう。
昨年までは人々の関心を大きく集めていたArchitecture Componentsについては、個々のコンポーネントの紹介にとどまるものはもう少なくなり、それらのコンポーネントをどう活用し、どう設計に反映していくかという展開に移っています。

会社にとっての意味

最近では社員がカンファレンスに参加することを奨励し、支援している企業は少なくありません。
私がカンファレンスに参加する理由は上記のとおりですが、会社がこれを支援する理由はどこにあるのでしょうか。
その理由の一つは広報活動の一環としてというものです。
企業にとって、周囲から高い技術をもっているとみなされることは、自社の製品に対する信頼感を醸成します。また、多くのエンジニアから憧れられるような高い技術力を持つことや、そうした社員が在籍することは、リクルーティングの面でも有利に働くでしょう。それに、社員が能動的に成長したいとカンファレンスへの参加を希望しているときに、それを支援することは、福利厚生としても意義のあるお金の使い方ではないでしょうか。エンジニアの成長を会社が支援することで、成長したいと望む熱意あるエンジニアが会社に応募してきてくれるようになれば、会社にとってもエンジニアにとっても幸せなことです。
ヤフーでも、DroidKaigiなどの国内カンファレンスのみならず、Google I/OKotlinConfなど、個人負担では難しい海外カンファレンスへの参加を支援するトップカンファレンス参加支援制度があり、旅費やチケット代を負担することなく参加することができる制度が用意されています。
このように、エンジニアが高いレベルのカンファレンスに登壇することは、そのエンジニア本人にとっても、また会社にとっても有意義なものです。
そこで私は、黒帯としてエンジニアが海外のカンファレンスに登壇することを支援する取り組みを行おうと考えました。

海外のカンファレンス

私が取り組んでいるのは、海外のカンファレンスへの登壇支援です。具体的な活動内容はあとに回して、まずはなぜ海外のカンファレンスなのでしょうか。その背景には、2017年に参加したdroidcon SFの影響があります。
サンフランシスコで行われたこのイベントは、同地に拠点を置くGoogle, Facebook, Microsoft, Netflix, Pinterestといった名だたる企業から、トップエンジニアがトピックを持ち寄り、知見を共有していました。技術的にもトップレベルの企業のエンジニアたちが、現在どのようなトピックに興味を持っているのか、どのような課題をもっているのか(技術負債の話がいくつかありました)、またそれにどう取り組んでいるのか、そうしたことが伺えて、とても刺激的でした。
その顛末は別の記事に書きましたが、ともかくそこで、自分でもこのようなレベルの高いカンファレンスに登壇してみたいものだなぁと思うようになりました。
カンファレンスに登壇するだけなら国内でもできますが、海外のカンファレンスに登壇する意味は、私は次のように考えています。

トップレベルの基準を知る

ヤフーは「テックジャイアント」と呼ばれるような、世界でもトップレベルの技術をもつ企業たちと肩を並べることを目指しています。
先述のトップカンファレンス参加支援制度も、そのために作られた制度です。
世界レベルの技術力を目指すのであれば、まずその基準がどれだけ高いかを知る必要があります。そのためには、海外のトップカンファレンスのなかでマサカリを投げられながら、高い基準を目指していくのが近道だろうと思います。
マサカリを受けとれるのは、登壇した人の特権です。

英語の学習

登壇することになると、運営や他の登壇者とのコミュニケーションは避けて通れません。また、登壇後には多くの聴講者から何かと声をかけてもらえるようになります。こうして多くの人と英語で会話をしていくなかで、英語に自信がついていくことでしょう。
実際には英語力が身につくと言うよりも、英語で話しかけられても動揺しないとか、どうすれば伝えられるかといった英語でのコミュニケーション時の対処能力が身につくといったほうが近いでしょうが。
どちらにしても英語に対して苦手意識を取り除くことは、エンジニアの成長にとって必要なことです。
技術に関して、公式ドキュメントの多くは英語で書かれています。世の中には日本語の記事も多くありますが、それらは二次的な情報であることがほとんどです。公式ドキュメントとこれらの二次的な情報では、読む目的が異なります。
技術記事からは、技術の適用例やTips、現場での工夫などを知ることができますが、APIの詳細な仕様などはわかりません。公式ドキュメントにはAPIの詳細な仕様が記載されています。そこに書かれていることは、いわば開発者との約束のようなもので、書かれている動作が正であり、そうでなければ不具合となります。また継続的にメンテナンスされています。そのため、記述内容の信頼性には天地の開きがあります。
また、SDKやOSSライブラリのバージョンを更新する際には、変更点を確認して必要ならテストや修正を行うこともあるでしょうが、こういったチェンジログは英語で書かれているでしょう。そもそも、技術記事に関しても英語で書かれているもののほうが圧倒的に多いのですから、情報収集の効率の面からも英語に対する苦手意識は無いほうが良いのです。
英語の学習支援を行う会社もあるでしょうが、それよりも一度海外での登壇を経験させ、会話せざるを得ない状況に身を置かせたほうが、会話できるようになると思います。

楽しい

いろいろと理由をつけましたが、一番の理由はこれです。
いつもと違う環境で英語で登壇することや、海外のエンジニアと交流することは刺激的ですし、そのための準備にもモチベーションが上がります。自分が初めて英語で登壇したdroidcon Transylvaniaでは、参加者はみんな熱心に聞いてくれ、発表の後にはまっすぐな言葉で称賛してくれました。そのように褒められると嬉しいもので、それまで準備のために多くの時間を費やしたのですが、その苦労も一気に吹き飛ぶほどの達成感がありました。
学習しなければという義務感から学習することほど面白くないものはありません。
エンジニアが楽しみながら自信をつけ、成長へのモチベーションを上げてくれれば、これにこしたことはありません。

droidcon transylvaniaの会場
海外のエンジニアとの交流も楽しい

実際に行ったこと

海外のカンファレンスで登壇するアプリエンジニアを増やすために支援しようと決めたあと、実際に行ったことをご紹介します。

自分で登壇してみる

まず同僚に勧める前に自分でもやっておかないと話になりませんから、自分でも登壇して、海外でカンファレンスに登壇することにどんな困難が伴うのか確かめてみました。
AndroidStudyGroupがまとめているカンファレンスリストや、Bugfenderが公開しているカンファレンスリストから、Call for Papersが公開されているものを探して、いくつかのカンファレンスに応募しました。そうして最初に採択されたカンファレンスであるdroidcon Transylvaniaに登壇しました。
初めての海外登壇では、英語での資料の準備に手間どって時間がかかり、また何故か自分のセッションがKeynote speechに知らぬ間に選ばれているというハプニングがあったり、会場ではスピーカーノートが見れない配置がされるというハプニングがあったりしましたが、発表は好評でたくさん褒めてもらえ、苦労以上の達成感と喜びがありました。
海外のスタートアップファウンダーやエンジニアとの交流も楽しかったです。

ClujHubのファウンダーとドライブ
ClujHubのファウンダーとドライブ。楽しかったです

同僚に共同発表者となってもらう

初めての海外登壇の成功で自信がついたので、次にチームの同僚を自分のセッションの共同発表者として話してくれるようにお願いしました。
この方法であれば、話す時間が短くなりますので資料作成の負担も少なくてすみますし、一緒に準備できるため不安感も軽減できるかと考えたからです。
ちょうどDevoxx moroccoという、Javaの大きなイベントに応募していたセッションが2つ採択されていましたので、うち15分のQuickieという形式で話すメタプログラミングについてのセッションの後半5分のライブコーディングをお願いしました。
お願いした同僚は国外に行くのは初めてで、登壇経験も少なく、またライブコーディングということで普通に話すのとは別種の難しさもあり、いま考えると相当無茶なことをお願いしたなと思うのですが、それでもしっかりと役割を果たしてくれました。
Devoxx moroccoではイベント後に登壇者たちが集まって、モロッコのリゾート地を一緒に旅行するという「Speakers Trip」という催しがありました。もちろん一緒に旅行しているのに、ずっと会話に参加せず黙りこくっているわけにはいきません。同僚は最初こそ英語での会話に躊躇していたようでしたが、こうしたイベントを経て、帰る頃には初めての人とも問題なく会話できるようにまでなっていました。
またこうした経験から自信をつけたのか、DroidKaigi 2019にも応募し、無事採択されて登壇していました。

Speakers Trip中の一幕
Speakers Trip中の一幕。焚き火を囲んでの文字通りのfireside chat。寒すぎてみんな焚き火の周りに集まる

海外のカンファレンスに登壇する文化を根付かせる

自分でも2度登壇し、同じく登壇した経験のある仲間もできたことで、現在はもっと登壇者を増やすと同時に知見を組織に蓄積していこうと考え、有志を集めて海外カンファレンスに登壇する社内活動を始めています。
参加したいカンファレンスの調査を行い、それをもとに採用されそうなトピックを話し合ったりしています。
人を集めて一緒に行うことで、相互に共同発表者をつけあうことで初めての参加者でも経験を積むことができやすくなりますし、発表の練習も普段の勉強会の延長線で行うことができます。多くの人に事前に聞いてもらうことで、発表内容をよりブラッシュアップすることもできるでしょう。
こうして楽しみながらコンスタントに海外カンファレンスに登壇する人を増やしていくことで、国内のカンファレンスと同じように海外のカンファレンスにも登壇していく文化がエンジニアのなかにも根付けば良いと思っています。

いくつかのポイント

こうした活動のなかで、いくつか気づいた点についてご紹介します。

スライド作成に時間をかけない

慣れていないうちは、スライドの作成に時間がかかるものです。
さらに有名なカンファレンスだからといって凝ったスライドを作ろうとすると、さらに時間がかかるようになります。特にアニメーションを設定してわかりやすくしようとすると、無限に時間がかかるようになります。業務の合間にこうしたことを行うのは困難でしょう。
それに、アニメーションを効果的にするために話すタイミングを調整することは難易度が高く、本番で緊張している状況では失敗することもあります。その手の失敗はたいてい本人しか気づいていないものなので、別段気にする必要のないものですが、慣れていない発表者はこうしたちょっとしたミスでも慌ててしまい、もっと大きな失敗に繋がることもあります。
このように、凝ったスライドを作成しようと多くの時間を割くことは、労力の割に得られるものが少ないものです。それよりもスライドは簡潔にとどめておき、発表の練習に時間をつかったほうが有意義です。
何度も練習を繰り返すことで話す内容を記憶でき、それによって本番では落ち着いて話すことができるため、良い結果につながります。自分の発表にかかる正確な時間も把握できるため、内容の調整がきくようにもなります。
セッションのメインコンテンツは発表者のスピーチであり、スライドはそれを演出するための道具です。発表内容にあなたしか話せない、聞く価値のある何かがあれば、スライドの質は問題にはなりません。
熟練した登壇者のなかには、スライドを全く使わない人もいます。そうすると、聴講者は否応なく発表者のスピーチに集中することになるので、強く印象に残りやすくなります。発表内容にもよりますが、スライドを使わないという選択肢もあるのだということは覚えておいてください。

スライド作成のコツ

スライドの質は問題にならないと言ったばかりですが、せっかく作るのであればそれなりに良いものを作りたいものだと思います。良いスライドのポイントは、とにかく簡潔であることです。

簡潔なスライドの例
スライドは簡潔に

スライドはセッション中に読んでもらうためのものではなく、発表を効果的に演出するための道具ですから、スライド内にはその時点で聴講者に見てほしい要素だけを載せ、それ以外の要素は全て省略したほうが良いでしょう。例えばセクションタイトルやページ、フッターなどは全てスピーチには不要なものです。
また、スライド内に話したい内容をすべて載せることはおすすめしません。聴講者が話を聞くよりもスライドを読むことに集中してしまうと、あなたが話す意味がなくなってしまいます。そのため、各スライドに載せるテキストはごく最小限のキーワードだけにして、話しているあなたに視線が集中するようにしたほうが良いでしょう。
テキストを最小限にすることの利点は他にもあります。テキストが少なければ少ないほど、フォントサイズをより大きくすることができます。すべての会場が最高の環境にあるわけではありません。会場が明るすぎたり、広さに対してスクリーンが小さすぎたりして、後ろの席からはスライドが見づらいこともあります。
そのような会場ではスライドのフォントが小さすぎると、聴講者からは読みとることができません。ひどい場合には、スライドを諦めるのと同時にセッションを聞く気までなくしてしまう可能性さえあります。

droidcon transylvaniaの会場
droidcon transylvaniaの会場。このような会場でもスライドのテキストが読めることが理想

スライド中のコード

技術カンファレンスで発表するとき、スライド内にコードを載せることは良くあります。
コードを見せることによって、どのようなロジックで動くのか、どのように実装すればいいのかを効果的に伝えることができます。
問題は、コードはすべてテキストであるということです。コードをそのまま全て載せてしまうと、スライドがテキストだらけになってしまい、可読性が非常に悪くなります。そのため、スライドにコードを載せるときには、いくつかの工夫が必要になります。まずシンタックスハイライトを使いましょう。それによりコードの構造がわかりやすくなります。SlidesCodeHighlighterを使うと、コードをハイライトした設定のまま指定したフォントサイズでスライドにペーストできるため、とても便利です。また、聴講者が見なくてもいい部分は、たとえそれがないと実際には動かないとしても、バッサリと切り捨てて、見たときのわかりやすさを優先すると良いでしょう。さらにその時点で見てほしいところだけハイライトして、それ以外はグレーにするなど、とにかく聴講者がどこを見ればいいのか迷わないよう意識するようにしましょう。

スライドにコードを載せる場合の例
スライドにコードを載せる場合の例。このときどこを見てほしいのかすぐに分かる。

発表者ノート

まだ慣れていない登壇者にとって、発表者ノートは大きな安心感をもたらしてくれます。練習中に時間を計測して内容を加減する際にも、発表者ノートがあれば加筆や削除がしやすくなります。また練習時に指摘を受けて内容をブラッシュアップしていくうえでも、発表者ノートを修正すればよいため、たいへん便利です。
ただし、本番では発表者ノートに頼らないほうが良いでしょう。
そもそも全てのカンファレンスで発表者ノートが読めるわけではありません。カンファレンスによってはPCが発表場所から少し離れているために、発表者ノートが読めないということもあります。発表者ノートに頼りきっていると、会場についてからそれが発覚してしまった場合に対処ができません。また、発表者ノートを読み上げるだけのセッションは味気なく、あまり面白みがないものです。
最初のうちは仕方がありませんが、できるだけ発表者ノートを読まないように練習をしておくとよいでしょう。

最後に

自分が行っている、海外カンファレンスへの登壇支援の取り組みについてご紹介しました。
海外のカンファレンスで登壇することは、個人では経済的にも労力としても負担が大きく、会社の支援がなければなかなか難しいものです。
こうしたなかエンジニアの海外登壇を支援する企業が増えてきていることは、とても喜ばしいことですし、エンジニアにとって成長のチャンスでもあります。得難い経験を通してエンジニアとしての自信を身につけ、さらなる成長へのモチベーションを高めて、自分の市場価値を飛躍的に高めることができます。
繰り返しになりますが、ヤフーにはトップカンファレンス参加支援制度があり、経済的な負担を負うことなく海外のカンファレンスなどに参加可能な制度が用意されています。
海外のカンファレンスに参加したい、登壇してみたいという場合には、ぜひ当社の門をたたいてみてください!

Yahoo! JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。

  • このエントリーをはてなブックマークに追加