低レイヤーの経験はエンジニアの勘どころを培う
最初にニジボックスについて、簡単に紹介しておこう。ニジボックスはリクルートから2010年に分社独立したグループ会社だ。「Grow All」を合言葉に、デザインやフロントエンド技術などを通じて顧客のビジネス成長を支援している。フロントエンドエンジニア、バックエンドエンジニア、データエンジニア、開発ディレクターなど130名以上のエンジニアが在籍している。
遠峯康夫氏は2010年にヤフー(現LINEヤフー)に入社し、Hadoopの基盤構築や運用、データ利活用ツールなどデータマネジメントを担当していた。2018年にリクルートに転職し、複数の事業領域を横断するデータプロダクトの企画や運営に携わった。2023年からはニジボックスに兼務し、データエンジニアリング室の立ち上げからかかわる。遠峯氏はこれまでのキャリアを振り返り、「経験してよかった」と思えることを3つ挙げた。
1つ目は低レイヤーの技術領域の経験だ。遠峯氏が入社したころは大規模なデータ分析が始まり、分散処理技術としてHadoopが使われていた。こうした環境で「ネットワーク設計の議論に陪席(ばいせき)するほか、Hadoopクラスタ構築を経験できたのはよかった」と遠峯氏は言う。
ヤフーともなると、データセンターに物理サーバーが数千台規模で並ぶ。まれにロット不良に遭遇するなど、ハードウェア故障も身近に経験していた。学生時代にはジャンクパーツを購入して自作サーバーを構築していたこともあり、低レイヤーに直接触れる経験があることで「クラウドを活用する立場になっても、障害が起きるとあの機材や部品が壊れたのかな」と想像できるという。
古川氏もこの点において、「フロントエンドにも通じるところがある」と同意する。今では既存のライブラリを使用することが多いが、低レイヤーでの経験があると「壊れているところがなんとなく想像できる。その勘どころは大きい」と話す。
社長室に呼ばれるほどの修羅場で気づいたこと
2つ目は社長室に呼ばれるレベルの修羅場経験だ。スマートフォンが使われ始めたころ、ロギング方式を入れ替えることになり、そのプロジェクトのリーダーを担当した。ところがリリース直前に品質保証で問題が発覚し、リリース延期に。広告の契約があったため、クライアントに謝罪しなくてはならない事態になってしまった。
プロジェクトリーダーだった遠峯氏は状況を説明するために社長室に呼ばれた。20代後半だったため「これでクビになるのか」と心配したものの、クビにはならなかった。お叱りはあったものの、当時の副社長が「新しいことをしているから失敗はある。みんなで乗り切ることが大事」と諭してくれて胸をなで下ろした。
規模の違いはあれど、誰しもが何らかの痛い失敗をしているのではないだろうか。エンジニアなら、自分のバグで障害やクラッシュを発生させてしまうなどだ。古川氏は「問題を起こした時は視座が上がる瞬間でもありますよね。いい経験だったと思います」と述べて、自身の失敗談も開示した。
古川氏は前職のDeNA時代にモバゲーのサービスを数分止めてしまったことがあったという。重要なテーブルをロックしてしまったのだ。ゲームで使うスタミナや課金などで参照するテーブルをロックしてしまったため、どのユーザーもテーブルからの応答が止まり、すなわちゲームが止まるという事態になった。当時を振り返り古川氏は、「心臓の鼓動が激しく高まり、死ぬかと思った」と明かす。後日、振り返りの会議で釈明したそうだ。
遠峯氏は「自分のリスク管理の甘さや、周囲へのコミュニケーションの不足を実感した。やはり一人では仕事はできない、と。エンジニアリングはがんばっていたつもりだったが、リーダーとしてビジネスとして押さえるべきポイントを逃していた。今振り返ればいい気づき・転機だったと思う。当時はあまりのショックで本気で泣いた」と当時を振り返る。古川氏は「こういう経験があると、マネージャーになった時に先の副社長みたいなコメントができるようになる」と言う。
3つ目はよく学ぶ先輩・同僚と一緒に働いた経験だ。誰しもそうだが、若手のうちは先輩のスキルに圧倒される。遠峯氏も入社前にサーバー自作やプログラミング経験があったのでそれなりに自信があったにもかかわらず、1つ上の先輩の技術レベルを目にして「1年後にこうなれるだろうか」と自信が揺らぎ、焦りも覚えた。
そのほか7年上の先輩があまりにHadoopに詳しく、圧倒されたという。その先輩は普段から文献にもよく目を通し、ブログも書き、業界では有名人だった。再び「7年後にこんなことをできるだろうか」と不安に感じつつも、今度は冷静に「当たり前ですけど、イケてる人はみんな総じてよく勉強している」と気づくことができた。
あらためて遠峯氏は「よく学ぶ先輩や同僚と一緒に働いた経験は、いい意味でプレッシャーを感じたが、自分の成長にはいい経験になった」と話す。常にそばにいるので「何を読んでいるんですか?」と質問しやすく、勉強方法を学ぶにはいい環境だった。
計画的偶発性理論が鍵──好奇心、継続性、柔軟性、楽観主義、リスクを恐れない
続いて古川氏は「計画的偶発性理論(Planned Happenstance Theory)」を紹介した。これはアメリカの心理学者であり、キャリア・カウンセリングの分野で有名なジョン・ダウニング氏が提唱した理論だ。偶然のできごとをキャリア選択で積極的に活用することの重要性を説いている。
古川氏は「要は、キャリアの8割は運(偶然のできごと)だが、その運を待つのではなく、計画して来るように仕向けようという理論」と説明する。この理論によると次に挙げる5つの特性がポイントとなる。
好奇心(Curiosity)
好奇心には深さと幅がある。フロントエンドが好きなら、フロントエンドを深掘りして深めていく。一方で、いろんなことに興味を持つことでアンテナの幅を広げていくイメージだ。「フロントエンドが好きだからといって、それだけだと偶発性を起こすきっかけが少なくなるので幅を広げること、そして同時に深さを持つことも大事」と古川氏は説明する。
古川氏の場合、キャリアのスタートはバックエンドからだった。インデックスをはることでパフォーマンス改善するなどしていたが、フロントエンドのパフォーマンスチューニングしたら顧客に握手を求められるくらい喜ばれたことがあった。その時に「ユーザーはフロントエンドもバックエンドも両方早くならないと喜ばないのだと気づいた。だからフロントエンドもできるようにキャリアの幅を広げよう」と転換点になった。
継続性(Persistence)
「継続は力なり」とよく言われる。やり始めるモチベーションは好奇心が原動力になるが、やり続ける習慣や継続性は「テクニックである」と古川氏は説く。可能なところからスタートして、無理のない目標を立てるのがポイントだ。
古川氏は「習慣化の話はいろんな本にある。自分の場合、エンジニアとしてキャリア開発を始めたのが遅かったので焦っていた。だから毎週、何かブログを書く。半年に1回は勉強会で話す。1年に1回はアプリケーションを作る。こうしたことを根気強く続けていた」と話す。ちなみにブログの最初の投稿は「MacBook Airを買いました」だったそうだ。
柔軟性(Flexibility)
正解を1つだと決めつけないこと。環境や状況により、正解は変わる。自由に考える思考の柔軟性を持つことが大事だ。古川氏は「例えば『できない』と決めつけるのではなく、前提を変えてみる。朝令暮改、前言撤回を忌避するのではなく(間違いに気づいたら)『ごめん、間違えていた!』と言える強さを持つ」と言う。
古川氏の場合、勉強会や会社で多くの人に会い、多様な視点に出会うことができた。エキスパートとマネージャーは二者択一ではなく、両方諦めないことも実践してきた。今ではエンジニアもしつつ室長という形で経営にも携わっている。
楽観主義(Optimism)
コップに半分水が入っていて「半分もある」と思うか、「半分しかない」と思うか。ブログの間違いをコメントで指摘されて「バカにされた」とカッとするか、「間違いに気づくことができてラッキー」と喜ぶか。後者の楽観的に受けとめるほうが「間違いなく伸びる」と古川氏は言う。
楽観主義でないと成し得ないこともある。古川氏ならJSConf JPなどのイベントも主催しており、当初は「準備が間に合わなかったらどうしよう」と恐れていた時もあったが、今では恐れなくなったそうだ。むしろ「絶対にやったら楽しくなるだろう」と成功を確信している。もちろん失敗することもあるが「次に直せばいい」という気持ちで過ごすそうだ。「失敗してもいい。そんなに悪いことは起きない」(古川氏)
リスクを恐れない(Risk Taking)
結果が不確実な時にアクションがとれるか。確実に安心だと分かるまで静観したい気持ちもあるが、リスクをとらなくてはいけない時もある。古川氏の場合「Node.jsユーザーグループ代表になった時が最も怖かった」そうだ。イベントを毎回開催できるか、海外のスピーカーをどう招けばいいのかと不安は尽きなかった。しかし「やってみたら意外とできた」と言う。
最後に古川氏は「一番伝えたかったのは、意外とやってみるとできるということです。好奇心、継続性、柔軟性、楽観主義、リスクを恐れないという5つのポイントをお伝えしました。ぜひやってみてください。我々の具体的な経験や考えが皆さんの一助になれば幸いです」と会場の聴衆にエールを送り、講演を締めくくった。