オープンソースのCI/CDツールとして広く知られているJenkinsを開発した川口耕介(@kohsukekawa)さんが新たに友人と立ち上げたLaunchable(ローンチャブル)は、データサイエンスの技術を利用したテスト自動化のプラットフォームを提供すると表明しており、開発プロセスの改善をさらに推し進めるスタートアップとして注目されています。
このLaunchableにプリンシパル・ソフトウエア・エンジニアとして参画したのが、庄司嘉織(@yoshiori)さん。ソフトウェア開発者のキャリアを25歳でスタートし、Javaエンジニアとしてさまざまな経験を積む傍ら、若手エンジニアによるjava-jaというコミュニティも取りまとめてきました。
未経験のRubyにチャレンジしようと転職したクックパッドでエンジニアリングマネージャーや人事部長まで務めるなど、複数の領域で多様なキャリアを歩んできた庄司さんに、挑戦的なキャリアをどのようにこなしてきたのか? そしてエンジニアにとってチャレンジすることの意味について聞きました。
- 転職できると思っていなかったスタートアップへの転職
- リモートワークに慣れたエンジニアの労働環境
- 常に新しいチャレンジを求めたい
- いつまでも“Hello World”の感覚を
- 「僕なんかが」なんて思わなくていい
- エンジニアリングかマネジメントかではなく両方を楽しむ
- チャンスを見逃さないように生きている
転職できると思っていなかったスタートアップへの転職
── 従業員が300名を超えるIT企業でエンジニアを統括するような立場から、10人規模のスタートアップに移る選択はかなり大きかったのではないかと思いますが、ブログを見ると即決に近かったんですね。
庄司 やっぱりCI/CDを民主化した川口さんというエンジニアと、しかも会社の立ち上げ時期からみっちり一緒に働けるというチャンスはむちゃくちゃ魅力的だからですね。
その上、Launchableが始めようとしていることがとても楽しそうだったんです。スローテスト問題っていう、いくらテストを自動化もどうしても時間がかかってしまう問題は開発者の間でずーっと昔から指摘されてきましたが、それに真っ向から取り組む姿勢にすごく興味を持ちました。
前職に何か不満があったわけでもないですし、むしろ(ステイホームにより)家で料理をする人は増えてますから、まだまだ事業的にも成長できると思ってました。けれど、こんなにすごい人と一緒に働ける。しかもチャレンジングで楽しそうなことに取り組める。こんなチャンスは、またとないと思ったんです。
── 川口さんが3月に公開した「求む、同志」というブログに応じたということですよね。
庄司 はい。そのブログを読んで「やばい。すごい。なんか楽しそうなことをやってる」って居ても立ってもいられなくなり、ひとまず純粋に「話を聞きたい」って川口さんに連絡したんです。このタイミングでは転職できるなんて考えていませんでした。なぜなら、英語が全然できないので。
── 確かに川口さんは長らく西海岸を拠点にしてますし、Launchableもまず米国で創業されました。
庄司 ただ、話したらけっこう意気投合したんですよ。それで「でも僕、英語できないんです」「そっか。じゃあ厳しいかもしれないけど、僕が通訳するからいちおう創業者のハープリート(Harpreet Singh、@singh_harpreet)と話してみてよ」と言ってもらえて、最終的に「よかったら一緒に働かない?」となったときには自分の中でほぼほぼ即決でした。「だめだろう」というチャンスが降ってきたわけですから。
リモートワークに慣れたエンジニアの労働環境
── ジョインされて4カ月になりますが(取材は9月)、現在の働き方について聞かせてください。スタッフはみなさん完全リモートだと思いますが、コミュニケーションは英語ですよね。
庄司 チャットやGitHubなど、みんなの目に触れる場所でのコミュニケーションは全部英語です。DeepLさまさまですね。もちろん個別に日本語で話すことはありますが。
── 日米に分かれているということで、時差の問題などもあるかとおもいますが。
庄司 会話をするときに時間の調整があったりしますが、今のところそこまで感じてないですね。もともとLaunchableという会社自体、川口さんをはじめリモートワークに慣れている人が作ったので、ルールもリモートで仕事しやすいように作られてるんです。
例えば「ミーティングは週に2回、この日とこの日」と決まっていますし、必ずドキュメントを残す文化があります。意思決定のフレームワークもちゃんと決まっていて、すごくやりやすい。
── 意思決定のフレームワークというのはどういったものでしょうか?
LaunchableではDACIという意思決定フレームワークに沿って、誰が何を決めるのか? そのとき投票権があるのはどの人か? といったことが明示されます。「あなたたち全員に意見を求めます。ただし、決めるのはこの人です」という役割を決めてから意思決定し、その過程もドキュメントに残っています。めちゃくちゃ透明性が高くてオープンなので、わざわざチャットしたり集まったりしなくて済んでます。
前職で(新型コロナウイルス感染症の流行にともなって)リモートワークになったときに感じたんですが、リモートだと意思決定のプロセスが見えにくいんですよね。会社にいればCTOがバタバタと走り回ったり、リーダーがミーティングに出てたりして「あ、何か決まるのかな」って分かるんですけど、リモートではポンと決まったことが降ってくるだけになりがちですから。
常に新しいチャレンジを求めたい
── スタートアップ企業に飛び込むという大きなチャレンジをほぼ即決したということは先ほどうかがいましたが、これまで積み重ねてきたキャリアやスキルを生かすことを考えると単純にもったいないところもあるように思うのですが、そういった葛藤などはなかったのでしょうか。
庄司 うーん……自分の経験やスキルがあまり使えなくなるとしても、それがもったいないって感覚はあまりなかったですね。逆に、ずっと同じような考え方で日本企業の中規模な組織のエンジニアリーダーをやることになると、そこで終わってしまうもったいなさもある気がして、あまり面白くはないかな。
もともと僕はジョブホッパーで、何度も転職してきました。それでも前職は長く続いた方で、7年間在籍したことになります。理由の1つは、常に僕に新しいチャレンジをくれたからです。
そもそも入社したときにも、前々職でエンジニアリーダーみたいなことをやった後なので、エンジニアとしてもう一回チャレンジしたかった。それまでRubyで仕事したことはなかったんですが、日本でも指折りのRubyエンジニアがそろっている会社で、触ったことのない言語で仕事ができたら、エンジニアとして自信が持てるんじゃないかと思ったんですね。
入社後もまたリーダーになったり、動画配信の基盤を作るときに「やらせてほしい」とマネージャーからエンジニアに戻ったり、いろんなことに挑戦させてもらいました。動画配信で手を上げたのは、大容量ファイルの配信には考えなければいけないことがたくさんあって、前々職(ニコニコ動画を運営するドワンゴ)での知見もあったし、電子書籍の配信でプロマネに近いこともしていたので。
── 近年は人事部長や技術部長の肩書で登壇することも多かったようですが。
庄司 人事部長は最大のチャレンジでしたね。その後がCTO直下のエンジニア統括マネージャー、それからCTO室長。CTOのところまで上がってくる問題って、難しいものばかりなんですよ。それぞれのエンジニアチームでも部長レベルでも調整がつかなかったわけですから、正解がないというか、むしろ不正解しかない。自分で言うのもおこがましいですけれど、そういう問題に送り込める人材として信頼されていたんでしょう。
── 人の気持を察して調整する必要もありそうな難しい役回りですね。
庄司 そういうことはあまりしてなかったですね。むしろ、気にせず「こうなんじゃね」と思ったら解決に向けて進んじゃうところを買われたのかな。
いつまでも“Hello World”の感覚を
── いろいろ新しい挑戦をする一方で、まったく別の業界の違う職業に就くわけではないですよね。エンジニアリングそのものやそれに付随するマネジメントを飽きずに続けているのはなぜでしょう?
庄司 自分でも不思議なんですが、やっぱりプログラムが書いた通りに動くことが楽しくて、面白いんですよね。恥ずかしながら、僕が一番最初にHello Worldを書いたときって、すごく大変だったんです。書籍を読みながらサンプルコードを書いて、makeして、動かして、エラーが出るので読み解いて……ってことの繰り返しで、半日くらい悪戦苦闘しました。
それで画面にやっとHello World
が出てきたとき、めちゃくちゃ感動したんですよ。あの感覚が未だにあります。
もちろん今の自分がHello Worldを書いても「そりゃ動くよね」で終わるわけですが、新しいシステムを作るとき、例えば動画配信でも「ここを気にして、こう書けば、いけるのかな」と考えて、実際にコードを書いて、動いたら「おー、やった!」って……それがずっと続いている感じです。
おそらく、その時々の自分にとってギリギリ難しい、でも頑張れば解ける程度のチャレンジが楽しいんです。簡単に解けてもつまらないし、かといって永遠に解けない問題はそれこそつまらない。
── プログラミングをHello Worldから始めて、その後は新しい技術や情報をどうやって取り入れていったのでしょうか?
庄司 当時は雑誌がいろいろと発行されていて、例えば『JavaWorld』などを読むと、半分以上は自分の知らない業界の話なんです。それで「こんなシステムを作っているところもあるんだ」みたいに、とにかく自分の知らないことを知るのが純粋に楽しかったですね。
ただ、最初に勤めていた会社では組み込み系の開発をしていて、その頃に流行っていたオブジェクト指向のような手法をどうしても導入しづらかったんです。でもすぐそこに、オブジェクト指向でプログラミングをしている人たちが見える。「そっちの世界は楽しそうだな」って、Web系のシステムインテグレーターに転職する。今度はその世界の先に知らないサービスをやっている人が見えて……という感じです。
「僕なんかが」なんて思わなくていい
── java-jaの立ち上げが2007年とのことですが、そのように知見が広がっていた中で生まれたんですね。
庄司 その頃、Shibuya.pm(Perl)やShibuya.JS(JavaScript)といったコミュニティがめちゃめちゃ盛り上がってましたよね。それがちょっとうらやましかったのはあります。
Seasarプロジェクトのひがやすを(@higayasuo)さんとJavaのイベントで会ったときにも「Javaのコミュニティは、堅いですよね。もっと柔らかくて、コーディングを楽しめるコミュニティがほしい」という話をしたんです。そしたら「作っちゃえよ」と言われて、「僕が作っても誰も賛同してくれないと思うので、ひがさん作ってくれませんか」と返したら「いやいや、絶対おまえがやるべきだ」「何なら俺もそこに入るから」って、それで作ったのがjava-jaなんです。
エンジニアとして「僕なんかが」ってなることは誰にでもあると思うんですけど、ひがさんはよく「その考えは本当によくないよ」って言ってて、何度も「おまえがやるべきだよ」って言ってくれたのは、すごく感謝しているし、僕のエンジニア人生にかなり影響を与えてると思います。
── コミュニティを主宰するメリットは何でしょうか?
庄司 うーん、そうですね……優秀な人が集まる中で、自分も刺激を受けるということが挙げられます。エンジニアの周りには面白い人が多いですよね。みんなそれぞれ得意分野に関してすごい知識を持っている。集まると自分の持っていない知識がどんどん手に入って、知見が広がるのが面白いですよね。
── 先ほどのJavaWorld誌の話に通じるものがありますね。知見を広げることが、次のチャレンジにつながる。とはいえ、ずっとチャレンジを続けるのも疲れてしまうというか、それこそ組み込みならひとつの技術を磨いていくキャリアもあり得ますよね。
庄司 逆に聞きたいんですけど、解けると分かってる問題をずっと解き続けるのは苦痛じゃないですか? 二桁の足し算をやってたらお給料をあげますと言われても、もうちょっと難しい問題が欲しいなってなるんじゃないでしょうか。
解ける問題があってもいいんですが、明日も明後日もそればかり、もっと言えば10年後もずっとこういう仕事をやっているんだろうなっていうのが見えちゃってるよりは、違う道を選んだ方が楽しそうだなって僕は思います。
エンジニアリングかマネジメントかではなく両方を楽しむ
── Launchableの話に戻りたいとおもいますが、庄司さんの主なミッションは何ですか?
庄司 日本でエンジニアチームを作る段階になったときにそのリーダーができる人間が欲しいというのが第一条件だったんで、そこを買われたんじゃないかと思います。以前に「僕はマネージャーとしてこんな人です」ということを書いた「manager-readme」にも共感してもらえましたし。
でも、今は会社自体が立ち上げ段階で、日本の開発チームもまだ5人程度とチームビルディング以前の状態ですから、久しぶりに僕もJavaでコードを書いてます。
── ところでマネジメントについては、何か勉強したりされましたか?
庄司 ドワンゴに転職するとき誘ってくれたのが溝口浩二(@techtalkjp)さんなんですが、入社後しばらくして「マネージャーをやって」と頼まれたんです。そのとき「エンジニアリングするときに関連の本を読んで勉強するように、マネージャーをやるにもちゃんと本を読んで勉強してみな」って言われて、何冊か読んでみたんですね。
マネジメントに正解はないんですが、不正解はあります。それが本には書いてあるので、そういったことを学べたのはすごく大きかったですね。
── やはりエンジニアリングもマネジメントも経験していることは大きいですね。
庄司 そうですね。コードを書いていたいという思いもありますが、もともとエンジニアリングのチームを作る仕事も好きなんです。一般に「コードを書くのが好きな人は、マネジメントをしたくない人」と受け取られがちですけど、僕はコードを書くのも好きだし、マネジメントも好き。(キャリア初期の)システムインテグレーターでも気がついたら、エンジニアリングチームのリーダー的なことをやっていました。
もちろん優れたエンジニアが一人いればいいものができますが、やっぱり一人でできることには限界があります。チームで問題に取り組めば、思い描いたものを実現する速度がめちゃくちゃ速くなるし、それにエンジニアリングチームを優秀な人で固めると、僕自身も刺激を受けてめちゃくちゃ楽しいです。
── 周りがあまりに優秀だと、自分と力量を比較して落ち込んだりすることはないでしょうか?
庄司 僕自身がプログラムをはじめたのが25歳からになります。周りは自分よりも優秀な人ばかりというのが当たり前で、劣等感を感じるまでもなかったですね。それが当然というか、むしろすごい人たちと一緒に仕事できることは楽しいですよね。
チャンスを見逃さないように生きている
── お話を聞いていると、大きな組織でエンジニアを統括する立場から小さなスタートアップへの転職を選択されたのも必然のように思えてきます。
庄司 とはいえ最初に話したように、一緒に働けるとはまったく思っていなくて、ただ面白そうだから話を聞きにいっただけなんです。ただ「僕なんかが話を聞きに行ったら、川口さんの時間を奪って迷惑なんじゃないか」ということはあまり考えないようにして、ちゃんと「興味があるので話を聞かせてください」と伝えることができたのは、もしかすると「『僕なんかが』なんて思わないで、まずやってみな」というひがさんの言葉が効いているのかもしれません。
── 転職を決めた後で、不安はなかったでしょうか?
庄司 それはもちろんありました。でも、それはJavaをメインにしていたドワンゴからRubyの会社であるクックパッドに転職したときもありましたし、新しいチャレンジに不安はつきものですよね。
そういえば転職を決めてすぐ、ドワンゴ時代から仲のいいエンジニアたちに「すごいチャンスが降ってきたから挑戦する」と伝えたときに言われた言葉があって、
「ちゃんと準備して待っている人じゃないと、チャンスをチャンスとして捉えられない。今この状況でこれをチャンスと感じられるのは、ちゃんと準備をしていたからだよ」って。
すごくうれしかったですね。チャレンジするための準備をしているわけではないですが、チャンスを見逃さないように生きているのかなっていう感じはします。
── ご家族の反応はどうでしたか?
庄司 実は、去年(2019年)の11月に娘が生まれたばかりなんです。その後、コロナの影響もあって奥さんは子供を連れて実家に帰っていたんですが、「転職したいと思っているんだけど……」と電話したら「やりたいと思うんならチャレンジした方がいい」と背中を押してくれました。
それに「おまえが生まれたタイミングだったからチャレンジしなかった」なんて絶対に言いたくないじゃないですか。娘には「おまえがいるから、俺はさらなるチャレンジをしたんだ」って言いたいですよね。誇りを持ってちゃんと「お父さんはずっと好きなことをやってきたんだから、おまえも好きなことをやりなさい」って言えるようになりたいなって思います。
取材・構成:高橋睦美
編集:はてな編集部
※新型コロナウィルス感染拡大防止の観点から、インタビューはWeb会議ツールを用いてリモートで行いました。