Googleで働いて14年後に悟った21の金則

書くのは難しくない、「人」と「複雑さ」が難しい。シニアGoogleエンジニアが14年の経験を共有、ユーザー思考からチーム協力まで、これら21の金則があなたのより深遠なキャリアを成就させる助けとなる。
(前置き:Googleリアルタイム翻訳がすべてのイヤホンブランドに正式解放:70+言語対応、米墨印Androidスマホ先行リリース)
(背景補足:Googleが正式に「Gemini 3」をリリース!世界最も賢いAIモデルの頂点に立つ、そのハイライトは?)

この記事の目次

    1. 一流エンジニアはユーザー問題解決に夢中
    1. 「自分が正しい証明」は無価値、正しい目標を共同達成することが重要
    1. 行動志向。リリースせよ!あなたはダメなページを修正できるが、空白ページは修正できない
    1. シニアは明快さに、賢さは負担に現れる
    1. 「新奇さ」は修理、採用、認知負荷に対する高利貸
    1. コードはあなたの声を代弁しない、人間が声を出す
    1. 最高のコードはあなたが未だ書いていない一行
    1. 規模が大きくなると、あなたのバグもユーザーを持つ
    1. 多くの「遅い」チームは実は「焦点喪失」したチーム
    1. コントロールできることに集中し、できないことは無視せよ
    1. 抽象は複雑さを消さず、移すだけ
    1. 書くことは明快さを強制し、教えることは最速の学習法
    1. 他の仕事を可能にする仕事は無価値ではなく、見えないもの
    1. すべての議論に勝つと、無言の抵抗を蓄積している可能性
    1. 指標が目標になると、それは良い指標ではなくなる
    1. 「知らない」を認めることは、「わかるふり」より安全を生む
    1. あなたの文脈は、あなたがした仕事よりも長く続く
    1. パフォーマンス向上の多くは「仕事の削除」から、賢いアルゴリズムではない
    1. 流れの存在は不確実性を減らすためであり、書類作成のためではない
    1. 最終的に、時間は金銭より価値がある。これに基づいて行動せよ
    1. 近道はないが、複利効果はある
  • 最後の一言

Google Cloud AIディレクターAddy Osmaniは、経験豊富なソフトウェアエンジニア兼思想家で、Chromeの開発者体験責任者として約14年勤務、DevTools、Lighthouse、Core Web Vitalsなどのプロジェクトに関わった。現在はGoogle DeepMind、エンジニアリング、プロダクト、開発者関係チーム間の調整を担当している。

彼は3日に個人ブログに深い職場経験を綴った記事を公開した。Googleでの長年の経験と職業素養を融合し、コミュニケーション、技術選択、キャリア設計に関する貴重なアドバイスを21項目にまとめた。以下に翻訳・整理する。


約14年前にGoogleに入ったとき、私はこの仕事は完璧なコードを書くことだと思っていた。部分的には正しかった。しかし、長くいるほど、優秀なエンジニアは必ずしも最も良いコードを書いているわけではなく、「コード以外のすべてを操る」ことを学んだ人たちだと気づいた。人間関係、職場の政治、合意形成、不確実性を含む。

これらの経験は、早く理解しておきたかったものだ。いくつかは数ヶ月の挫折を節約し、いくつかは数年かけて本当に理解した。これらは特定の技術に関係しない:技術の変化は速すぎて重要ではない。むしろ、異なるプロジェクトやチームで繰り返し現れる規則性に関わる。

これらを共有するのは、私が後輩を支援してくれるエンジニアから多くを学んだからだ。これが私からのフィードバックの一つ。

1. 一流エンジニアはユーザー問題解決に夢中

特定の技術に夢中になり、応用例を探すのは非常に魅力的だ。私もやったし、誰もがやったことだ。でも、最大の価値を生むエンジニアは「逆向きの仕事」をする:彼らはユーザー問題を深く理解し、その理解から自然に解決策を導き出すことに夢中になる。

