Spinach Forest

テック社員の教科書たち

(不定期出世できなかった中年愚痴です。)

二十年以上前に書いた自分の日記 に以下のような一節があった。

コーディング・コンベンションに相当するお仕事コンベンションのようなものが欲しい. 私が求めているのは, 金持ちになる方法でも頭がよくなる方法でもリーダーシップを発揮する方法でも出世する方法でも画家になる方法でもなく, 日々の業務のボトムラインを こういうものだ とまとめたもの. いってみれば お仕事版 “コードコンプリート” … ほど網羅的でなくていいや. “ライティングソリッドコード” のような本だ.

ゼロ年代前半に大学を卒業した頃、自分はプログラマのキャリアパスをわかっていなかった。どうも管理職というのにならないといけないらしい。それとは別にアーキテクトとかいうのがあり、それはかっこいいらしい、くらいの認識。それぞれがなんなのかはわかっていなかった。

最初に働いた会社にはたしかに管理職というのがいて、あとアーキテクトというのもいた。アーキテクトはあんまし仕事をしてなさそうで、一方の管理職は客に頭をさげたりしていた。アーキテクトの方がいいな、と感じた。

そのあと似たような、あるいは一回り小さい会社に二回くらい転職したけれど、どちらもやはりアーキテクト・エースプログラマはあまり仕事をしてなくて、管理職は頭を下げていた。エースが仕事をしてないというと語弊があるが、稼げる仕事とは別のやりたいことを好きにしているように見えた。これは客に頭をさげるよりだいぶ良さそうに見えたが、一方で下々たる身からするとオメー仕事しろという気分もあった。

プログラマのキャリアは、よくわからなかった。

達人プログラマ

「プログラマのキャリアがわからないって、おまえ達人プログラマ読んだの?」と古い読者は問うかもしれない。

達人プログラマ (1999) は、おそらく一番広く読まれたプログラマ向け自己啓発本の一つで、たしかに少しはプログラマのキャリアを議論している。その重点はプログラミングという技巧を高め続けること、移りゆくテクノロジにキャッチアップしつづけることにあったと思う。

強く影響を受けた価値観ではあるが、この「キャリア」観は振り返るとそこまで自分には当てはまらなかった。

「達人プログラマ」は、プログラマは一人のプログラマのままいつまでも生き続けていく想定がある。著者の David Thomas はオンライン出版社の Pragmatic Bookshelf を立ち上げ、その運用を通じ生涯いちプログラマを続けた(※まだ生きてます)。技術スタックも Elixir に手を出してみたり、少なくともある時期まではまあまあモダンな面はあった。有言実行でかっこいい。

ただ自分は 15 年以上も同じ会社でダラダラ働いてしまい、違う世界線を生きてしまった。直球達人プログラマにはなれなかった。そういう前提で話は進みます。テクノロジへの追従も大事だけどさ、色々めんどくさいこと多いんだよね会社員。新しいプログラミング言語もさ、Android やってると Kotlin くらいしかないじゃん?

20 世紀末からゼロ年代

さて、そのむかしプログラマのキャリアについて考えようと本屋に出向いても、自分が気にしてなかっただけの可能性はゼロではないが、プログラマのキャリアは(技術にキャッチアップする以外は)よくわからなかった。冒頭の発言もそんな戸惑いの現れだった。

ソフトウェア開発者向けに組織についての話題を扱った本はあった。「コンサルタントの秘密」 (1991), 「デスマーチ」 (1996), 「ピープルウェア」(1999) あとは超古典「人月の神話」 (1975) みたいな読み物もあったし、見積もりだとかソフトウェア工学(これはソフトウェア以前の工学から地続きのジャンルである)だとかプロジェクトマネジメントだとか、ソフトウェア開発の「ハイレベル」な側面を扱う専門書も沢山あった。アジャイルもその仲間に数えていいだろう。

ただこれらの書籍はどれも、ワインバーグは例外かもしれないが、「キャリア」が主眼の本ではなかったと思う。「いかにプロジェクトを成功させるか」に主眼がおかれていた。プログラミング指南書が「いかに良いコードを書くか」を主眼としていたのと同じ。どちらも「問題」と向き合っていた。

