なぜGoogleを辞めて独立したのか
原文は Michael Lynch により に公開されました。 このブログを購読する
過去4年間、Googleでソフトウェアエンジニアとして働いてきた。2月1日、私は退職した。理由は、会社がクリスマスプレゼントを買ってくれなかったからだ。
まあ、実際はもう少し複雑な話なのだが。
最初の2年間
入社から2年が経った頃、私はGoogleが大好きだった。
年次従業員サーベイで「5年後もGoogleにいると思いますか」と聞かれても、答えは明らかだった。
もちろん、5年後もGoogleにいるに決まっている。世界最高のエンジニアたちに囲まれ、世界最先端の開発ツールを使い、世界で一番タダ飯がうまい環境だったのだから。

直近の人事評価は「Strongly Exceeds Expectations」だった。このままいけば、すぐに次のレベルであるSenior Software Engineerに昇進できるはずだった。なんと素晴らしい肩書きだろう。その後のキャリアでずっと、「ええ、私はGoogleでシニアソフトウェアエンジニアでした」と言えるのだ。みんな驚くだろう。
マネージャーも昇進は近いと断言してくれた。すでにシニアレベルの仕事ができるだけの能力はあるという。あとは昇進委員会にそれを証明するための適切なプロジェクトが必要なだけだと。
マネージャーが昇進させるわけじゃないの?
違う。Googleでは、マネージャーは部下を昇進させることができない。投票権すらないのだ。
代わりに、昇進の可否は、あなたのことを昇進を決める当日まで知らなかったような上級ソフトウェアエンジニアやマネージャーからなる小さな委員会が決める。
昇進に立候補するには、「プロモーションパケット」を作らなければならない。チームメイトからの推薦文、自分が作成した設計書、そしてなぜ自分の仕事が昇進に値するのかを説明する小論文などを集めたものだ。
昇進委員会は、そうしたパケットを数人分まとめて審査し、誰を昇進させ誰をさせないかを1日かけて決める。
入社2年目のハネムーン期間にあった私には、この制度は素晴らしく思えた。もちろん、私の運命は会ったこともない謎の委員会に委ねられるべきだ。彼らならえこひいきや社内政治に染まることなく、純粋に私の質の高いコードと抜け目ないエンジニアリング判断を評価してくれるはずだ、と。
現実はそううまくいかない
最初のプロモーションパケットを作るまで、私はその仕組みが実際にどう運用されているかなんて考えたこともなかった。
私の頭の中では、昇進委員会は全知全能で公正な存在だった。毎日前向きに正しい問題を選び、コードベースを改善し、チームが効率的に仕事を進められるように手助けしていれば、昇進委員会はそれを魔法のように察知して報いてくれるはずだと。
当然、現実はそうではなかった。それに気づくのに2年かかった。
ナイーブに働く
それまでの私の主な仕事は、レガシーなデータパイプラインの担当だった。何年も保守モードで動いていたが、負荷が増大し、パイプラインは悲鳴を上げていた。頻繁に黙って停止したり、誤った出力を吐いたりした。最初の設計書以来誰もドキュメントを書いていなかったため、不具合の診断には何日もかかった。
私は誇りを持って、愛情を込めてそのパイプラインを立て直した。何十ものバグを修正し、再発しないように自動テストを書いた。使われていない、あるいは最新のライブラリで置き換え可能な数千行のコードを削除した。自分が学んだことをドキュメント化し、属人化していた知識をチーム全体で共有できるようにした。
しかし、昇進の段になってわかったのは、そうした仕事はどれも数値化できないということだった。自分のやったことがGoogleに良い影響を与えたと証明できなかったのだ。
数値がなければ、やっていないのと同じ
パイプラインはあまりメトリクスを記録していなかった。あるメトリクスはむしろ状況が悪化したように見せた。私がバグを見つけたことで、全体のバグ数は増加した。異常時に不正なデータを黙って流すのではなく素早く失敗させるようにしたため、パイプラインの失敗回数も増えた。私はそうした障害の修復にかかる開発者の時間を大幅に削減したが、開発者の時間を追跡するメトリクスは存在しなかった。
他の仕事も、書類の上ではあまり良く見えなかった。何度か、リリースが危ぶまれている同僚を助けるために、自分のプロジェクトを数週間、時には数ヶ月も中断した。チームにとっては正しい判断だったが、パケットの中ではぱっとしなかった。昇進委員会から見れば、同僚のプロジェクトは複数の開発者の連携を要する大きくて重要な仕事だ。もし彼らが私をうまく丸め込んで手伝わせたのだとすれば、それは彼らの強いリーダーシップの証拠になる。私はといえば、自分の仕事があまりに重要でないからいつでも中断できる、頭を使わない雑用のような存在でしかなかった。
初めてのプロモーションパケットを提出した結果は、恐れていた通りだった。昇進委員会は、私が技術的な複雑さに対処できることを証明できておらず、Googleに与えたインパクトが見えないと言ってきた。