ユーザーへの執着は、カスタマーサポートのチケットを研究したり、ユーザーと会話したり、操作の困難さを観察したり、「なぜ?」と問い続けて核心に触れることを意味する。本当に問題を理解したエンジニアは、しばしば予想よりもシンプルな解決策を見つける。 解決策から出発するエンジニアは、自分の方案を合理化するために不必要な複雑さを増やしがちだ。

2. 「自分が正しい証明」は無価値、正しい目標を共同達成することが重要

すべての技術的議論に勝てても、プロジェクト全体に勝てるわけではない。賢いエンジニアは、常に最も賢い人になろうとすることで、無言の恨みを蓄積していることがある。この代償は、「神秘的な実行問題」や「不可解な抵抗」として現れる。

スキルは「正しさ」ではなく、問題に参加して調整し、他者に空間を作り、自分の確信に疑いを持つことにある。 強い意見と開かれた心——これは信念が欠如しているからではなく、不確実な状況での決定は自尊心と結びつくべきではないからだ。

3. 行動志向。リリースせよ!あなたはダメなページを修正できるが、空白ページは修正できない

完璧を追い求めると麻痺する。私は何週間も議論し、未だ構築していない理想的なアーキテクチャについて考えるエンジニアを見てきた。完璧な方案は純粋な思考から生まれることは少なく、現実との衝突から生まれる。AIは多くの面で助けになる。

**まずやってみて、次に正し、最後により良くする。**醜いプロトタイプをユーザーに見せる。混沌とした設計ドキュメントの草稿を書き、恥ずかしいMVPをリリースする。1週間のリアルなフィードバックから学ぶことは、1ヶ月の理論的議論よりも多い。 勢いは明快さをもたらし、分析麻痺は何も成し遂げない。

4. シニアは明快さに、賢さは負担に現れる

「賢い」コードを書く本能はエンジニア共通のもので、能力の証明のように感じることもある。しかし、ソフトウェアエンジニアリングは「時間」と「他の設計者」の化学反応だ。この環境では、明快さはスタイルの好みではなく、運用リスクを低減するためのもの

あなたのコードは、深夜2時に故障修復を行う見知らぬ人のための戦略的メモだ。彼らの理解を最適化し、自分の優雅さではなく。私が最も尊敬するシニアエンジニアは、常に「賢さ」と「明快さ」を交換している。

5. 「新奇さ」は修理、採用、認知負荷に対する高利貸

あなたの技術選択を、予算の限られた「イノベーショントークン」会社とみなす。実質的に標準外の技術を採用するたびに一枚使う。多くは払えない。ポイントは、「絶対に革新しない」ことではなく、「得られる報酬がある場所だけ革新する」。

その他はすべて、「退屈」だと想定すべきだ。なぜなら、退屈はその失敗モードが既知であることを意味するからだ。 「最適なツール」は、多くの仕事で最も悪くないツール——技術的な動物園を運営するのは本当の負担になる。

6. コードはあなたの声を代弁しない、人間が声を出す

キャリア初期、私は優れた仕事は自動的に証明されると思っていた。違った。コードは静かにリポジトリに残るだけだ。あなたの上司が会議であなたについて言及するか、同僚があなたをプロジェクトに推薦するか、これが重要だ。

大きな組織では、決定はあなたが招かれない会議で、5分しかない中で12の優先事項を処理する人が、あなたが書いたことの要約に基づいて行われる。あなたが不在のときに誰もあなたの影響力を語れなければ、その影響力は無意味だ。これは自己アピールだけではなく、価値の連鎖を誰にでも見えるようにすることだ。

7. 最良のコードはあなたが未だ書いていない一行

エンジニア文化は創造を祝福する。コードを削除して昇進する人はいないが、削除は増やすよりもシステムを最適化できる。あなたが書いていない一行は、永遠にデバッグ、保守、説明の必要がない。

構築前に、徹底的に自問せよ:「もし何もしなかったらどうなる?」時には「何も悪くない」答えもあり、それがあなたの解決策だ。問題は、エンジニアがコードを書かない、AIを使わないことではなく、「書くべきかどうか」を問うのが下手なことだ。

