自分のキャリアについて

今の仕事について考えをまとめたいと思います。

急にポエムを書いてみようと思いました。その理由は最後に書きます。

私はあるIT企業で機械学習エンジニアとして働いています。
採用チームやAI・機械学習チームのチームリーダー、エンジニアGのグループリーダーをしています。
しかし、もしこの内容に組織的な話が含まれていたとしても私個人の考え方で組織の考えではありません。
免罪符的に「組織の考えではありません」というわけではなく、私に与えられている裁量の範囲内であり本当に私個人の考えです。
現場の裁量が大きく、チームマネジメントの方法はそのチームのリーダーに委ねられています。

これまでのキャリア

大学では、学部でマーケティングや組織論、修士・博士では数理ファイナンスを専攻していました。
(卒業後はメガバンクでクオンツとしてモデル開発・システム開発を行っていまいした。)
私は「数学・コンピュータを使う」&「短期間で成果を世に出す」&「レバレッジが効く」ことを中心にキャリアを築いてきました。今後もそうだと今は思っています。

キャリアに対する考え方

数学やコンピュータが趣味なので、論文を読んだり、プログラミングしたりすることが楽しいです。
自分が好きなことを仕事にできていると思います。私にとって好きなことを仕事にすることは非常に重要です。
飽きっぽい性格なので本当に好きじゃないと長続きしません。

また、数学は好きですが、抽象度が高すぎる数学は苦手であまり楽しいと感じませんでした。
しかし、周りを見渡すと楽しそうに専門書を読んでいる人たちが多数いて、「この分野では彼らに敵わない」と感じていました。
自分にとっての努力が他の人にとっては趣味みたいなものになり得ることを目の当たりにしました。
特定の分野トップ層に入ることは私のキャリアにとって非常に重要なので、本当に好きなものを仕事にしています。

トップ層に入る意義

私は特定の分野でトップ層に入ることを意識しています。トップ層にいれば「仕事を選ぶことができる」「すぐに辞めることができる」「市場に左右されにくい」と思っているからです。
たまに「機械学習エンジニアやデータサイエンティストの今後のキャリア」関連の記事がたまに話題になっています。
「機械学習エンジニアやデータサイエンティストの転職市場バブルが終わる」という内容もありますが、トップ層には関係無いと思います。
というのは、"データ活用"のニーズは長年存在しており今後もなくならないと考えており、それらのニーズを満たすためにはスキルの高い人たちが必要だと思うからです。
ただ私はあまりバブル感を感じていないので、本当にバブルなのかは分かりません。

ワークライフバランス

むかし誰かが「ワークライフバランスとは時間の使い方の意思決定の話であり、家庭・趣味・仕事の3つのうち多くても2個を選ぶことだ」と言っていたのが印象的でした。
今は私もそうだと思っています。そこで私は仕事のみを選んでいます。趣味と仕事が一致しているのでその2つだという見方もできるかもしれません。
(とはいっても、結婚できて幸せな家庭を築けています。妻が理解してくれており、平日の夜や土日にずっと書斎にいたりします。また育児ができないことも宣言しています。これは生い立ち的な話も関わるので少し複雑です。)

現職でやっていたこと

今の職場では色んなことに挑戦させてもらっています。実は機械学習も転職する直前から勉強し始めました。2016年12月ごろから勉強を始め、2017年3月に転職しています。
転職して約2年間の間にチャレンジしてきたことは

【機械学習系のアルゴリズム】
・ニュース推薦
・バナー広告の表示最適化
・文書間の類似度計算
・キーワード抽出
・ユーザー行動の分析
など

【組織的な取り組み】
・AI・機械学習チームビルディング
・チームメンバーの採用
・エンジニアG全体の採用戦略の立案&実施
・交流会の企画

【その他】
・新プロダクト(サービス)企画
・クライアント企業への営業

比較的自由な風土で「説明責任を果たせるなら何をやってもいいよ」という感じです。

私は入るときに"AI・機械学習チーム"に所属という話だったのですが、入ったらチームメンバー第1号という感じでチームとは?という哲学的な問が発生する状態でした。
そこからチームビルディングを始め今では10名ほどの規模になっています。

最初のプロジェクト

メンバーが1人のときに最初にすべきことは「結果を出すこと」だと思います。結果の定義も明確にすべきです。私の場合は年換算X円以上の利益貢献という分かりやすい指標を使っています。
私は結果を出すことに拘っています。組織内にAI・機械学習チームの存在意義を示し、長期的にチームを存続させ、メンバーを増やすために必要不可欠だと思っています。

