ポエムです。元々書きたかったエントリがあったのですが、長くなってしまったのでパーツ毎に切り出します。
自分のやりたい方向性やキャリア的なものを考えると、大体その中心には「データ」がいます。データに対してどう向き合い方はいくつかパターンがあると思います。
- データを生成する
- Webで言えば、アプリケーションエンジニアがここに該当するのかなと思います
- ユーザーの活動をログとして記録する
- データを蓄積する
- 生成されたデータを継続的に蓄積していきます
- SREやデータ基盤を整備する人がここに該当するかなと思います
- データを活用する
- 貯蓄されたデータを使って意思決定に役立てたり、データからの未来の予測をします
- データサイエンスやR&D的なものはここに該当するかなと思います
この3つに対して、これまで自分がどう向き合ってきたのか、これからどういう風になっていきたいのかをこのエントリでは整理してみます。
データと自分のこれまで
上に挙げた3つの観点で、これまで自分がある程度やってこれたかなと思うのは「データを活用する」と「データを生成する」の2つです。
データを活用する
何だかんだでここが一番長いし、一番の得意分野もここかなと思います。
- 大学院時代やNTT CS研での研究活動
- テキスト(自然言語)を対象として、基礎解析(談話構造解析)や応用技術(自動要約や感情分析)に取り組んでいました
- 必要に合わせて、ベイズや分野適用といった機械学習の技術も使っていました
- 参考: NTT CS研を退職して、株式会社はてなに入社しました - yasuhisa's blog
- テキスト(自然言語)を対象として、基礎解析(談話構造解析)や応用技術(自動要約や感情分析)に取り組んでいました
- はてなでのロール内異常検知の機能開発
- Mackerelの時系列データベースに貯蓄された長期間の高解像度のデータを用いて、細かい閾値の調整を行なう必要なくサーバーの異常検知をできる機能を開発しました
- 参考: Machine Learning Casual Talks #10でMackerelのロール内異常検知について発表しました - yasuhisa's blog
データを生成する
はてなでのWebアプリケーションエンジニアとしての活動がここに当たります。
- 上(フロント)から下(サーバーサイド)までデータを生成する箇所は様々あります
- Mackerelの場合は特殊で、ユーザー以外にもmackerel-agentやそのプラグインもデータを生成しますし、その開発にも携わってきました
- データの生成元であり、定義元であり、ドメイン知識を身に付けることができました
- 当たり前ですが、データの生成以外で気を使うところもたくさんあります
- 可用性 / UX / インフラコスト / 継続的にメンテナンスできるか / などなどなど
どれかを極める or 全部やる
どっちもありだと思います。自分のキャリアは基礎研究職から始まったわけなので、「データを活用する」を最初は目指していたことになります。しかし、データに関することを考えると、生成 / 蓄積 / 活用のどれが欠けてもうまく回りません。
- 「生成」が欠けると...
- データが欠損して蓄積されません
- ロジックが意図通りになっていなければ、矛盾を孕んだデータが生成され、データの活用時に支障が出ます
- 「貯蓄」が欠けると...
- 必要なデータがないため、データの活用ができません
- サービスに直接影響が出る場合
- 例: メトリックが投稿できない、課金に関するログが正常に出せていない
- サービスには直接の影響はないが、間接的に影響が出る場合
- 例: KPIの数字が正しく出せない、データ欠損により精度の低い(分類|推薦)が行なわれてしまう
- サービスに直接影響が出る場合
- 必要なデータがないため、データの活用ができません
- 「活用」が欠けると...
- データがただ蓄積されるだけで価値を生まないのであれば、それはゴミを蓄積しているだけです
- 意思決定に関するデータが活用されなければ、意思決定のスピードは落ちたり、精度が低いものになったり、メンバーからの納得度の低いものになってしまいます
- ログやイベントのようなデータも活用されなければ、本来はユーザーに提供できたはずの価値(例: 推薦や異常検知)を発揮できないままです
データとsyou6162の今後
データに関連する分野は非常に広大なので、一人で全部を同時期にやるというのは相当スペックの高い人でないと難しいと思います*1。チームで分担することで「自分はこの中のここを極める」といった選択も当然あると思います。一方で、人生のとある時期はこっちをやり別の時期ではあちらをやって、トータルでデータに関連するところを全部見れる、別の分野を知っているからこそ強みを出せるといった選択も考えられます。そして自分の嗜好としてはこちらだなと最近思います。
データの生成 / 蓄積 / 活用の3つの中で「蓄積」に関するところが自分のこれまでの経験ではすっぽり抜けており、そういったこともありデータ基盤の構築をやり始めました。基盤構築自体も楽しいですし、基盤構築をある程度自分で面倒見れるようになったからこそ見えるデータの生成 / 活用の楽しさもあると思います。今後しばらくはデータを蓄積する基盤構築を仕事として取り組みます。
それに伴なって2月から変わるところがありますが、それはまた別のエントリで。
*1:趣味サービスならまだしも、仕事ではやるのは私は無理...