8. 規模が大きくなると、あなたのバグもユーザーを持つ

ユーザーが十分に多くなると、あらゆる観測可能な行動は依存関係になる——あなたが約束したことに関わらず(ハレムの法則)。誰かがあなたのAPIを取得し、自動化し、奇妙な機能やバグをキャッシュしている。

これにより、職業的な洞察が生まれる:互換性のための作業は「メンテナンス」と見なさず、新機能は「本当の仕事」と見なさないこと。互換性は製品そのものだ。 廃止計画を設計するときは、時間、ツール、共感を伴う移行とみなすべきだ。ほとんどの「API設計」は実際には「APIの退役」だ。

9. 多くの「遅い」チームは実は「焦点喪失」したチーム

プロジェクトが停滞すると、直感的には実行力の問題:人手不足、技術選択ミスと考えがちだ。多くの場合、核心的な問題ではない。大企業では、チームは並列処理の単位だが、調整コストは幾何級数的に増加する。多くの遅さは焦点の喪失——間違ったものを作っているか、正しいものを非互換な方法で作っているだけだ。シニアエンジニアは、より多くの時間を方向性、インターフェース、優先順位の明確化に費やす。なぜなら、それが真のボトルネックだから。

10. コントロールできることに集中し、できないことは無視せよ

大企業では、多くの変数はあなたのコントロール外——組織構造の調整、経営層の決定、市場の変化、プロダクトの方向性。これに固執すると不安になるだけだ。冷静で効率的なエンジニアは、自分の影響範囲に集中する。

再編をコントロールできなくても、仕事の質、反応、学びをコントロールできる。不確実性に直面したら、問題を分解し、具体的に取れる行動を見つける。これは消極的な受容ではなく、戦略的集中だ。変えられないことに費やすエネルギーは、変えられることから奪われる。

11. 抽象は複雑さを消さず、移すだけ

すべての抽象はギャンブルだ。底層の原理を理解しなくて済むと賭ける。時には勝つが、抽象は必ず漏れる。失敗したときに底層の動作を知る必要がある。シニアエンジニアは、技術スタックが高くなるほど、「底層」の知識を学び続ける。これは懐古ではなく、抽象の失敗時に備えるためだ。ツールスタックを使いつつ、その底層の失敗モードの心智モデルを持つこと。

12. 書くことは明快さを強制し、教えることは最速の学習法

書くことは思考を促す。概念を他人に説明するとき——ドキュメント、プレゼン、コードレビュー、AIとの会話さえも——理解の空白に気づく。

内容を他人に明快に伝える過程は、自分にとっても明快さを増す。これは知識を惜しみなく共有するだけでなく、自己学習の最速の技術だ。何かを理解したと思ったら、シンプルに説明してみる。つまずく部分は、理解が浅い証拠だ。 教えることは、自分の心智モデルをデバッグすることだ。

13. 他の仕事を可能にする仕事は無価値ではなく、見えないもの

「グルーワーク(Glue work)」——ドキュメント、オンボーディング、チーム間調整、プロセス改善——は非常に重要だ。しかし、無意識にやると、技術的成長を妨げ、疲弊させる。罠は、「助け合い」として捉えることだが、意識的で境界のある、見える貢献とみなすことだ。時間を制限し、交代制にし、成果(ドキュメント、テンプレート、自動化ツール)に変換せよ。

それを影響力とみなすべきであり、人格的な資質と誤解しない。

14. すべての議論に勝つと、無言の抵抗を蓄積している可能性

自分の確信に疑いを持つことを学んだ。あまりに簡単に勝つと、何かがおかしい。人々は議論をやめるのではなく、諦めているだけだ——彼らは会議ではなく、実行中に反対を表明する。 真の調整には時間がかかる。

他者の視点を理解し、フィードバックを取り入れ、時には公開で意見を変えることも必要だ。短期的に議論に勝つ快感よりも、長期的に心から納得した仲間と働く価値の方が大きい。

