無限大な夢のあと

テニスとアニメが大好きな厨二病SEのブログ

Scala関西Summit 2017にスピーカーとして参加させて頂きました! #scala_ks

summit.scala-kansai.org
関西のScalaの祭典、Scala関西Summit 2017に参加して来ました!
また、今回はありがたいことにスピーカーとしての参加でもありました。

www.slideshare.net

東京に住んでる私が今回参加スピーカーとして参加させて頂いた経緯及びその結果についてお話したいと思います。
他の方のセッションの話やスピーカーの方々と前泊した話、懇親会/2次会の話は以下のブログにまとめました!
dke-msy-node.hatenablog.com

また。この文章は個人の見解であり、所属する組織の公式見解ではありませんのでご注意ください。

スピーカーに応募させて頂いた経緯

自分が現在所属しているセプテーニ・オリジナルが今回Scala関西Summit 2017のプラチナスポンサーをさせていただくということで、招待枠を頂けるので会社で交通費/宿泊費を負担するので、希望者のうち3人は参加可能という話がSlackで告知されました。

この交通費/宿泊費が会社負担ということが一つチャンスだと思いました。
自分自身の今年の目標として、個人・会社のブランディング/採用の促進のためにカンファレンスの発表を複数回行いアウトプットすることを掲げていて、Scalaでもどこかのタイミングで挑戦したいと思っていたからです。
Scalaの発表は今までのいろんな方の発表を今まで見てきていて敷居が高いと感じていたのですが、Scalaの大きなイベントはScalaMatsuriを除くとそう多くないので、まずは今回のチャンスでもあるScala関西2017へCFPを出してみようと思いました。
(さすがに自腹で関西まで遠征して発表するところまでは踏み切れていませんでした。。)

発表資料のテーマについて

いざCFPを出すとなった時にどのようなテーマで出すかについて、非常に悩みました。
JJUG CCC Spring 2017で「グラフデータベース入門」というテーマを採択していただき、発表させて頂きました。

www.slideshare.net

こちらはいくつかCFPを出した中でのいわゆるニッチ戦略を取ったもので、自分自身がR&Dプロジェクトでグラフデータベースの経験があったので他の方があまり経験がないテーマなので、もしかしたら採択されるかもしれないという想いを持っていました。
結果的に採択して頂き、発表はさせて頂いたのですが、自分自身の中で一つだけ疑問がありました。
個人や会社のブランディングのために発表はさせていただくのはわかるのですが、このテーマの発表で果たして発表は促進されるのだろうかと。
自社コミュニティの告知は行えはしましたが、そこからどれくらいコミュニティの勉強会への流入があったか。
また、発表のようなアウトプットを行うことで自分自身の技術力を高める目的もあったのですが、入門内容の紹介ということで現在高めたい技術であるScalaやSwiftのコーディングに直接関係ないものになるので、果たして今優先順位的に時間をかけるべきだったのかという想いもありました。
(もちろん発表させて頂いたことで、新人研修の時の講師だった方、インターン時代の友人、前職の後輩も観に来てくれてお話できたことや今回のScala関西Summit 2017で資料観ましたよーとお話してくれる方もいて、メリットは非常に大きかったです。)

そこで今回はScalaやSwiftのコーディングに直接関係あるもので、今回もニッチ戦略としてCFPにうまく採用されるようなテーマを考えた結果、
iOSエンジニアのためのScala入門(あるいはScalaエンジニアのためのSwift入門)」とすることを決めました。

もちろん、グラフデータベースにScalaを絡めるケース自体も考えたのですが、Scala自体の学びよりグラフデータベース側の学び中心となる割合が大きくなると思い、CFPを出すのは(記憶が正しければ)やめたはずです。

今回採用して頂けて本当にありがたかったです。
Scala関西Summit 2017のスタッフの方々、本当にありがとうございました。

今回の発表にあたって自分が解決したかった課題

いざCFPを採用して頂いて嬉しかったとともに、Scalaのカンファレンスで発表するにあたって、一つ自分自身の中で解決したい課題がありました。
その課題というのは、入門者向けセッションにおいて実際に参加している入門者を置き去りにしないことです。
(あくまでも個人の感じた範囲であり、事実とズレもあるかもしれませんし、もしに不快に思って頂いた方がいたら本当に申し訳ございません)

もちろんScalaのカンファレンスに参加するくらいなので、参加者としてもある程度プログラマーとして経験値があったり、趣味でScalaを書いていたりする人が参加するものかもしれないので、他の経験値で補うことができるので、そのような配慮は必要ないかもしれません。

ただ、他言語経験者でScala自体は触ったことはないけれど、勉強したいという方は一定数いるはずという想いもあり、そのような方でも置き去りにしないような形で発表できたら自分が参加者だったら聞きたいなと思い、作り始めました。

発表資料を作ってみて

一旦、仮で作成して社内練習会で発表したのですが、この発表で「ここだけは一番押さえて欲しいところはどこであるか」と聞かれた時に、自分自身としてはScala/Swift両言語をクイックツアー的に捉えてもらえるのが意図としてあったのを改めて自覚ができたので、そちらの方に梶を切って資料の修正を行いました。
(もしかしたら、この時点でもすでに内容は薄くなっていた可能性はあります。。)

ただ、入門者を置き去りにはしないコンセプトを作るにせよ、Scala自体の経験者でも学びがあるように作るにはどうすれば良いかも考えました。
ですが、コードの書いている時間がScala < Swiftで、Scalaの経験が少ないこともあり、途中でツッコミが起こりそうなトピック(Genericsなど)を取り扱うかを悩み、結果ツッコミが怖かったことと発表時間の関係で削っていた結果、現在の資料の形に落ち着きました。
その結果、クイックツアーで入門者を置き去りにはしないのですが、どちらかの言語を経験している方からすれば文法の比較の紹介に留まってしまう内容になりました。また、ツッコミが怖いところを落とした結果、プログラミング入門者向け近くまでの内容の薄さになってしまいました。

この時点で発表資料として、以下の問題があると自分の中では考えていました

  • 途中でツッコミが起こりそうなトピック(Genericsなど)を取り除いた結果、プログラミング入門者向け近くまでの内容の薄さになっていないか。
  • クイックツアーと言いつつも学べることに偏りがあり、聞く人側の視点で作れていないのではないか。
  • タイトルと発表資料の中身が乖離していないか。

実際に発表を行って

やはり発表したあとに、周りの聞いている方の反応的にやらかしてしまった感があったのですが、そのあとにScala関西Summit 2017のハッシュタグで、セッションを聞いていた方がコメントくださっているのを見て、自分自身の杞憂でなかったことを実感し、改めて発表の難しさを痛感しました。

今からテーマを変えられるなら、「他言語経験者がゼロから始めるScalaとSwift入門」と言ったテーマが適切な気がします。
個人的には、自分ができたこととして、ツッコミが怖くても取り扱いを行うべきだったと実感しています。
あと、完全にScalaエンジニアばかりが多い中で、iOSエンジニアのため~というテーマで書いていたものの、Swift、Scala両方の人にもわかるものという追求をしてしまったのもよくなかったです。。
(ただ、スタッフの方でiOSはそれなりにやっていて、Scala詳しくないという方は勉強になりましたと言って頂けて嬉しかったです!)

今後のアクション

今週の9/16(土)に、iOSDC JAPAN 2017で、「動画コンテンツにおいて、バックグラウンドの音声との制御でつまづいたところ」というテーマで発表します。
iosdc.jp

iosdc.jp

上記で発表するにあたり、以下を意識して今回の学びをぜひ活かしたいと思います。

  • 聞く側の視点を意識して作る(この発表を聞きにきてくれる人は何を期待しているのか)
  • ツッコミどころがある程度来ることを覚悟して資料を作る(他の人からのツッコミも新たな学びに繋がるので、逃げない)
  • タイトルから中身を乖離しすぎない(乖離しすぎる時は発表前にタイトルを変えるなどの対応を行う)

実際には次の発表は実際に業務でつまづいてどのように解決したかを発表する内容なので、今回とケースは違います。
ただ、上記の学びを活かせるはずなので、その上で堂々と発表したいと思います。
もし、ご参加される方はセッションを聞いてくださると嬉しいです。

という珍しくスピーカーの中の人の舞台裏?の話でした。
今後カンファレンスなどで発表したいと思う人が読んでくれて、少しでも参考になれば嬉しいです。

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)

Scalaスケーラブルプログラミング第3版

Scalaスケーラブルプログラミング第3版