最初のプロジェクトの選定は非常に重要です。周りの期待もありますし、良い滑り出しでチームに勢いをつけたいと思っていました。
私は下記のようなプロジェクトを最初はすべきだと思います。

① 他社ですでに成功している
② 小さく始めることができる

①が非常に重要だと思います。アルゴリズムが上手く作れない原因として下記が考えられます。

(a) そもそも解けない問題
(b) データが少ない
(c) アルゴリズムが悪い

アルゴリズム開発でカバーできるのは多くの場合(c)だけだと思います。(a)を選んでしまうと絶望的なので、他社で成功している例を調べて、それを真似るところから始めるのが良いと思います。
他社の例は検索すれば出てきますし、論文等でアルゴリズムが公開されています。
また論文等ではデータサイズが記載されていることがほとんどなので、(b)を検証できると思います。

私はニュース記事の推薦アルゴリズムの開発を行いました。GoogleNewsの例が公開されていたので、そこで使われているデータを同じ状況であることを確認しました。

最初のメンバー採用

チーム発足と同時にデータエンジニアを募集をしました。当時「機械学習エンジニアだけでは何もできない」といった記事が話題になっており、その理由も納得できるものでした。
エムスリーは2000年に創業した企業なので、例のごとくデータが使いやすい状態ではなかったです。
(もちろんデータ活用はされていたので使える状態ではありました。)

Machine learning team building pitchでも紹介したとおり、エンジニア採用担当人事がいい人を見つけてくれました。

機械学習エンジニアの採用

非常に難しい。最初の1年は採用できそうな雰囲気すらなかったです。
機械学習エンジニアポジションの最低条件として下記2つを上げています。

1. 年間60本以上の論文を読んでいる。
2. そのうち6本以上を追試している。

これらの条件は2つの観点で設定しています。1つ目は私自身が今の状況で成果を上げるために必要だと感じている。2つ目は満たせない人のキャリアに責任を持てないと思う。
私は教育やヒューマンマネジメントが苦手です。またチーム自体も若く不安定でいつなくなるか分からないです。
そういった状況の中で、業務で必要なスキルを自発的に伸ばすことができ、なにかあってもすぐに転職できる人を採用したいと思っています。
(もちろん上記2つを満たしていなくても、学習意欲やスキルが高く自由に転職できる人はいると思います。)

採用戦略

