なぜGoogleを辞めて独立したのか
この4年間、私はGoogleでソフトウェア開発者として働いてきました。2月1日に退職しました。理由は、会社がクリスマスプレゼントを買ってくれなかったからです。
まあ、実際はもう少し複雑な話なのですが。
最初の2年間
入社から2年が経った頃、私はGoogleが大好きでした。
年次の従業員アンケートで「5年後もGoogleにいると思いますか」と聞かれたとき、答えは明らかでした。
もちろん5年後もGoogleにいるに決まっています。世界最高のエンジニアたちに囲まれ、世界最先端の開発ツールを使い、世界で一番無料の食事を食べているのですから。

直近の人事評価は「Strongly Exceeds Expectations(期待を大きく上回る)」でした。このままいけば、すぐに次のレベルであるシニア・ソフトウェアエンジニアに昇進できるはずでした。なんていい肩書きでしょう。その後のキャリアでずっと、「ええ、Googleでシニア・ソフトウェアエンジニアでした」と言えるのです。みんなきっと感心してくれるはずです。
マネージャーは昇進は近いと断言してくれました。私にはすでにシニアレベルの仕事をする能力があると感じている、とのことでした。あとは昇進委員会にそれを証明するための適切なプロジェクトが必要なだけだというのです。
マネージャーが昇進を決めるわけではないのですか?
いいえ、Googleではマネージャーは部下を昇進させることができません。投票権すらないのです。
代わりに、昇進の可否は、昇進を決めるその日まであなたのことなど聞いたこともない上級エンジニアやマネージャーからなる小さな委員会が決めます。
昇進に申請するには「promo packet(昇進パケット)」を作らなければなりません。同僚からの推薦文、自分が作成した設計書、そしてなぜ自分の仕事が昇進に値するかを説明する小論文を集めたものです。
昇進委員会はあなたのパケットを他の数人分と一緒に審査し、誰を昇進させ誰をさせないかを一日かけて決めます。
入社後2年間のハネムーン期には、この制度は素晴らしく思えました。もちろん、私の運命は会ったこともない謎の委員会に委ねられるべきです。彼らならえこひいきや社内政治に染まることもなく、そうした雑音を超えて、私の高品質なコードと鋭いエンジニアリング判断を正当に評価してくれるはずだと考えていました。
現実はそううまくはいきません
初めて昇進パケットを作るまで、その仕組みが実際にどう運用されているかなんて考えたこともありませんでした。
私の頭の中では、昇進委員会は全知全能で公平な存在でした。毎日正しい課題を選び、コードベースを改善し、チームが効率的に仕事を進められるよう手助けしていれば、委員会は不思議とそれを察知して報いてくれるはずだと思い込んでいたのです。
当然のことながら、現実はそうではありませんでした。それに気づくのに2年かかりました。
無邪気に働いていた頃
それまでの私の主な担当は、レガシーなデータパイプラインでした。何年も保守モードで放置されていましたが、負荷が増大し、パイプラインは悲鳴を上げていました。しばしば何の警告もなく停止したり、誤った出力を出したりしました。最初の設計書以来誰もドキュメントを書いていなかったため、障害の原因究明には何日もかかりました。
私は誇りと愛情を持って、そのパイプラインを立て直しました。何十ものバグを修正し、再発を防ぐために自動テストを書きました。使われていないコードや最新のライブラリで置き換えられるコードを何千行も削除しました。学んだことをその都度ドキュメントに残し、知識を自分の頭の中に閉じ込めず、チーム全員が使えるようにしました。
問題は、昇進の時期になって初めて気づいたのですが、こうした仕事のどれも数値で示すことができなかったことです。自分の仕事がGoogleに良い影響を与えたと証明できなかったのです。
数値がなければ、やっていないのと同じ
パイプラインにはそもそも計測している指標がほとんどありませんでした。ある少数の指標でさえ、状況が悪化したように見せていました。私がバグを見つけたことで、全体のバグ数は増えました。異常時に黙って不正なデータを流すのではなく素早く失敗するようにしたため、パイプラインの失敗回数も増えました。障害対応にかかる開発者の時間は大幅に減らしたのですが、開発者の工数を追跡する指標は存在しませんでした。
他の仕事も、書類の上ではあまり良く見えませんでした。何度か、自分のプロジェクトを数週間、時には数ヶ月も中断して、ローンチが危ぶまれていた同僚を手伝いました。チームにとっては正しい判断でしたが、昇進パケットでは地味にしか映りません。昇進委員会から見れば、同僚のプロジェクトこそ複数の開発者の連携を要する大きく重要な仕事です。もし彼らが私をうまく丸め込んで手伝わせたのだとすれば、それは彼らの強いリーダーシップの証拠になります。私はといえば、自分の仕事がいつでも中断させられるほど重要でない、頭を使わない一兵卒に過ぎないのです。