不採用から学んだこと
不採用はつらい一撃だったが、落胆はしなかった。自分のパフォーマンスはレベル以上だと感じていたが、昇進委員会にはそれが見えていないだけだ。それなら解決可能だと思った。
最初の2年間はナイーブすぎたと反省した。自分がやっている仕事がきちんと記録に残るよう、事前に計画を立てていなかったのだ。今は仕組みがわかったのだから、同じ良い仕事をしつつ、記録の残し方を改善すればいい。
例えば、チームは誤検知による大量のメールアラートに悩まされていた。以前の私なら、ただアラートを修正していただろう。しかし今は、それをパケットでアピールするには、まずメトリクスを整備してアラート頻度の履歴を残すべきだとわかっていた。昇進の時には、アラートが右肩下がりに減っていく見栄えの良いグラフを示せるのだ。
その直後、昇進にうってつけと思えるプロジェクトを任された。機械学習に大きく依存するもので、当時も今もGoogleで最もホットな分野だ。何百人もの人手でやっていた作業を自動化するもので、Googleへの客観的で明確なインパクトがあった。さらに、プロジェクトを通してジュニアな開発者をリードする必要があり、それは一般的に昇進委員会で評価されるポイントだった。
ホリデーギフトで目が覚めた出来事
数ヶ月後、Googleが全従業員への豪華なホリデーギフトという長年の伝統をやめたことが話題になった。代わりに、その予算で慈善を装った広告恵まれない子どもたちのためにChromebookを購入したのだ。
その直後、私は従業員同士の次のような会話を目にした。
従業員A:実質的には今でもギフトをもらっているのと同じだよ。こういうコスト削減はGoogleの株価を上げる。君は付与された株を売って、好きなプレゼントを買えばいいじゃないか。
従業員B:もし僕が妻に「クリスマスプレゼントは買わないけど、銀行口座のお金で好きなものを買っていいよ」と言ったらどうなると思う?
従業員A:君とGoogleの関係はビジネスだよ。妻にするみたいにGoogleがギフトで君を「口説いて」くれないからといってがっかりするなんて、関係性をはき違えているよ。
ちょっと待て。私もGoogleとビジネス関係にあったのだ。
2年半もそれに気づかなかったのは奇妙に聞こえるかもしれないが、Googleは組織内に共同体意識を醸成するのがうまい。私たちは単なる従業員ではなく、私たち自身がGoogleなのだと感じさせてくれるのだ。
その会話で、私は自分がGoogleそのものではないのだと気づいた。私はGoogleにお金と引き換えにサービスを提供しているだけなのだ。
だとすれば、Googleと私のビジネス関係が互いの利益のためにあるのなら、なぜ私はGoogleの利益になることばかりに時間を使い、自分の利益になることをしていなかったのか。昇進委員会がバグ修正やチーム支援の仕事を評価しないのなら、なぜ私はそれを続けていたのか。
昇進に最適化する
最初の昇進否決から、私は間違った教訓を学んだ。同じ仕事を続けつつ、昇進委員会に良く見えるようにうまく包めばいいと思ったのだ。本来は逆をやるべきだった。昇進委員会が何を求めているかを把握し、その仕事だけをやるべきだったのだ。
私は新しい戦略をとった。何かに取りかかる前に、それが昇進に役立つかどうかを自問した。答えがノーなら、手を出さないことにした。
コードの品質基準も、「この先5年間保守できるか」から「昇進するまで持てばいい」に下がった。プロジェクトのリリースを脅かすものでなければ、バグの登録も修正もしなかった。保守作業の責任からはあらゆる手を使って逃れた。学内リクルーティングイベントへのボランティアもやめた。週に1〜2件こなしていた面接も、ゼロにした。
そしてプロジェクトは中止になった
優先順位が変わった。マネジメントは私のプロジェクトをインドの姉妹チームに譲渡した。代わりに、あちらが持っていたプロジェクトをこちらが引き取ることになった。ドキュメントがなく、非推奨のインフラ上に構築されたシステムだったが、それでも本番環境で動く重要なコンポーネントだった。私はそれを姉妹チームのコードから切り離し、本番で動かし続けながら性能指標を満たしつつ、新しいフレームワークへ移行する作業を任された。
昇進という観点では、これは数ヶ月の後退を意味した。中止されたプロジェクトでは何もリリースしていなかったため、費やした2ヶ月は無駄になった。引き継いだシステムを理解するだけで数週間かかり、さらにそれを運用し続けるための雑務で数週間を失う可能性があった。
一体何をやっているんだろう?
半年で3回目のことだった。マネージャーがプロジェクトの途中で私を別の仕事に配置転換したのだ。そのたびに、彼はそれが私の仕事の質とは関係なく、上層部の戦略や人員配置の変更によるものだと保証してくれた。
このあたりで、私は一歩引いて高い視点から状況を整理してみた。マネージャーも、その上のマネージャーも、昇進委員会も忘れて、ただ私とGoogleだけに単純化したらどうなるか。私たちの「ビジネス関係」では何が起きていたのか。
Googleは、プロジェクトを最後までやり遂げるのを見るまで私の仕事を評価できないと言い続けた。一方で、私はGoogleにプロジェクトを途中で中断され、次々と新しい仕事を割り当てられていたため、どのプロジェクトも完了できなかったのだ。
その構図はばかげているとしか思えなかった。

私のキャリアは、人生で1時間だけ私のことを考える、顔も知らない流動的な委員会によって左右されていた。私が口を挟む余地のないマネジメントの決定が、私のキャリアの数ヶ月分を消し去っていたのだ。
最悪だったのは、自分の仕事に誇りを持てなくなったことだ。「この難しい問題をどう解こうか」ではなく、「この問題を昇進のためにどう難しそうに見せようか」と考えるようになっていた。それが嫌でたまらなかった。
仮に昇進できたとしても、その次はどうなるのか。よく言われるのは、昇進は1回ごとに指数関数的に難しくなるということだ。キャリアを伸ばし続けるには、さらに規模が大きく、より多くのチームとの連携を要するプロジェクトが必要になる。しかしそれはつまり、自分のコントロール外の要因でプロジェクトが失敗し、数ヶ月、あるいは数年分の人生を無駄にする可能性がさらに高まるということでもあった。
別の道はあるのか
ちょうどその頃、私はIndie Hackersに出会った。

小さなソフトウェアビジネスの創業者たちのオンラインコミュニティだ。小さいことが強調点だ。彼らは次のザッカーバーグを目指すような人たちではなく、ささやかでも利益を出し、生活費をまかなえるビジネスを作りたい人たちだった。
私は前から自分のソフトウェア会社を立ち上げることに興味があったが、知っていたのはシリコンバレー流のスタートアップの道だけだった。ソフトウェア創業者になるというのは、ほとんどの時間を資金調達に費やし、残りの時間は次の100万ユーザーをどう集めるかに悩むことだと思っていた。
Indie Hackersは魅力的な代替案を示してくれた。メンバーの多くは貯金で、あるいは本業の傍らでビジネスを作っていた。彼らは投資家に頭を下げる必要もなければ、匿名の委員会に自分を証明する必要もなかった。
もちろん欠点もあった。収入はより不安定で、壊滅的なリスクもより多い。Googleで私が1000万ドルの損失を出すミスをしても、何のお咎めもなかっただろう。事後分析(ポストモーテム)を書くよう求められ、みんなで学びの機会だと祝ってくれるはずだ。彼らのような創業者にとって、1000万ドルのミスは事業の終わりを意味し、何世代分もの借金を背負うことになる。
Indie Hackersの創業者たちに惹かれたのは、彼らが自分で舵を握っていたからだ。事業が大成功しようが何年も停滞しようが、決めるのは自分たちだ。Googleでは、自分のプロジェクトすらコントロールできている気がしなかったし、ましてキャリアの成長やチームの方向性などなおさらだった。
数ヶ月考えた末、ついに決めた。私もIndie Hackerになりたい、と。
辞める前の最後のあがき
それでもGoogleにやり残したことがあった。昇進に3年もかけてきたのに、何の成果もなく辞めるのは悔しかった。昇進に再挑戦できるまであと数ヶ月だったので、最後にもう一度だけ挑戦することにした。
評価期間が終わる6週間前、またしても私のプロジェクトは中止になった。
正確には、チームごと中止になったのだ。Googleではよくあることで、それを表す婉曲語すらあった。デフラグだ。マネジメントは私たちのチームのプロジェクトをインドの姉妹チームに移管した。チームメイト全員が、社内の別の領域でゼロからやり直さなければならなくなった。
それでも私は昇進に申請した。数週間後、マネージャーが結果を読み上げた。私の人事評価は「Superb」、最高評価で、各サイクルで約5%の従業員にしか与えられないものだった。昇進委員会は、過去6ヶ月間で私が明らかにシニアレベルの仕事を示したと評していた。偶然にも、それは私が昇進に最適化して働いていた期間だった。
しかし、6ヶ月では実績として十分な期間ではないということで…また次回頑張ってくれ、とのことだった。
マネージャーは、同じ質の仕事をあと6ヶ月続ければ昇進の可能性は高いと言ってくれた。心が揺らがなかったといえば嘘になるが、その時点で私はもう2年間、「あと6ヶ月で昇進のチャンスは十分ある」という言葉を聞き続けてきていたのだ。
去る時が来たのだ。
これからどうするのか
Googleを辞めたと言うと、人々はきっと何か素晴らしいスタートアップのアイデアがあるのだろうと思う。Googleのソフトウェアエンジニアという、これ以上ないほど恵まれた仕事を辞めるのは馬鹿だけだ、と。
だが私はまさに、何の考えもない馬鹿なのだ。
計画としては、数ヶ月ごとに異なるプロジェクトを試し、何かが当たるかどうかを見てみることだ。例えば、
Googleは素晴らしい職場だったし、在職中に貴重なスキルを学んだ。まだ学ぶべきことがある中で辞めるのはつらかったが、Googleのような雇用主はいつでも見つかる。自分の会社を立ち上げる自由が持てるのは今しかないかもしれない。だから、これからどうなるのか楽しみにしている。
追記
- 追記(2019年2月1日): My First Year as a Solo Developer
- 追記(2020年1月31日): My Second Year as a Solo Developer
- 追記(2021年2月1日): My Third Year as a Solo Developer
- 追記(2022年2月1日): My Fourth Year as a Bootstrapped Founder
- 追記(2023年2月10日): My Fifth Year as a Bootstrapped Founder
- 追記(2024年2月10日): My Sixth Year as a Bootstrapped Founder
イラスト:Loraine Yow
記事をランダムに読む
コメント
ログインしてコメントする