🎃

[あと3章]How World-Class Engineers Think 世界一流エンジニアの思考法 読書ノート

2024/11/20に公開

目次

はじめに
第1章 世界一流エンジニアは何が違うのだろう?―生産性の高さの秘密
第2章 アメリカで見つけたマインドセット―日本にいるときには気づかなかったこと
第3章 脳に余裕を生む情報整理・記憶術―ガチで才能のある同僚たちの極意
第4章 コミュニケーションの極意―伝え方・聞き方・ディスカッション
第5章 生産性を高めるチームビルディング―「サーバントリーダーシップ」「自己組織型チーム」へ
第6章 仕事と人生の質を高める生活習慣術―「タイムボックス」制から身体づくりまで
第7章 AI時代をどう生き残るか?―変化に即応する力と脱「批判文化」のすすめ

各章

第1章 世界一流エンジニアは何が違うのだろう?―生産性の高さの秘密

  1. 試行錯誤は「悪」である
    • 単に思いつきでいろいろなパターンを試して正解を探しているだけなので、とても時間がかかる上、新しい知識を何も学んでいない
    • 手を動かす前に仮説を検証する
      • 情報収集(データ集め)-> 仮説を立てる -> 仮説の検証(不十分なら戻って再度仮説を考える) -> 実行(手を動かす)
  2. 「理解に時間をかける」を実践する
    • 「理解は時間がかかるもの」として、急がず、徹底的に理解する習慣をつけていく
  3. 複雑な技術をコントロールできている感覚を得る
  4. 「感覚」で判断せずファクトを積み重ねる
    • 自分でログなどを検証して問題解決をするようにしないと「思い込み」の穴に落ちてしまう
  5. 小さなドキュメントをコードの前に書く
  6. 頭の中に「メンタルモデル」をつくる
  7. まずエキスパートに頼る
    • 一つはのことで2時間以上ブロックされたなら、質問するなり相談するなりして、寝かせておいて、他の仕事をやっておく方が断然生産性が高い
    • 既存システムがある場合は、あれこれ考えて調べる前に、まず「エキスパートに頼る」というのはベストプラクティスだと思う
  8. 「偉大な習慣を身につけたプログラム」になる
    • どんな人でも、最初は難しく、理解には時間がかかる
    • 自分が仕事をコントロールできているという感覚、何かわからないことがあっても「自分ならやれる」と思える感覚
    • 「私は偉大なプログラムではなく、偉大な習慣を身につけたプログラマだ」

第2章 アメリカで見つけたマインドセット―日本にいるときには気づかなかったこと

  1. 「Be Lazy」
  2. リスクや間違いを快く受け入れる
    • 間違いを厳しく批判したり懲罰したりしない
    • 失敗から学ぶ態度
    • Fail Fast(try -> fail -> feedback -> update -> try -> ... )
    • 実験が推奨されている
    • 全員に「現状維持」や「標準」を要求せず、臨機応変が推奨される
    • 非難や恐怖感のない環境
  3. 「思考回路」を形づくる実践
    • 「楽に達成できる」計画で仕事をする
    • 「無理・断る」練習をする
    • 他の文化の視点を学んでみる
  4. 「結果を出す」から「バリューを出す」へ

第3章 脳に余裕を生む情報整理・記憶術―ガチで才能のある同僚たちの極意

  1. コールドリーディングのコツは極力コードを読まないこと
    • 他のデベロッパーのことを信頼して、実装はちゃんと動くものとする
  2. いかに脳みその負荷を減らすか
    • コードを読むのは本当に必要なことは部分(クラスの役割やパターン、IFの理解)で十分
    • 読むことを減らして、脳に余裕を生む
    • 人が「自分にとって難しすぎる」と感じるものには2つのケースがある
      • 自分の基礎的が学力が足りていないもの
      • 自分が無理やりなやり方をしているケースだ
  3. 仕事の難易度別で考える
    • Level1 何にもググらす即実装できる
    • Level2 ググれば解決できる
    • Level3 スパイクソリューションがあれば何とかなる
    • Level4 自分では無理
  4. 「アウトカム」至上主義が上達を阻害する
  5. 一日4時間は自分だけの時間を確保する
    • 集中する時間を意識的につくり出す必要がある
    • There is no magic. It's ok to book your time
    • 大前研一氏は何かを変えたいときは、「住むところ」「付き合う人」「時間配分」のいずれかを変えるべきで、それ以外は意味がないという考察をしていた
  6. 「書く」すすめ
    • 人に説明可能な状態にもっていく訓練として最良の手段の一つは、ブログを書いてみることだ
    • 「コーネルメソッド」
  7. 頭の中のみで整理する
    • ミーティングの議事をその場で書かない。メモ程度ならOK
    • 人の話を聞くときは、他の人に説明することを想定して、聞きながら頭の中で整理する
    • 文章を書き出して考えるのではなく、頭の中で考えて、完全に整理し終えてから文章に書く

第4章 コミュニケーションの極意―伝え方・聞き方・ディスカッション

  1. 「情報量を減らす」大切さ
    • 最初から全部説明せず、「情報量を減らす」コミュニケーションの仕方がすごく重要
    • 「その場で吸収できることを最大化したい」というスタンスだ
      • 複雑なものを一気に提供されてもその場で理解しきれないので、単純にリアルタイムに理解できる適切な情報量が好まれる
  2. 準備は効く―伝え方のコツ
    • 情報を最小にし、「簡単なこと」をしっかり説明する。理解してもらうことに丁寧に時間をかける
  3. 相手が求めている情報への感度を研ぎ澄ます
    • 日頃から人に伝えることを前提とした準備をしておくと、なにか聞かれたさいの工数削減
  4. コードを「読み物」として扱う
  5. ミスコミュニケーションのサイン
  6. クイックコールのすすめ
    • 自分にその分野の「メンタルモデル」や「コンテキスト」がなければ、すぐさまエキスパートに聞いたほうがよい
    • 最初にコンテキストをエキスパートから得られると、かなりショートカットして物事ができるようになる
  7. クィックコールされる側もよいことがある
    • リプロ(ソフトウェアの問題の再現)に時間をかけたことで、自分が知らない分野を体験することができる
    • 「自分が知っているか」に焦点を当てて、学びの機会にしている
  8. 気軽に聞ける空気の大切さ
    • 「気軽に聞ける仕組み」は、「気軽に断れる空気」とセットになっている
    • 助けになれない場合は、すぐに「ごめん」でクールに済ませたほうが、聞く方も聞かれる方も気が楽なのだ
  9. ディスカッションで鍛えられること
    • 自分の知らないことを恥じない、知らないことは進んで聞くという精神。
    • その場でフィードバックがあるディスカッションは、短い時間で相当高い知識と理解を深めることができる
    • ディスカッションは「どちらが正しいか」はどうでもよく、「自分の考えを自分なりに深めるための行為」なので、初心者こそやったほうがいい
    • 「間違えたら恥ずかしい」という感覚は一切捨てること
    • どちらが正しいとか間違っているとか、意見に賛同する・しないではなく、「相手のことを理解して認める力」
  10. 意見が対立しても「否定しない」
    • 相手のことを理解して、尊重する
    • 感謝の気持ちを忘れない
    • 楽しんだもの勝ち
    • 切り出し方は「自分の意見では~」

第5章 生産性を高めるチームビルディング―「サーバントリーダーシップ」「自己組織型チーム」へ

Discussion