プログラマのキャリアの道標となった・・・かどうかはともかく、イマジネーションを掻き立てたのは、むしろ「闘うプログラマー」 (1994) や 「ハッカーと画家」 (2010) , 「Coders At Work」 (2009) あとは 「Joel On Software」 (2004) のような読み物だった。脚色されつつも実話に基づくストーリーにはリアルなキャリアを感じられた気がする。(外国の話なぶんリアルさは弱まったけれど、イマジネーションの勢いで乗り切った。)

2010 年代

自分が外資系大企業に転職した 2010 年頃から、少しずつ様子が変わり始めた。

最初に目についたのは「Being Geek」 (2012) という本。シリコンバレーで働く著者 Michael Lopp がプログラマ(「ソフトウェア開発者」)のキャリアについて書いている。著者のブログ記事を編集したエッセイ集で、転職、管理職、組織政治などについてランダムに語る。プログラマ向けでありながら「問題」ではなく「自分」に焦点を当てた当時としては珍しい本だった。

キャリア語りをセルフ・ブランディングにつなげる切り口は現代的だが、描かれている世界はゼロ年代前後の、まだ少し荒々しさを残す「シリコンバレー」の空気が閉じ込められている。語り口も良く言えばざっくばらんだが若干ラフで、オライリーの表紙と噛み合ってない。いま読み直しても役には立たないが民俗学的面白さがある。(vs. 昔読んだときの感想)

Being Geek は時代の境目に書かれた。

サブプライムの金融危機を契機に始まった アメリカのゼロ金利政策期 はテック産業に大量の資金を呼び込み、それとともに沢山の人材を呼び込んだ。まず従来は金融やコンサルティングを選んでいたエリート大卒たちがやってきて、そのあと段々と裾野が広がった。Lean To CodeCS For All のような掛け声が生まれ、大統領が太鼓判を押す。そんな時代がきた。

人が増えて、多様化した。それにあわせ “Being Geek” という書名に象徴される非コミュでおたくで中二病な伝統的プログラマ像は薄まった。

Engineering Manager