否決から学んだこと
昇進を否決されたのは辛い一撃でしたが、落胆はしませんでした。自分はレベル以上の働きをしていると感じていましたし、委員会がそれを見えていないだけだと思ったのです。それなら解決できる問題でした。
最初の2年間は自分が naive すぎたと考えることにしました。自分の仕事がきちんと記録として残るように、事前に計画を立てていなかったのです。今は仕組みがわかったのだから、同じ良い仕事を続けながら、記録の残し方を改善すればいいと思いました。
たとえば、チームには誤検知による大量のメールアラートが届き、作業の妨げになっていました。以前の私なら、すぐにアラートを修正していたでしょう。でも今は、この仕事を昇進パケットに載せるためには、まず指標を整備してアラート頻度の履歴を残すべきだとわかっていました。そうすれば昇進審査のときに、アラートが右肩下がりに減っている印象的なグラフを示せるのです。
その後まもなく、昇進にうってつけと思えるプロジェクトを任されました。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が次々と途中で中断させ、新しい仕事を割り振ってきたからです。
この構図は absurd なほど、ばかげていると感じました。

私のキャリアは、人生でたった1時間だけ私のことを考える、流動的で匿名の委員会に左右されていました。私が口を出す余地のないマネジメントの決定が、数ヶ月分のキャリアの進捗を消し去っていたのです。
最悪だったのは、自分の仕事を誇れなくなっていたことです。「どうすればこの難しい問題を解けるか」ではなく、「どうすればこの問題を昇進のために難しそうに見せられるか」と考えるようになっていました。それが嫌でたまりませんでした。
たとえ昇進できたとしても、その先はどうなるのでしょう。定説では、昇進は回を重ねるごとに指数関数的に難しくなると言われていました。キャリアをさらに進めるには、より大規模で、より多くのパートナーチームとの連携を要するプロジェクトが必要になります。しかしそれは、自分の制御できない要因でプロジェクトが失敗し、数ヶ月、数年という時間を無駄にするリスクがさらに高まるということでもありました。
代替案はあるのか
ちょうどその頃、私はIndie Hackersに出会いました。

