「世界一流エンジニアの思考法」ざっくり要約

## はじめに
世界一流エンジニアの思考法 という書籍を読んだのですが、備忘のためメモを整理した
書籍の概要を記載します！

## 第1章 世界一流エンジニアは何が違うのだろう？
- 試行錯誤をするのではなく、事実をもとに仮説を立てて検証する
    - BAD
        - 手当たり次第に色々なパターンを試行錯誤は生産性が落ちる
        - とりあえず検索
    - GOOD
        - エラー → 仮説 → 仮説を検証
        - 結果として、スキルアップするし効率もUP
- 理解することに時間をかけることが重要
    - すごいエンジニアでも理解には時間がかかるもの
    - 理解にも段階がある
    - 納期を守ることより、理解することに時間をかけることで、結果として効率UP
- メンタルモデルを作る
    - 頭の中で考えたり整理したりしてイメージを作り、問題解決のプロセスを高速化させる
    - シミュレーションする
    - 自分で調べて時間がかかるならすぐ質問する
        - ※ 日本の文化と真逆...


## 第2章 アメリカで見つけたマインドセット
- 「Be Lazy」というマインド
    - 怠惰であれ
    - より最小の労力で楽をしよう
- 優先順位をつけて全部やりきるのではなく、優先度の高いものだけをピックアップして取り組む
    - 20% の仕事が 80% の価値
    - どうやったら間に合うかではなく、やることを減らす
    - 一番重要な 1 つのことに集中して、ほかは何もしない
        - ※ 一度決めたことはやりきるというのは日本の文化のよう...
- MTGはその場で課題を解決
    - 時間を守る
    - MTG準備は必要最低限で
- Fail Fast を意識する
    - 早く失敗する
    - 早くFBをもらう
    - 協力する文化
        - ※ できないことにチャレンジしている人に対してフォローするのがアメリカ流

- 無理な計画は立てるな
    - 無理なものは無理
    - 計画は変更していい
    - やることを減らす
- 結果の意義
    - 日本だと...
        - 納期通り
        - 大きな問題がない
        - 残業したり無理して頑張る
        - チャレンジしにくい世の中
    - 重要なこと
        - チャレンジした中で見つけたポイント、改善点、気づき、、、などの学びに価値がある

## 第3章 脳に余裕を生む情報整理・記憶術 
- コードをできるだけ読まないこと（全部読もうとしない）
    - コードを読むのはしんどい
    - 人の書いたコードなんてよくわからないのが当たり前
        - <span style="color:#d70910;">※ 個人的に意外でした！</span>
- 調べながらじゃなくてもできるレベルの理解を目指す
- コピペしたコードは理解できていない
    - 何回も同じことを調べることになり効率DOWN
    - 基礎が超重要
- マルチタスクはやるな
    - 一つのことに集中する
- アウトプットは重要
    - 理解していないとアウトプットはできない
    - アウトプットしたら記憶に残る
- 議事録はMTG中に書かない
    - 記憶・整理してから要点を書く
    - その場で理解する
        - <span style="color:#d70910;">※ なかなか実践するのが難しいなと...</span>


## 第4章 コミュニケーションの極意
- 情報量を減らす
たくさん情報があっても結局わからない
- 「準備」「持ち帰り」はNG
    - 習慣にするな、その場で解決する
- 相手が求めているものを意識する
- メモは誰が見てもわかる状態に
    - すごいエンジニアのメモは簡潔に整理されて共有されている
- プルリクエスト
    - やり取りが多くなってしまうのは分かりにくさから
    - 読み手を意識する
    - 文章で伝わらないなら、クイックコール
    - 相手が忙しいかは一旦考えない
        - 忙しかったら返事が返ってこないだけ
        - 手軽に人に聞ける環境が大切
            - <span style="color:#d70910;">※ 心理的安全性</span>
    - こんなこと聞いてもいいのかなとか考えない
        - 聞かないことの方がデメリット多い


## 第5章 生産性を高めるチームビルディング 
- サーバントリーダーシップ
    - リーダーはビジョンと KPI を示し、実際にどの様に動くかはチームが主体的に考えて意思決定
