初代・二代目巨匠が考えるエンジニアキャリア(連載 第2回)

こんにちは、キャリアに悩めるエンジニアのichienです。先日はfreeeの巨匠制度の歴史についてこちらの記事でご紹介しましたが、今回は初代・二代目巨匠であるterashiさん、ebiさんをゲストに招いて当時の感想を聞きました。terashiさんは理系出身・生粋のスペシャリストタイプ、ebiさんは文系出身・様々な職種を経験してきたジェネラリストタイプという対照的なキャリアを歩んでおり、キャリアに対する考え方についても話してもらいました。

巨匠に選ばれて1ヶ月で何を作ったか

ichien:お二人はどんな成果物を発表したんですか?

terashi:freeeの「自動で経理」という機能で、どの勘定科目でどの品目でというのを機械学習でやっている部分があるんですが、そのサジェスト結果を評価をするための基盤を作りました。サジェストを評価するために十分なログを残す、それを評価するフレームワークを作るということをして、ログは今も活用されていますが、評価の基盤は残ってないです。当時は1ヶ月投資的にやってみるという感じだったので、引継ぎ先がなく流れてしまいましたが、後々の制度変更で改善されました。

初代巨匠 terashi 「もっと自動で経理」

「自動で経理」の推測精度測定の自動化・プロセス化、性能の定量評価を導入

f:id:elly_nskw:20211011172121p:plainf:id:elly_nskw:20211011155207p:plain
発表内容イメージ

ebi:僕は「未来のfreeeのデータモデル」というテーマでやりました。当時のfreeeプロダクトのカバーしている業務領域や機能性は、今と比べるとかなり限られたものでした。マーケティングメッセージとしては「クラウドERP」という打ち出し方を始めていた頃ですが、以前にERPを触っていたこともあり、当時のラインナップからするとERPとしてはまだまだ、という感覚を持ってました。そこで、胸を張って「freeeはERPです!」と言えるようになるためには将来どういったプロダクトになっていなければならないかを想像し、データモデルという切り口で表現しようというのが僕のテーマでした。

二代目 ebi 「未来のfreeeのデータモデル」

取引ネットワーク & ビジネスコラボレーションプラットフォームのためのデータモデルを一からあるべき姿に再設計

f:id:elly_nskw:20211011171912p:plainf:id:elly_nskw:20211011171922p:plain
発表内容イメージ

当時みんな巨匠制度に対しては、何か動くものを開発するというイメージを持っていたと思うんですけど、僕は何も動くものは作らず、アウトプットとしてはドキュメントで、データモデルの絵と説明書きだけだったんですよ。

ただ、その後freeeの機能も充実していく中で、まさに考察したような領域がぽつぽつとプロダクトの中に生まれてきて、自分が直接機能開発をしなくても、担当者がそのデータモデルを参考にして製品に反映してくれているのを見ると、すごく嬉しいしやってよかったなと思います。

terashi:ebiさんのは長期的に正しく投資しましたね。組織構造を表現する社内サービスや総勘定元帳や試算表の検索の高速化、認証認可基盤でも参考にしてますよ。

ichien:あらゆるプロダクトで活用されてるんですね!

ebi:この巨匠のテーマが、僕が所属しているERP基盤というチームにもつながっています。5年越しくらいで頭の中の構想を実現できる可能性がでてきて、非常にエキサイティングですね。

ichien:会計の他にはない中で、ERPとしてどのようなデータモデルを実現したらよいかを予測してたんですね。

terashi:いまもebiモデルと呼ばれてますよ。

ebi:直前がterashiだったのでかなりプレッシャー感じましたよ。僕はずっとプログラマーってわけでもなくて、そもそも大学も経営学科でしたからね。何かすごいもの、難易度の高いものを作るとかじゃなくて、自分の経験が活かせてかつfreeeの将来に役に立つものという意識でテーマを選びましたね。terashiのテーマがあったからこそ、テーマ選定にはとても悩みました。

非連続的進化とは非連続的進化の起点を作ること

