Tocyukiのブログ

ギターと柔術とプログラミングが好き!

「世界一流エンジニアの思考法」を読んだ

というわけで世界一流エンジニアの思考法を読了したので今更ながら備忘録的な書評を書いてみる📕

この書籍は米マクロソフトシニアエンジニアでAzure Functionsの開発者である牛尾剛さんが執筆した書籍

牛尾剛さんのnoteやブログがきっかけに発足した執筆プロジェクトとのことでnoteの記事もちょこちょこ見てみたがとてもおもしろいので興味があればこちらも是非!

note.com

目次

  • 第1章 世界一流エンジニアは何が違うのだろう? - 生産性の高さの秘密
    • 「生産性の高さ」の違い
    • トップエンジニアの衝撃的な解決方法
    • 試行錯誤は「悪」である
    • 頭が良くても「理解」には時間がかかる
    • 「理解に時間をかける」を実践する
    • 複雑な技術をコントロールできている感覚を得る
    • 「感覚」で批判せずファクトを積み重ねる
    • 小さなドキュメントをコードの前に書く
    • 頭の中に「メンタルモデル」をつくる
    • まずエキスパートに頼る
    • 「偉大な習慣を身につけたプログラマ」になる
  • 第2章 アメリカで見つけたマインドセット - 日本にいるときにはきづかなかったこと
    • 「Be Lazy」というマインドセット
    • いかにやることを減らすか?
      1. 一つだけピックアップする
      2. 時間を固定して、できることを最大化する
      3. 「準備」「持ち帰り」をやめてその場で解決する
      4. 物理的にやることを減らす
    • リスクや間違いを快く受け入れる
    • 失敗を受け入れる具体的な実践法
      1. 「フィードバック」を歓迎するムードをつくる
      2. 「検討」をやめて「検証」する
      3. 「早く失敗」できるように考える
    • 不確実性を受け入れよう
    • バリューストリームマッピングで「見える化」する
    • 「思考回路」を形作る実践
      1. 「楽に達成できる」計画で仕事をする
      2. 「無理・断る」練習をする
      3. 他の文化の視点を学んでみる
    • 「結果を出す」から「バリューを出す」へ
  • 第3章 脳に余裕を生む情報整理・記憶術 - ガチで才能のある同僚たちの極意
    • コードリーディングのコツは極力コードを読まないこと
    • いかに脳みその負荷を減らすか
    • 仕事の難易度別で考える
    • 「アウトカム」至上主義が上達を阻害する
    • マルチタスクは生産性が最低なのでやらない
    • 1日4時間は自分だけの時間を確保する
    • なぜ同僚たちは「記憶力」がいいのだろう
    • 「書く」すすめ
    • 頭の中のみで整理する
    • 理解・記憶・反復という黄金則
  • 第4章 コミュニケーションの極意- 伝え方・聞き方・ディスカッション
    • 「情報量を減らす」大切さ
    • 準備は効く ---伝え方のコツ
    • 相手が求めている情報への感度を研ぎ澄ます
    • コードを「読み物」として扱う
    • ミスコミュニケーションのサイン
    • クイックコールのすすめ
    • クイックコールされる側もよいことがある
    • 気軽に聞ける空気の大切さ
    • ディスカッションで鍛えられること
    • 意見が対立しても「否定しない」
    • 「会話力」を育てよう
  • 第5章 生産性を高めるチームビルディング - 「サーバントリーダーシップ」「自己組織型チーム」へ
    • 「サーバントリーダーシップ」とは何か
    • 自己組織チーム/フィーチャーチーム
    • 開発者それぞれが責任を持って設計し実装する
    • 「仕事を楽しんでいるか?」を確認する文化
    • ボスの役割はサポートすること
    • 納期がなく、マネージャも急かさない
    • 自己組織チームをいかに導入するか
    • チームの上下関係をなくす
    • 失敗に寛容な職場がチャレンジ精神を生む
    • 「Be Lazy」を推奨し、休暇を尊重する
    • チームにパワーを持たせることの価値
  • 第6章 仕事と人生の質を高める生活習慣術 - 「タイムボックス」制から身体づくりまで
    • 同僚たちのワークライフバランス
    • 生産性を上げたければ定時上がりが効率が良い
    • 「タイムボックス」制で、学習の時間を確保する
    • 「脳の酷使をやめる」三つの工夫
    • 違うことをするのがリフレッシュに
    • 掃除で「人生をコントロールする感覚」を取り戻す
    • 整理の技術
    • 物理的なエネルギー不足をどう解消するか
    • テストステロンを意識的に増やす
  • 第7章 AI時代をどう生き残るか? - 変化に即応する力と脱「批判文化」のすすめ
    • AIと過去のテクノロジーの違い
    • どんな職業ならAIに食われないだろう?
    • ChatGPTがやってきたときアメリカで起こっていたこと
    • AI時代には「専門性」こそが強みとなる
    • 日米のエンジニアを取り巻く文化の違い
    • 「批判」の文化がすべてをぶち壊しにする
    • コントリビュートと感謝のループ
    • 日本再生への道すじ
    • 自分の人生は自分でコントロールする

読書メモ

自分が読んでいて学びになったことをつらつらと

  • 「基礎」練習は「誰でもできる」ことだが、習得には「時間がかかる」ものなので遠回りせず習得すべし
  • 手を動かす前にDesignDocを書いて整理してから作業に取り掛かり、それをナレッジとしてシェアする
  • 頭の中にメンタルモデルを意識的に構築する癖をつける
  • 会議では「準備」、「持ち帰り」をやめてその場で解決させる
  • 不確実性を受け入れられるような文化の醸成に努める
  • KPIは定時で無理なく楽に達成できる程度のものであるべき
  • コードリーディングの際は実装はちゃんと動いていると信じて極力見ずにインターフェイスと構造を理解するようにする
  • 仕事の難易度別で考え、Level1を増やしていく
    • Level1: 何もググらず即座に実装できるもの
    • Level2: 問題をどう解決するかはすぐに思いつくが、具体的な方法は忘れているのでググる必要があるもの
    • Level3: 解法を知らないが、スパイクソリューションをしたらできそうなもの
    • Level4: 自分では解決が難しい、もしくはものすごく時間がかかるもの
  • エンジニア、プログラマは積み重ねが大事なのでアウトカム勝負だけではない
  • マルチタスクは絶対やめる
  • 「作業内容を人にそらで説明できるかどうか」を記憶できたかのチェックポイントにする
  • 「エビングハウスの忘却曲線」を意識した振り返りで記憶を定着させる
  • チーム全体が強くなるためには、気軽に互いのち県を交換できるコミュニケーション文化が大切
  • サーバントリーダーシップ型のマネジメント手法においてリーダーはビジョンとKPIは示すが、実際にどのように達成するかはチームが考え意思決定する
  • メンバーが楽しんでいるかを重視する

まとめ

「世界一流エンジニアの思考法」を読んだ!

全体的にとても学びと共感が多かったが、「第3章 脳に余裕を生む情報整理・記憶術」では昨年読了した書籍「プログラマ脳」にも通ずる話も多く合わせて読むとより理解が深まりそうだと思った。

この書籍の売れゆきがとても好調で牛尾さんのメディアへの露出が激増していたのだが、その中でもけんすうさんとの対談が個人的に面白かった。

bunshun.jp

また248ページという量でサクッと読めるのでとてもおすすめです!