- コマンドアンドコントロール
    - リーダーが部下に指示を出し、状況を把握・確認して管理
- 自ら考えて自分で意思決定する「自己組織チーム」というスタイルが主流になっている
- 自己組織チーム
    - 生産性が高い
    - チームのエンゲージメントが高い
    - チームを信頼してタスクを与えているので仕事が圧倒的に早く生産性が高い
- マネージャーより現場のことを一番把握している人が判断した方が良い
    - 日本では、、、
        - リーダーからの指示待ち集団となってしまい、組織で我慢できるのが大人とされてしまう
- チームは 10 人程度で、それぞれの機能を開発するのは各個人に
- マネージャーから渡されるタスクは基本的にふわっとしている
    - 開発者が仕様を自分で明確にし、デザイン・実装をする
- 「仕事は楽しむもの」というカルチャーがあり、それを重要視している
- リーダーの役割（理想）
    - 細かい指示はしない
    - 困っていたら助ける
    - 技術的なサポート
    - 納期を急かさない
        - 急いで適当なものをリリースするよりも、良いものをリリースする
        - 1 週間でできる見込みのものが 2 ヶ月ぐらいかかってしまうことも...
- チームの上下を無くす
    - 上下関係を感じるとチーム内で指示待ちが発生してしまう...
    - スキルや経験、年齢に関係なく、全員が同じ責任を持っているフラットな「仲間」として振る舞う
- 失敗に寛容な環境を目指す
- 失敗してもポジティブに
- 休暇を尊重する
    - インターナショナルチームでは仕事が途中だろうが休暇を取ることが尊重される
- 少ない工数で多くのバリューを出すことに高い価値を見出す
- 作業量を減らして、インパクトのあるものに集中する
- 現場を信頼して任せる
    - 各技術者のスキルアップ
    - 意思決定できるように
    - 結果として自発的に動くように


## 第6章 仕事と人生の質を高める生活習慣術 
- 定時で業務を終える
- 生産性を上げる秘訣は「学習」
- 仕事を遅くまでやっても根本的な生産性は上がらない
- 仕事は定時で切り上げて、自分のやりたいことを勉強する
- 作業は「タイムボックス」制に
    - 時間が来たら強制終了にする
    - ランニングや読書、学習や自分の趣味に時間を使えるようになる
- 予定はあくまでも予定なので、「完了」は目的にしない
- おすすめ習慣
    - 瞑想をする
    - ディスプレイから意識的に離れる
    - しっかり睡眠をとる
- 何かをしたら「完了」するまでやるように意識することで、仕事にもコントロールする感覚が生まれる
- 整理について
    - 成果を出す人は、あらゆる点で整理が行き届いている
    - PC整理は「必要なものを簡単に取り出せるか」の状態が理想
    - 書いて整理する
- 運動やトレーニングで物理的なエネルギーを消費

## 第7章 ＡＩ時代をどう生き残るか？ - 変化に即応する力と脱「批判文化」のすすめ
- AI に食われない職業
    - 創造的な仕事、芸術
    - 対人的なもの
    - エンジニアの分野は完璧が理想のため、抜かれていくはず
- 世間は好意的な反応と、情報流出リスクがあるし人間の仕事を奪いかねないので禁止すべきという反応あった
- 「禁止」や「排除」をしてしまうとイノベーションが生まれるチャンスが減る
- AI 時代には「専門性」
- 誰もがやったことのないものは AI にできない
- 最終的に AI を統合するのは人間
- アメリカではスピード重視ではなく、「専門性を高める」という蓄積に価値が置かれる
    - 失敗しても開発者の心が砕けないような文化
    - フィードバックはポジティブに
- どうやったら人生が幸せになるかを主体的に考えて、仕事の仕方を選択する

## 参考書籍

[世界一流エンジニアの思考法](https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E6%B5%81%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E6%80%9D%E8%80%83%E6%B3%95-%E7%89%9B%E5%B0%BE-%E5%89%9B/dp/4163917683)