terashi:テーマ選定は私にとっても一番重要なポイントでしたね。1ヶ月集中してやることも重要なポイントですが、むしろテーマ決めのほうが巨匠としての意味は大きかったと思います。

そもそも初期の巨匠ってとりあえず1ヶ月で何かインパクトのある非連続的進化を出してくれという無茶ぶりだったんですよ(笑)普通に考えたらそんなこと簡単にできるかって話なんですが、私はまず初めに非連続的進化っていうのを”非連続的点を作ること”だと解釈したんですよね。グラフの伸び方が途中でぽんと変わるようなポイントをうまく作ることだと思ったんです。

f:id:elly_nskw:20211011160445p:plain
非連続的点のイメージ

そこから、いまの自分のスキルと知識とfreeeの課題の中で、1ヶ月で自分が一番インパクト出せる部分をひたすら考えました。私自身の仕事に対する取り組み方も非連続的に変わったきっかけになったと思ってます

ebi:terashiが言語化してくれた”非連続的進化の起点をつくる”というのには僕もすごく腹落ちして、その観点でテーマ選定できましたね。

ichien:今後参加する人にはどんな気持ちで参加してほしいですか?

ebi:結果を求められるものではないので、しりごみしないでチャレンジしてみてもらいたいですね。もちろんいい成果が出てプロダクトの発展に貢献できれば素晴らしいけど、一定期間ひとつのテーマに集中していつもと違う仕事をするのは個人の成長にもつながることだと思うので、ぜひ積極的に取り組んでみてもらいたいですね。

terashi:この制度は内容の変更も度々ありましたが、失敗してもナイストライ!と言われる環境で”チャレンジしてほしい”っていうのは一貫しています。初期の巨匠制度は投資的な側面が強かったんですけど、いまはその人の現在のキャリアに合わせて現時点からチャレンジできるようにしています。そもそも、いまのfreeeの規模だとすごいことやるならやっぱりチームでやるべきなんですよ。でも個人のチャレンジは別であるべきだし、その環境をこの巨匠制度の後継であるマジ価値DeepDiverやワンマンNavyで実現しようとしています。いまの自分を一歩超えるというのを目標にしてチャレンジする場だ思っていただけると嬉しいですね

ichien:自分を一歩超えるっていいですね。プロダクトの成長と個人の成長を両立できると幸せだなって感じました。

エンジニアになったきっかけ

ichien:お二人のいままでのキャリアってどんな感じだったんですか?

terashi:私はプログラミング自体は小学生の頃からやっていて、父親が当時としては珍しくPCを持っていたんで、ベーシックとかをやってみたのが事の始まりです。中学高校と独学で、大学時代は情報工学科でコンピュータサイエンスを勉強して、サークルでゲーム開発したりとか、競技プログラミングのICPCに出たりしました。C++が大好きで、幸せに開発するためのツール作ろうとしてましたね。いまサービス基盤を作ってるのもそこが原点かもしれないです。

ebi:僕も最初は小学生で、初代ファミコンのファミリーベーシックっていうキーボードのオプションをクリスマスプレゼントでもらったんですよね。中学生でMSXに乗り換えて、自分でゲーム作ったりしてましたね。

高校に入ってからもプログラマーになりたいとは何となく思ってて、理系コースを選びました。ただ途中で「将来社長になろう」と思って、社長=経営という安易な考えから経営学科目指しちゃったんですよ。

で、経営学科入ったんだけど、やっぱりつまらなくなっちゃって。たまたまゼミの先生がなぜか人工知能の先生で、それがきっかけでもう一度コンピューターの世界に戻ってきたんです。当時Prologという、いまとは違う人工知能がありましてね(笑)

経路探索のようなアルゴリズムらしいアルゴリズムやUnixをちゃんと勉強して、とにかく頭捻って面白かったですね。それでエンジニアとして就職することにしました。

2人のエンジニアキャリアの歩み

ichien:社会人になってからはどんなキャリアを歩んできたんですか?