それは小規模なソフトウェアビジネスの創業者たちのオンラインコミュニティです。小規模であることが重要です。彼らはザッカーバーグを目指す人たちではなく、堅実で収益性があり、生活費をまかなえるビジネスを作りたい人たちでした。
私はずっと自分のソフトウェア会社を立ち上げたいと思っていましたが、知っているのはシリコンバレー式のスタートアップの道だけでした。ソフトウェアの創業者になるということは、ほとんどの時間を資金調達に費やし、残りの時間は次の100万人のユーザーをどう集めるかに悩むことだと思い込んでいたのです。
Indie Hackersは魅力的な代替案を提示してくれました。メンバーの多くは自己資金や本業の傍らのサイドプロジェクトとしてビジネスを築いていました。彼らは投資家に頭を下げる必要もなく、ましてや匿名の委員会に自分を証明する必要もありませんでした。
もちろん欠点もありました。収入は不安定で、壊滅的なリスクもより多く抱えていました。Googleで1000万ドルの損失を出すミスをしても、私は何の報いも受けません。ポストモーテム(事後分析)を書くよう求められ、みんなで学びの機会だと称賛するだけです。Indie Hackersの創業者の多くにとって、1000万ドルのミスはビジネスの終わりであり、何十年分もの借金を意味します。
Indie Hackersの創業者たちが私を惹きつけたのは、彼らが自分で舵を取っていたからです。ビジネスが大成功しようが何年も停滞しようが、決断を下すのは彼ら自身でした。Googleでは、自分のプロジェクトさえコントロールできている感覚がなく、ましてやキャリアの成長やチームの方向性など到底操れませんでした。
何ヶ月も考え、ついに決めました。私はIndie Hackerになりたいと思ったのです。
辞める前の最後にもうひとつ
Googleにはまだやり残したことがありました。昇進に3年を費やしたのに、何の成果もなく去るのは嫌でした。再申請まであと数ヶ月だったので、最後にもう一度だけ挑戦することにしました。
評価期間が終わる6週間前、またしても私のプロジェクトは中止になりました。
正確には、チームごと中止になったのです。Googleではよくあることなので、これを指す婉曲表現までありました。「defrag(デフラグ)」です。マネジメントは私たちのチームのプロジェクトをインドの姉妹チームに移管し、メンバー全員が社内の別の領域でやり直さなければなりませんでした。
それでも私は昇進に申請しました。数週間後、マネージャーが結果を読み上げました。私の業績評価は「Superb(卓越)」、最高評価で、各サイクルで約5%の従業員にしか与えられないものでした。昇進委員会は、過去6ヶ月間で私が明らかにシニアレベルの仕事を示したと評していました。偶然ではなく、それは私が昇進に最適化して働いていた期間でした。
しかし6ヶ月では実績として十分な期間ではないと感じたため……次回に期待、ということでした。
マネージャーは、同じ質の仕事をあと6ヶ月続ければ昇進の可能性は高いと言いました。心が揺らがなかったと言えば嘘になりますが、その時点で私はこの2年間ずっと「あと6ヶ月で昇進のチャンスは大きい」と聞かされ続けてきていました。
去るべき時が来たのです。
これからどうするのか
Googleを辞めたと人に言うと、きっと何か素晴らしいスタートアップのアイデアがあるのだろうと思われます。Googleのソフトウェアエンジニアというぬるま湯のような仕事を辞めるなんて、馬鹿しかいないと思われるからです。
しかし、私はまさにアイデアのない馬鹿でした。
私の計画は、数ヶ月ごとに異なるプロジェクトを試し、何かが当たるかどうか見てみることです。たとえば次のようなものです。
- KetoHubの開発を続けて、収益化できるか試す
- 私が何度も記事にしてきた分散ストレージ技術であるSiaの上にビジネスを構築する
- 執筆にもっと時間を割き、そこから収益を得る方法を探す
Googleは素晴らしい職場で、在職中に貴重なスキルを学びました。まだ学べることがあったので辞めるのはつらかったのですが、Googleのような雇用主はいつでも見つかります。自分の会社を立ち上げる自由がいつまでもあるとは限りません。だからこそ、この先どこへ行けるのか楽しみにしています。
追記
- 追記(2019年2月1日):ソロ開発者としての1年目
- 追記(2020年1月31日):ソロ開発者としての2年目
- 追記(2021年2月1日):ソロ開発者としての3年目
- 追記(2022年2月1日):ブートストラップ創業者としての4年目
- 追記(2023年2月10日):ブートストラップ創業者としての5年目
- 追記(2024年2月10日):ブートストラップ創業者としての6年目
イラスト:Loraine Yow
記事をランダムに読む