遠い将来のエンジニアとしてのキャリアはどうなるのかなぁと以前から思っていたのもあり、発売後すぐに購入した。 全てではないがいくつか目に止まった部分を引用しながらレビューする。

本書について

本書はスタッフエンジニアとして働く方々へのインタビューをもとに、スタッフエンジニアを体系的にまとめたものである。 そこにはスタッフエンジニアとは何か・期待される役割・なる方法といった話が含まれる。前半にはインタビューをもとにした体系的なまとめが、後半には実際のインタビュー内容が記載されている。

こういったキャリアに関する洋書は、日本では参考にならない話ばかりのことも多い。しかし本書は、原著者がシリコンバレーに限った話にならないように意識していたり、翻訳者が日本人のインタビューを追加していたりすることで、日本でもそれ以外でも普遍的に役立ちそうな話になっていると感じた。

スタッフエンジニアとは

この「Staff Engineer(スタッフエンジニア)」は、マネジャーやCTO(最高技術責任者)といったマネジメント職に就くのではなく、技術を武器に「生涯現役のエンジニアでありたい」とする「テクニカルリーダー」にぴったりの職種です。

ソフトウェアエンジニアは役職が上がるにつれて技術に触れることが少なくなってマネジメント職に寄らざるを得ない、という話は日本ではよく聞くジレンマではないだろうか。どうやら日本以外でもこの問題はあるようだ。本書は技術者としてのリーダーのキャリアについて解説している1。もちろんリーダーとして働く以上、部下の育成やチームビルディングなどの観点からマネジメントも重要な仕事として含まれるのだが、それに加えて技術的な意思決定に重きを置く・(時間は減っても)コードを書き続けるという部分が通常のマネジメント職とは異なる部分である。

本書は技術者としてのリーダーがどういった仕事をするのかについて体系的にまとまっており、今まで曖昧にしか知らなかった部分が明確になった気がする。

Staff には参謀といった意味もあり、「エンジニアのリーダー」および「幹部の補佐役」として米国では定着している役職であることを知りました。

本書を買う直前に自分はこの用語を知った。日本ではこの役職名を使っている会社はまだ少なそうである。本書にも書いてあったが、キャッチーな用語と合わせて概念も広まることがあるので(例えばSRE)、スタッフエンジニアという用語とともにテクニカルリーダーの考え方も広まってほしい。

スタッフエンジニアの分類

本書では、スタッフエンジニアを4つに分類している。

  • テックリードが与えられたチームをアプローチや実行へと導く。
  • アーキテクトは重要分野において方向や質、あるいはアプローチに責任を負う。
  • ソルバー(解決者)は任意の複雑な問題を深く掘り下げ、前進する話を切り開く。
  • 右腕(ライトハンド)は補佐役として会社幹部の関心を代表し、幹部の能力と権限を借りて複雑な組織の運営にあたる。

必ずしも全てのスタッフエンジニアがこの4つに分類できるわけではなく、4つが混合していたりそれ以外の仕事もあることに注意が必要だ。

また用語自体はあくまで本書での分類であって、一般にこの用語が定着しているわけではなさそうなので、本書の前提なしにこれらの単語を出す場合は定義に注意したほうがよさそうである。現にテックリードやアーキテクトは以前も聞いたことがあるが別の意味で使っていたし、何なら本書のインタビュー部分でも混在している部分があったように思う。

これは自分の考えだが、この4つはチーム指向か否か・扱う技術が広いか否かの2軸で分類できるのではないか。 テックリードとアーキテクトは一つまたは複数の決まったチームを引っ張るリーダーとして動く一方で、ソルバーと右腕は遊撃手のように必要なチームを行き来しながら動く。 またテックリードとソルバーは狭く深い技術領域を得意としており、アーキテクトと右腕は広く浅い技術領域を得意としている。 若干無理矢理な気はしており、単純には分類できなさそうなのであくまで参考程度に書いておく。

スタッフエンジニアになるには

細かい話は色々あるが大きく重要なことは以下の4つである。

  • スタッフプロジェクトに取り組む
  • プロポーションパケットを早い段階から書く
  • 意思決定が行われる部屋に入ってとどまる
  • 認知度を上げる

スタッフプロジェクトとは、スタッフエンジニアになるにふさわしい重要なプロジェクトのことである。 これについては人によって必要かどうかの意見が分かれるようだ。

プロポーションパケットとは、昇進審査の段階で必要な文書のことである。成し遂げたスタッフプロジェクトの詳細や功績・他人からの評価などが含まれる。昇進の最終段階だけではなく普段から定期的に更新することで、自分の現状や足りない部分を明確に把握することができる。

技術スキルの話ではなく、ソフトスキルの面で何が必要なのか・どうやって立ち振る舞うべきかについてまとまっており非常に参考になった。

「意思決定が行われる部屋に入ってとどまる」以外は、レベルの違いはあれど新卒の就活でも必要なことだなぁと思った。早い段階からずっと意識して続けていくのが良いのであろう。

まとめ

役職自体は自分にとってまだまだ先の話ではある。しかし、スタッフエンジニアになるために早いうちからどう立ち回っておくべきか、あるいは既にスタッフエンジニアとして働く方に何を期待するか・されるか・どのように一緒に働くか、といったことがかなり明確になった2。それぞれのキャリアの段階で本書の感想も変わりそうなので、定期的に読み返したい本である。


  1. CTOは含まれないのかと思ったが、CTOはあくまで経営寄りの意思決定に重きを置いていてコードは書かないからマネジメント職に分類されているようだ。自分の知っているCTOの中にはスタッフエンジニアの上位的な働き方をしている方もいるので、あくまで本書での分類と考えたほうがよさそう。 ↩︎

  2. 細かい話は本書を読んでみてほしい。 ↩︎