terashi:新卒で入ったのがGoogleで、主にGoogleマップのデータまわりを7年弱やっていたんですが、同じことやり続けるのもどうかなと思って、チーム異動と転職を比較検討していました。

転職といってもどこがいいのかよく分からないまま、フリーランスはどうかと調べていたところ、確定申告の仕方みたいなページに「確定申告ならfreee」って書いてあったんですよね。

実はGoogle時代にDSさん(freee CEO)と働いていたことがあって、正直DSさんが起業してたことはすっかり忘れていたんですけど(笑)税金まわりのお金の計算とか好きだったので、自分の趣味にも合うと思って真面目に考え始めました。

f:id:elly_nskw:20211011161329p:plain
初代巨匠terashiさん

DSさんのことは知ってるからいいとして、私にとって重要なのはテクニカルに楽しくやれるかというところだからYJさん(freee CTO)に会わせてもらおうと思ってメールを送りました。話していく中で、オープンな技術を学ぶ機会を得つつ、freee自体はこれから大きくしていくフェーズだったのでそこで実装力を発揮して、ゆくゆくは大規模なデータを触る経験も活かせるだろうということで転職を決めました。

はじめはfreee会計の開発をしていたんですが、そのあとは大規模な移行プロジェクトを担当することが多くて、課金基盤の移行、データアグリゲーション基盤、認証認可基盤の移行、いまはマイクロサービスの共通基盤を作っています。

ebi:僕は新卒で日本オラクルに入って、データベースのコンサルタントをやっていました。「未来のfreeeデータモデル」にもその時身に着けたデータモデリングのスキルを活かしています。その後SONYに転職、しばらくしてスタートアップに2社連続で転職しました。

スタートアップはやっぱりスピード感だったり自分のアイデアをすぐ実行に移せる裁量の大きさが魅力でしたね。ITコンサル、情シス、プロダクト開発、プリセールスなどとにかく何でもやってきました。うまく会社のビジネスが伸びれば経済的メリットも大きいだろうし。ただ、どっちでも自分は成功できなくてちょっと休憩・・と思って前職のSalesforceに転職しました。

f:id:elly_nskw:20211011161609p:plain
二代目巨匠ebiさん

SalesforceではITコンサルに戻ったんですが、3~4年やってるとまた元気が戻ってきて(笑)スタートアップでチャレンジしたいなと思うようになったのと、自分で手を動かすプログラミングの仕事が減っていたのもあり、もう一回外に出ようと思いました。

freee入ったときまだエンジニアも20人くらいでいまのJM(ジャーマネ: freee におけるマネージャー)制度もなかったし、フラットに20人並んでいるって感じ。よく言えば自由、悪く言えば統制がとれていないみたいな。はじめにやったのは前職の流れもあって、freeeにSalesforceを導入するってことでしたね。

それからfreee人事労務のオフィシャルリリースに向けて、最初はfreee会計にならって課金の実装をしていたんですが、それがどうにも自由度がなく、実装をがらっと作り変えました。そうしたら、それなりにいい出来だったのか評価がよくて、freee会計にも同じものを入れていこうという話になり、そこからずっとこの間の6月まで課金まわりの開発を担当し続けていました。

terashi:その課金基盤の移行プロジェクトで、私も一緒にやっていました。ebiさんははじめプレーヤーだったけど途中からJMになったんでしたよね。

ebi:そうそう、あのときはterashi含め3人でプロジェクトを進めるという状況で、タスク管理や他チームとのコミュニケーションで誰かがリーダーシップをとったほうが動きやすいんじゃないかと思い、手をあげました。

僕自身はプレーヤーとして価値発揮したくてfreeeに入ったけど、あの当時はマネジメントに時間を割いたほうがチームの効率が良くなると思って、自分なりに納得してそういう役割を担っていました。

3人しかいなかったのでそんなに苦労したわけじゃなかったんですけどね(笑)

terashi:ぶっちゃけあのときのチームはマネジメントがなくてもなんとかまわるようなチームではありましたが、それでも役割としてチーム外とのコミュニケーションをebiさんがやってくれてかなり楽になったのは覚えてますね。