ソフトウェア開発者が存在感を増し企業社会の一級市民になると、その管理職も Dilbert の pointy haired boss (元祖 Wiki の C2 によれば “A technically-clueless master of bullshit and bureaucracy-surfing.")から開発者出身のプロフェッショナルへと姿を変えた。Being Geek の Michael Lopp も 「Managing Humans 」というマネージャ向けの本を書き、Being Geek よりずっとよく売れた。

リンク先 Amazon の関連図書リストを見ればわかるとおり、2010 年代は沢山のソフトウェア開発管理職 (Engineering Manager) 向けの本が書かれた。中でもキャリアという視点で特筆すべき一冊は Camille Fournier の 「The Manager’s Path」 (2017) だろう。章ごとに TL, 一線マネージャーから Director, VP と、肩書ごとの責務や仕草を議論している。ソフトウェア開発の管理職業務の共通理解が進んだ象徴と見ることができる。また同時期 (2019) に出版された Will Larson の 「Elegant Puzzle」 はソフトウェア開発者のキャリアに関する議論にページを割いている(ただし管理職自身のキャリアではなく、管理している下々のキャリア)。

面接対策

管理職に心配されるまでもなく、2010 年代は下々ソフトウェア開発者のキャリアについても多くの本が書かれた。まずソフトウェア開発者を目指す学生を主な読者として、2010 年代の直前 2008 に 「Cracking the Coding Interview」(2008) が出版され、バカ売れした。自分もこんなのがあると知っていたら読んだと思う。

インタビュー対策本の人気が陰ることはなく、今では 「System Design Interview 」(2020) なんてのも登場して一つのジャンルを形成している。Leetcode のようなコーディング面接過去問模試サイトは最終型の一つと言えよう。

FIRE

この時期ソフトウェア企業入社後のキャリア指南書として広く読まれた本の一冊は「Soft Skills 」(2015) ではないだろうか。ヒラ社員としてのテック勤務仕草を解説し、邦訳 もそこそこ売れたように見える。

けれど本書の本当の新しさはそこではない。 Soft Skills は技術書の体を装った FIRE の指南書だった。Soft Skills 二版の Chapter 55 のタイトルは “How I ‘retired’ at 33”. ここで著者の John Sonmez はソフトウェア開発者はその収入を元手に不動産経営してラクに暮らせと説いている。(厳密にいうと説いてはないが、俺はそうしたと謳っている。大家がプログラマよりラクとかホント・・・?)

2010 年代はソフトウェア開発者が FIRE を目指すようになった、と見ることもできるが、どちらかというと FIRE したい人々が高収入を求めソフトウェア開発者を目指すようになったという方が近い (Soft Skills の大家推しがどれほど影響力を持っていたかは疑わしい。) 高い収入を得た BigTech などのソフトウェア開発者みなが FIRE したわけではなく、スタートアップなどを始めるケースも多かった。

とはいえ FIRE とソフトウェア開発の出会いは、ファイナンスやコンサルティングファームを目指した若者たちがテックに大挙した現象の双対なのも確かだろう:多様化が進んだ結果、ソフトウェア開発をキャリアの安息の地・終点でなく、通過点とする人々が現れた。

2020 年代

COVID 期はテック企業の株価が高騰し雇用も過熱して、より沢山の人々がテックの世界にやってきた。先に紹介したインタビュー対策本にはじまり、現役社員による対人模擬面接サービスや Levels.fyi のような年収自己申告サイトまで、US テック企業入社のための方法論は日本の新卒シューカツ産業以上に整備された。

上級技術職

就職後のキャリアに目をやると、ヒラ社員でも管理職でもない上級技術職への道のりを指南する書籍が現れた。具体的には Will Larson の「Staff Engineer」(2021) が広く読まれた。その流行に Tanya Reilly の 「The Staff Engineer’s Path 」(2022) が続いた。

上級技術職の標準化は、企業による rubric の整備に足並みを揃えている。沢山の企業が出世評価基準を公開するようになった。(雰囲気を掴むには Dropbox の例が個性が薄くわかりやすい。) ソフトウェア開発者会社員のキャリアは文書化されたのみならず、公知となった。

Influencer

上級職に限らないソフトウェア開発者向けキャリアガイドも一層盛んに書かれた。たぶん一番売れているのは Gergely Orosz の「 The Software Engineer’s Guidebook」 (2024) だろう。

ソフトウェア開発者のキャリア文化を読み解く観点から興味深いのは、この書籍の内容より著者自身だ: Gergely Orosz は Substack で The Pragmatic Enginner Newsletter を発行するライター、というか influencer である。もともと Uber などのテック企業に勤めていたが、コンテンツクリエイターとして成功し独立している。

Gergely Orosz の書くものは、もとインサイダーだけあってそれなりにリアリティがあるし、ギョーカイとのコネクションも深い。とはいえ広く読まれるソフトウェア開発者向けガイドを書いたのが influencer だという事実には立ち止まりたい: ソフトウェア開発者をやるより、ソフトウェア開発者向けのコンテンツを売る方が儲かるケースが出てきた。

ソフトウェア開発という高収入の仕事に人々が大挙し、その道筋は文書化・分解された。分解された細部はコンテンツクリエイターによって解釈・再配布された。その道案内に従いより多くの人々が門戸を叩いた。循環の輪が閉じ、ソフトウェア開発者のキャリア・エコシステムが完成した。

今日

二十年前の自分が望んだ「仕事の Code Complete / Writing Solid Code」は、いまこうして眼の前にある。読みきれないくらいたくさん。時は満ちた。

でも自分の感想はというと「めんどくさいな・・・」

こんなに全てを白日の下に晒さなくてもよかったのにな・・・と後出しで落胆する。出世のできなさを言い訳しにくくなった。長いこと仕事を続けるうちいつの間にか関心を「問題」から「自分」に移してきたら、ある日突然、情けない自分の姿が照らし出されていると気づく。動揺、落胆、不安。

テック産業の雇用が民主化され、透明化され、多くの人々に門戸を開いた。それは間違いなく良いことで、文句はない。でもその反面で肩身が狭くなった自分の主観と感想(aka 愚痴)を書くくらいは許してほしいな。

二十年前の自分はこれをどう読んだろう。目を皿のようにしただろうか。Will Larson や Gergely Orosz にときめいただろうか。