DroidKaigi2018を振り返って、エンジニアコミュニティに関わること

Wantedly Peopleのチームの、たぶんAndroidアプリエンジニアの住友です。
DroidKaigi2018 day2 room1 12:50〜で「アプリを成長させるためのログ取りとログ解析に必要なこと」というタイトルで発表させて頂きました。草の根の勉強会ではちょくちょく登壇させて頂いているのですが、実は50分の枠は頂いたのは今回が初めてでした。内容を詰め込みすぎたのもあって、早口になったり、焦ったりしたところはあったのですが、とっ散らかることなく無事に終えれてよかったと思います。発表後のオフィスアワーでも同じようなことで悩んでいる人や、逆に教えられ知見があり、良い時間だったと思います。

公式のタイムテーブル: https://droidkaigi.jp/2018/timetable?session=16837
発表の資料: https://www.slideshare.net/TakaoSumitomo/ss-87583483

発表の流れについて

今回の発表は「ログを取る」という実装の側面と、「ログをどう活かすか」というビジネス的な側面の2つが入り交じる話でした。実装の話はエンジニアが相手なら特に注意しなくても伝わると思うのですが、ビジネスへの話は流れをどうすればよいか、すごく悩みました。でも、この悩みは早い段階で片付きました。僕がWantedlyにジョインして最初に嵌まったところがまさにそこだったからです。なので、そのときどきに何に悩み、どう対処したかを発表の流れにいれました。

発表の準備について

発表の準備は大変だったことに変わりは無いのですが、それでも以前作った下地があったのでスムーズにいけました。実装に関する話はTechBoosterという技術書サークルで作った薄い本にFirebase Analyticsについての記事を書いたのでそれを下地にしました。ビジネス的な話は技術書典1と技術書典3でWantedly執筆部という社内サークルで作った薄い本に自分がやってきたことを記事に書いていたのでそれを下地にしました。今回の発表はその2つを織り交ぜた構成になっています。
当初の想定では1ヶ月前にアウトラインが決まり、2週間前には資料のβ版ができる予定でしたが、実際はアウトラインが決まったのは2週間前、資料のβ版ができたのは3日前でした。巧く行かないものです。発表の前々日には一人でリハーサルをして時間を測り、56分だったので時間調整でいくつかのスライドを削るなどもしました。

発表の本番

もともと僕は上がり症なのでスライドのメモとか書いてても見ないし、暗記しても本番ではどうせ忘れるので本番で制御するのはほぼ不可能です。なので話す内容を粗方決めたら、スライドの中に見たら何話そうと思ったかを思い出すためのキーワードや強調表示を仕込んで、後はスライドを見ながら流れで話すようにしています。世の中にはアドリブで数時間話す人いるけど本当にすごいと思う。
今思えば最初にコミュニティで発表したのはLTの5分枠で、あれは何話すかを全部暗記してた(しないと余裕でオーバーする)。でも長めの枠で話をするようになって何処まで覚えておくかを調整するようになったと思う(体感ですので個人差があります)。


発表する動機

僕自身、今までエンジニアコミュニティに凄く助けられてきたため、そのフィードバックとして発表するようにしています。それは学生のころ「自分で何かを創りたい」と思っても何もわからなかったところに、独学ながらも知識の源泉となったのはLinuxやMySQL、ApacheといったOSSだったからです。見様見真似でそれらを組み合わせ、失敗し、試行錯誤し、時には公式のフォーラムやIssueトラッカーを見ながら形にすることを繰り返していました。そのときの経験が今、僕がエンジニアとしてご飯を食べていける基礎になっているのだと思います。
もっとも学生の頃は「自分が試行錯誤したことは単なる自分のスキル不足で人の役には立たない」と思い、特にアウトプットはしていませんでした。しかし社会人になり、初めて技術コミュニティの勉強会に顔を出し、懇親会で外のエンジニアと話をするようになると自分が踏み抜いた地雷や試行錯誤について、同じように悩んでいる人がいることに気づきました。またAndroidのフレームワークのように広く使われているものを作っている人達も、実際にそれを使っている人達の声を聞きたがっていたと気づきました。
エンジニアコミュニティに何かの形で返したい、でも、僕は横着の極みなので運営スタッフのようにきちんとする役割は務まらない。だからといって勤勉に新しい技術をキャッチアップして噛み砕いた説明をするのも得意ではない。そこで行き着いた先が、何もないところや地雷原を突破した経験を発表していくというもので、今回の講演の「アプリを成長させるためのログ取りとログ解析に必要なこと」もその1つです。性格的にも手持ちのもので課題を解決するのに試行錯誤するのが好きな性分です。過去のDroidKaigiの発表を振り返っても、当時の自分がどんな課題にブチ当たって、どう解決しようとしたのかが見て取れます。

- 2015 : 開発を効率的に進めるられるまでの道程
- 仕様変更や改修で壊れまくるのでどうにかしたかった
- 2016 : 用途に合わせたアニメーションの実装方法
- デザインやアニメーションを凝るのにいろいろわからなくて困ってた
- 2017 : Viewを動的に変化させるアプローチ
- UIのインタラクションで自由度の高くて安全な実装方法に腐心してた
- 2018 : アプリを成長させるためのログ取りとログ解析に必要なこと[NEW]
- アプリの改修の効果が見えないので見えるようにしたかった

もちろん僕のアプローチには絶対的には正しくないけど特定の問題を解決するためにはそうせざるを得なかったというguiltyなものも多くあります。でもそういうものを含めて発表していくことで、guiltyにならないように、どうすれば良くなるかを考える話のネタになるのかと考えています。
後はそもそも実装を含め技術の話は好きだったり、数少ない僕がドヤ顔で話せる話だからというのもあります。

配布したWANTEDLY TECH BOOKについて

ブースにてWANTEDLY TECH BOOKを配布させて頂きました。記事の内容は技術書典1〜3という技術書オンリーイベントに社内サークルで出展したものを、僕が独断と偏見でモバイルエンジニアに知って欲しいことを抜き出して編纂したものです。
もともと技術書典に出していた動機は、個々のソフトウェアやライブラリの正しい使い方は公式のドキュメントを読めばわかるけど、それをプロダクトに組み込むとき、どんな課題がありどう解決するかは、実際にプロダクトを作っている人でないと書けないと思い、この知見を他のエンジニアと共有したり、意見を聞きたいというものでした。実際作ってみると、書くためにまとめようとして自分の考えをまとめるキッカケになったり、新しい人が来たときに知っておいて欲しいことを伝えるのに便利なことに気づきました。

DroidKaigiに参加された方へ

公式にもある通りDroidKaigiはエンジニアが主役のカンファレンスだと思います。僕も有名な言語やライブラリの正しい使い方の話も聞きたいですが、それよりも個々のエンジニアの方が日々関わっているプロダクトの中で、どんな壁にブチ当たり、どんな地雷を踏み、どう突破したのかという話の方が、僕は、聞きたいです。なので皆さんがドヤ顔で話すドヤリティの高い発表を、次回のDroidKaigiか、DroidKaigiでなくても別の何処かで、聞かせてください。

おわりに

発表の種となる経験をさせて頂いたCTOの川崎禎紀さん、プロダクトオーナーの相川直視さん、Wantedly Visit/Chat/Peopleチームのメンバーの人、ありがとうございました。カンファレンス中、ずっとブースに張り付いてくれた人事の稲生雅裕さん、おかげでTECH BOOKが全て配布できました、ありがとうございます。Androidチームの坂口諒さん、いつも一緒に地雷原に突っ込んだり突破したりありがとうございます&発表お疲れ様でした。同じくAndroidチームの久保出雅俊さん、ブースの運営を手伝ってくれてありがとうございます&今回はCFPが通らなかったけど次回に期待です。忙しい中、TECH BOOKの表紙を作ってくれたデザイナーの青山直樹さん、いつもカッコイイデザインをありがとうございます。DroidKaigiの発表者の方、運営スタッフの方、参加者の方、皆さんありがとうございました&お疲れ様でした。
次回も面白いと思えるネタを提供したいと思います、というか、します。

Wantedly, Inc.'s job postings
Anonymous
Picture?height=40&width=40
5670178c e4a0 4d89 8028 8cff28acb103?1507598684
Eee33b90 bda7 48e3 a126 47257f8627f4?1510640239
72c5371e 3c2e 415e a89c 75bb160eb7cf
F8292373 387b 4c6d 84c7 3980dba8220c?1534123179
34 Likes
Anonymous
Picture?height=40&width=40
5670178c e4a0 4d89 8028 8cff28acb103?1507598684
Eee33b90 bda7 48e3 a126 47257f8627f4?1510640239
72c5371e 3c2e 415e a89c 75bb160eb7cf
F8292373 387b 4c6d 84c7 3980dba8220c?1534123179
34 Likes

Weekly ranking

Show other rankings

Page top icon