私はマネジメント業務には関わっていなくて、とはいえ個人としてがりがりコード書いてどんどん開発するスタイルで力を発揮していたつもりなんですが、あるプロジェクトでJMはいるけどテックリードが2人くらい異動や転職で抜けてしまい、自分が動くしかないと思ってテックリード的な動きをやった経験があり、テックリードとしての成功イメージにはなっているかもしれないですね。

マネージャーとスペシャリストというそれぞれの立場で大切にしていること

ichien:JMとテックリードというそれぞれの活躍の仕方をお互いに見ていて、感じることはありましたか?

f:id:elly_nskw:20211011163321p:plain
2021年5月入社のichienさん

ebi:課金基盤の移行のとき思っていたのはterashiはとにかくコード書くのが早い(笑)なおさら自分が頑張るよりもterashiのスピードを保てるように自分が他のタスクやったほうがチームとしてスピードが上がるという思いはありましたね。

terashi:ebiさんの動きでいうと、ebiさん自身はプレーヤーとしてやりたいという思いを持ちつつも、JMやったほうが最適だからJMをやっていたし、でも最終的には後任のJMの採用を進めて、いままさに引継ぎをしてきちんとプレーヤーに戻ってきたって感じですよね。状況見て、組織として必要なことも自分のやりたいことも満たすという進め方が尊敬できるなと思ってます。

ebi:照れますね(笑)

terashi:私はけっこう我を通す人ですから(笑)

ichien:キャリアを考えるうえで大事にしてること、キャリアに悩んでいる人へのアドバイスはありますか?

ebi:僕はこの会社でプレーヤー⇒JM⇒プレーヤーと、いくつかの立場を経験させてもらってますが、チャンスがあればぜひ一度JMをやってみてもらいたいなと思いますね。やってはじめて分かることもありますし、なんにせよこの会社では一度マネジメントに移ったらそのあともずっと、っていうことはないです。僕もそうだし他にもJMからプレーヤーに戻るというキャリアを歩んでいる人がいるわけで、だからこそぜひチャレンジしてほしいなと思います。

マネジメントにはマネジメントの面白さがあって自分が頑張って自分の成果出すのも気分いいですけど、チームで頑張ってチームで良い成果出すほうが僕は喜びが大きかったですね。JM経験してプレーヤーに戻ると、自分のJMがどういうこと考えているか、どういう悩み持っているかとか想像しやすくなるのでよきメンバーにもなれる気がします(笑)

terashi:自分が意識しているのは、JMと同じだけのインパクトをスペシャリストとして出さないといけないってことですね。

JMというのはチームをいかにスケールさせていくかということを考えるので、スペシャリストの場合はコードを書いてそれを実現させないといけないんですよ。チームや全社に対してインパクトを出すようなコードを書かなきゃいけないし、それは単純な話ではないので頑張って考えないといけないなと思っていて。

マネジメントの仕方がいろいろあるのと同様にスペシャリストのインパクトの出し方も幅は広くて、典型例としてはアーキテクトとして全社に影響を与えるような設計をしていくこと。あとはフェローとしてすごく重要なコンポーネントを作りあげるみたいなこと。

後者のほうはイメージが難しいかもしれないですけれども、究極の例としてはJeff DeanというGoogleのシニアフェローで、具体的にはMapReduceやBigTableを作るというようなレベルなので、すぐにできないし一生かけてもできなそうなんですけど(笑)私自身生涯かけて追及していきたい姿ではあります。

コードを書くことによってインパクトを出したいという人がいれば私も及ばずながら相談に乗れますし、freeeにはそういったスペシャリストを目指す人が楽しく仕事できる場所であり続けてほしいですね。

ichien: お二人の違ったキャリアについて聞くことができました。今日はありがとうございました。

次回は8月に行われたマジ価値DeepDiverで発表を務めたliaoさんに、その際の取り組み内容や学びについて書いてもらいます。ぜひご覧ください!