学部のときにマーケティングを専攻していたり、コンセルティング会社の勉強会に参加していたのが役に立ちました。
4PやAISASといったフレームワークを使って戦略を整理しました。
(参考: https://amzn.to/2VdMPw9)

そして具体的に意識して行ったことをいくつか紹介します。

・知名度を上げる。
・機械学習系のブログ記事を書く
・twitterのフォロワー数を増やす
・勉強会で登壇する
・ポジションを魅力的にする。
・業務で作っているアルゴリズムをOSS化する。
・チャレンジングなプロジェクトを作る

今、エムスリーのAI・機械学習チームの存在を知ってくれている人は多いように感じます。勉強会でヒアリングすると半数以上は知ってくれている様子です。
しかし、1年前の2018年4月ごろに知っていた人は非常に少ないと思います。
私自身も転職活動を始めてエージェントに紹介されるまでエムスリーを全く知らなかったです。
この1年間に行った様々な広報活動の成果が実り知名度が急上昇したと感じています。

またポジションを魅力的にするためにアルゴリズムをOSSとして公開できるようにしたり新しいチャレンジを多く行いました。アルファベット順に命名しており、現在Sまで来ています。

メンバーのキャリアップ

私はチームメンバーは遅かれ早かれ辞めることを前提に行動しています。魅力的な仕事があれば長く一緒に働けると思いますが限界はあると思います。
そもそも私自身が辞める可能性が十分あります。

また避けることが難しい下記のような変化があると思います。
・メンバーのライフスタイルやステージが変わり今までと会社に求めるものが変わった
・チームや組織のフェーズが変わり今までとメンバーに求めるものが変わった

そこで私はできるだけキャリアアップできる環境を作ることを意識しています。
例えば、メンバーに外部発表を促したり、OSS化したりするのは外部から実力がわかりやすい状態を作りたいからです。

オンボーディング

オンボーディング完了の合図は「新メンバーが成果を出し、外部から評価された」状態だと私は思います。
如何に早くその状態を達成できるかをリーダーや既存メンバーとしてサポートしたいと思います。

私が今行っているオンボーディングの流れを紹介します。
--- 入社後、初回1on1 ---
・半年後や1年後にどういう状態が理想かを聞く。
・それに対して自覚している足りない部分を聞く。
・機械学習で好きな分野や今後の伸ばしていきたい分野を聞く。
・マネジメントレベルの選択肢について説明する。
・チケットを私が作り、Aさん(仮)がそれを実装する。
・プロジェクトマネジメント(チケット管理やスケジュール、チーム外の調整)を私が行い、Aさんが主体的にチケット化を行い実装する。
・プロジェクトのスタートだけ私が行い、スタート後のプロジェクト管理はAさんが行う。
・数値目標設定だけ私が行い、Aさんが自由にプロジェクトを作り実装する。
・Aさんがチームリーダーになる。
・業務の範囲の選択肢についての説明する。
・機械学習アルゴリズムだけを実装する。
・アルゴリズム周辺の処理(バッチ化、CI化など)も実装する。
・プロダクトの運用まで責任を持つ。
・プロダクトの企画を行う。
・プロダクトの売り込みを行う。
・現在選択できるプロジェクトを説明する。
・半年後から1年後の理想的なマネジメントレベルと業務範囲について聞く。
・やりたいプロジェクトを聞く。
・半年後から1年後の理想的な状態にするために、どのマネジメントレベルと業務範囲から始めるのが最短だと思うか聞く。
・他に必要なサポートが必要かを聞く。
・社内を周って私の知り合いを紹介する。
--- 初回1on1終了 ---
・毎日、声を掛ける(雑談を行う)。
・日常的に気づいた点はフィードバックする。
・1ヶ月後から週1回、1時間程度の1on1を行う。

1on1で何をするか

試行錯誤中で定まった型はありません。今行っていていいと思うことについて紹介します。
まず1on1の目的は「メンバーの成長」ではなく、「メンバーが成果をだすためのサポート」だと考えています。
そこで現在取り組んでいるプロジェクトの深掘りをサポートすることでプロジェクトのリスクを減らそうと考えています。

例えば、下記のようなことについて議論します。
・プロジェクトの目的、関係者、計画、求められる精度など
・アルゴリズム自体の現状の課題、使っているデータ、改善方法など
・プロダクトの売り込み先、売り込み方など
・今後の横展開の可能性
・開発の優先順位

これらの深掘りを行うと新たな可能性やリスクが発見できるようと考えいます。
また最後に私がサポートしたほうが良いことがあるかを確認しています。

私は1on1で不満を聞くことはしていないです。本当にクリティカルな不満であれば、こちらから聞かなくても言ってくれると信じています。
こちらから不満を聞くとクリティカルではない不満も出てくると危惧しますし、さらには「不満を言ったのに改善してくれない」という新たな不満も出てきそうです。

チームの状況によるのですが、今はメンバーが少なく私自身も開発を行うので、クリティカルではない不満を解決する時間が取れないのも理由の一つです。

今後やっていきたいこと

5年後(38歳)に起業したいと思っています。そのために今はPdMや経営を学ぼうと思っています。
まずはPdMに取り組んでいます。非常に面白いです。
今までプロダクトを考えるとき、ふんわりと「こういうのがあったら良さそう」くらいの雑なイメージで考えていました。
それだと売れるプロダクトは作れないと痛感しています。
というのは、例えば「メッセージをやり取りできるサービス」「QRコード決済できるサービス」は複数世の中に出ていますが、各サービスとも詳細が大きく異なります。
その詳細の差が人気の差になるからです。

今ではiPhoneを持つことの素晴らしさを理解しており、iPhoneを使っていない年配の方に便利さを説明することができます。
PdMであれば、商品がないときにその状態になる必要があると思います。つまり、まだ作っていないプロダクトを如何にも使っているかのように理解する必要があると思います。

ポエムを書いた理由

PdMにチャレンジする中で、言語化をすることの重要性を痛感しています。
私は自分の考えを正確に言語化することが苦手なので、まずは練習としてポエムを書いてみようと思ったからです。
思いついたことをダラダラと書きましたが、そのうちトピックごとに整理していきたいと思います。


この記事が気に入ったらサポートをしてみませんか?