15. 指標が目標になると、それは良い指標ではなくなる

管理層に示す指標は最終的に「操作」される。これは悪意ではなく、人間は測定された内容を最適化する(グッドハートの法則)。コード行数を追えば行数は増える。速度を追えば膨張した見積もりになる。

シニアのやり方:各指標に対して、2つの指標を求める。一つは速度、もう一つは質やリスクを見る。トレンドを解釈し、閾値を崇拝しない。洞察力を持ち、監視ではなく理解を目指す。

16. 「知らない」を認めることは、「わかるふり」より安全を生む

「知らない」と言える資深エンジニアは、弱さを見せるのではなく、「許可」を与える。リーダーが不確実性を認めると、これは安全な場を示すシグナルだ。私が見た中で、困惑を認めないチームは大きな傷を負う:問題は誰も質問しなくなる、仮定は挑戦されず、初級エンジニアは黙ったままになる。 好奇心を示せば、学び続けるチームを作れる。

17. あなたの文脈は、あなたがした仕事よりも長く続く

キャリア初期、私は仕事に集中しすぎて人脈を疎かにした。今振り返ると、それは誤りだ。関係性(社内外の同僚)に投資すれば、何十年も恩恵を受けられる。彼らは最初にチャンスを知らせ、橋渡しを早く築き、推薦を得て、長年の信頼を築いた人と共に起業できる。 仕事は永遠ではないが、人脈は永遠だ。 好奇心と寛大さを持って関係を築く。

18. パフォーマンス向上の多くは「仕事の削除」から、賢いアルゴリズムではない

システムが遅くなると、つい増やしたくなる:キャッシュ層、並列処理、より賢いアルゴリズム。これも間違いではないが、多くのパフォーマンス向上は「必要のないものを計算から除外」することから来る。不要な仕事を削除する方が、必要な仕事をより速く完了させるよりも効果的だ。最速のコードは、動かさないコードだ。

19. 流れの存在は不確実性を減らすためであり、書類作成のためではない

最良の流れは、調整を容易にし、失敗のコストを低減させるものだ。最悪の流れは、「官僚的な演劇」——責任を押し付けるためだけに存在する。あなたがある流れがリスクを低減し、明快さを増すと説明できなければ、それは単なる負担だ。人々が記録に費やす時間が仕事の時間を超えるなら、大問題だ。

20. 最終的に、時間は金銭より価値がある。これに従って行動せよ

キャリア初期は時間をお金と交換していた。それは問題ない。しかし、ある時点で、その計算は逆転する。時間は再生不可能な資源だと気づく。私は、次の階級やわずかな給与差を追い求めて疲弊するエンジニアを見てきた。得る者もいるが、多くはその代償に疑問を持つ。答えは「努力しないこと」ではなく、「何と交換しているかを知り、意識的に取引すること」だ。

21. 近道はないが、複利効果はある

専門知識は意識的な練習から生まれる——少しだけ今のスキル範囲を超え、振り返り、繰り返し、何年も続けること。短縮版はない。ただし、学習の希望は:新しい選択肢を生み出す学習は、単なる断片的知識よりも複利を生む。書くこと(明快さのため)、再利用可能な原則の構築、痛みからの教訓を操作マニュアルに収集すること。
キャリアを「複利」として捉えるエンジニアは、遥かに長く歩める。


最後の一言

これら21のポイントは多く聞こえるかもしれないが、核心はいくつかの原則に集約される:好奇心を持ち続け、謙虚さを保ち、仕事は常に人に関わること——それは、あなたが作る製品のユーザーや、共に作るチームメイトも含む。

エンジニアのキャリアは長い。多くの失敗を経ても成功できるほどだ。私が最も尊敬するエンジニアは、決して失敗しない人ではなく、失敗から学び、発見を共有し、粘り強く続ける人だ。

この旅を始めたばかりなら、それは時間とともにますます素晴らしくなることを知ってほしい。すでに長く歩んでいるなら、いくつかのポイントが共感を呼ぶことを願う。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン