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


本はこれ

Amazon.co.jp: 世界一流エンジニアの思考法 : 牛尾 剛: Japanese Books

要約

世界一流エンジニアの思考法には、リスクや間違いを受け入れる姿勢、失敗を受け入れる具体的な実践法、不確実性を受け入れる重要性などがあります。また、コミュニケーションの極意やチームビルディングの方法、生活習慣術なども紹介されています。AI時代に生き残るための力や批判文化の問題も取り上げられています。

序章

圧倒的なパフォーマンスを出すエンジニアは**「思考法」(マインドセット)**が高い生産性を形づくっている。


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

トップエンジニアの衝撃的な解決法

  • まずは、事実(データ)を一つ見つける → いくつかの仮説を立てる → その仮説を証明するための行動をとる。

    • むやみやたらに試行錯誤をするのではなく、まず自分の頭のメンタルモデルを使って仮説を立て証明する。手当たり次第に可能性を試すことによる時間のロスを排除し、圧倒的な効率を生む。

    • 試行錯誤は「悪」

「理解に時間をかける」を実践する

  • どんなに頭がいい人でも理解には時間がかかる。

    • 「早くできるように頑張る」ということが最終的な生産性をむしろ下げていた

    • 「基礎」練習は「誰でもできる」ことだが、習得には「時間がかかる」もの

  • 理解の三要素

    • その構造を掴んで、人に説明できること

    • いつでもどこでも即座に取り出して使えること

    • 知見を踏まえて応用が効くこと

  • 「理解は時間がかかるもの」として、急がず、徹底的に理解する習慣をつけていくと、圧倒的に試行錯誤が減って問題を一気に解決できるようになってきた。

頭の中に「メンタルモデル」をつくる

  • メンタルモデルとは、人々が世界を理解し、予測し、解釈し、新しい状況に適用するための、自己の心の中のイメージや理論のこと。

    • 頭の中で素早く情報処理をするために、何らかの脳内イメージを持っていることが非常に有効。

まずエキスパートに頼る

  • 一つのことで2時間以上ブロックされたなら、質問するなり相談するなりして寝かせておいて、他の仕事をやっておく方が断然生産性が高い。

    • 仕事のパフォーマンスを上げるには、いかに「無駄なこと」をしないかに尽きる。

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

「Be Lazy」というマインドセット

  • 「より少ない時間で価値を最大化する」という考え方

    • Be Lazyを達成するための習慣

      • 望んでいる結果を達成するために、最低限の努力をする。

      • 不必要なものや付加価値のない仕事(過剰準備含む)をなくす。

      • 簡潔さを目指す。

      • 優先順位をつける。

      • 時間や費やした努力より、アウトプットと生産性に重点を置く。

      • 長時間労働しないように推奨する。

      • 会議は会議の時間内で効率的かつ生産的に価値を提供する。

  • 「いかにやることを減らすか?」

    • 「減らすこと」自体に価値があると、マインドをリセットすること。

    • より短い時間で、価値を最大化できる。

    • 具体的な手順

      • 1つだけピックアップする

        • 一番重要な「一つだけ」をピックアップする癖をつけると、時間がない時も、少なくともポイントを外さない仕事を高速で回せるようになってくる。

      • 時間を固定して、できることを最大化する

        • 時間は固定して、その中で価値を最大化する

      • 「準備」「持ち帰り」をやめてその場で解決する

        • 「会議の場」だけで完結する。

        • 会議の時間を価値の高いものにしましょう。

      • 物理的にやることを減らす

        • 自分の仕事の中で「何をやらないか」をどんどん決めていこう。仕事は「どれだけやったか?」ではなく、「どれだけ会社にインパクトを与える仕事ができたか?」の方が重要なのだから。

リスクや間違いを快く受け入れる

  • 間違いを厳しく批判したり懲罰したりしない。

  • 失敗から学ぶ態度

  • Fail Fast(早く失敗する)。

  • 実験が推奨されている。

  • 全員に「現状維持」や「標準」を要求せず、臨機応変が推奨される。

  • 非難や恐怖感のない環境。

失敗を受け入れる具体的な実践法

  • 「フィードバック」を歓迎するムードをつくる

    • チームメイトが何か成功したら当然喜ぼう。失敗して「怒ったり」「批判する」のはあなたと対等であるチームメイトを「子供扱い」しているのと同じだ。

  • 「検討」をやめて「検証」する

    • 時間をかけずにさっさと「検証」の段階に進み、フィードバックを得るようにしよう。

  • 「早く失敗」できるように考える

    • 早く失敗することはそれ自体に価値がある。

不確実性を受け入れよう

  • 「納期は絶対」の神話は捨てよう。

    • 進捗の「実績」だけで状況判断し、「納期」を固定したまま「スコープ」を出し入れするのが現実的だ。

「思考回路」を形づくる実践

  • 「楽に達成できる」計画で仕事をする

    • 海外では火急の依頼は「マネジメント能力の欠如」と見なされる

  • 「無理・断る」練習をする

  • 他の文化の視点を学んでみる

「結果を出す」から「バリューを出す」へ

  • KPIは定時で無理なく楽に達成できる程度のものであるべきだ

  • 目標設定に関しても、取り組みの中で得た学びのシェアこそが十分バリューであり、会社にとっての財産なのだ

    • 目標に向かって何をどう工夫してやるかは管理職ではなく、各人が決めること。そういう環境下でこそ、みんなパズルを解くのと同じノリで、難しい課題にも失敗を恐れず、楽しんでチャレンジできるのである。


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

コードリーディングのコツは極力コードを読まないこと

  • 他のディベロッパーのことを信頼して、実装はちゃんと動くものとする。

  • 読むことを減らして、脳に余裕を生む

    • 実装は極力見ないようにして、インターフェイスと構造をちゃんと理解するようにする。

仕事の難易度別で考える

  • レベル1

    • 何もググらずに即座に実装できるもの

  • レベル2

    • 問題をどう解決するかはすぐに思いつくが、具体的な方法は忘れているので、ググる必要があるもの

  • レベル3

    • 自分は解法を知らないが、スパイクソリューション(課題把握のための大まかなプログラム)をしたらできそうなもの

  • レベル4

    • 自分だけでは解決が難しい、もしくはものすごく時間がかかるもの

生産性とはいかに「レベル1」を増やすか

「アウトカム」至上主義が上達を阻害する

  • プログラマの場合は、細かい技術の積み重ねが勝負であって、コンサルティングのように具体的なサービスを提供する際の「アウトカム」勝負ではない。

  • 技術を徹底的に理解し、理解した情報の整理をして、すぐに取り出せるレベル1の状態にしてこそ、長い目で見たさいの生産性は上がる。

一日4時間は自分だけの時間を確保する

なぜ同僚たちは「記憶力」がいいのだろう

  • 自分がやったことをクリアに説明できるよう時間をかけて言語化してみる

    • 単にできたではなく、少なくとも「説明可能か?」というセルフチェックを入れた方がよい。

  • ブログを書いてみる

  • 記憶しやすくする復習のタイミングを習慣化する


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

「情報量を減らす」大切さ

  • 最初から全部説明せず、「情報量を減らす」コミュニケーションの仕方がすごく重要

  • 情報を最小にし、「簡単なこと」をしっかり説明する。理解してもらうことに丁寧に時間をかける。

相手が求めている情報への感度を研ぎ澄ます

  • メモを取る

  • 日頃から人に伝えることを前提とした準備をしておくと、なにか聞かれた際の工数削減にも直結する。

クイックコールのすすめ

  • 音声のほうが100倍以上情報量があってインタラクティブ性があり、フィードバックが速い。

気軽に聞ける空気の大切さ

  • 「気軽に聞ける仕組み」は「気軽に断れる空気」とセットになっていることが肝心なポイント。


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

サーバントリーダーシップとは何か

  • リーダーは「ビジョンとKPI」は示すが、実際にどのように動くかは、チームが主体的に考えて意思決定していく。

自己組織チーム/フィーチャーチーム

  • 基本的にメンバー各自がやりたい仕事を「自分がやるよ」と選択していく

「仕事を楽しんでいるか?」を確認する文化

  • 海外のマネージャーの存在は、いかにメンバーたちが幸せに働けるかに高い関心を寄せ、エンパワーしてくれる

ボスの役割はサポートすること

チームの上下関係をなくす

  • チーム内ではスキルや経験に関係なく、全員が同じ責任を持っているフラットな「仲間」として振る舞う

チームにパワーを持たせることの価値

  • できる人たちにのびのびとパフォーマンスを発揮して欲しかったら、何よりもチームメンバーが「仕事を楽しめる」環境をつくることだ。


第6章 仕事と人生の質を高める生活習慣術 - 「タイムボックス」制から身体づくりまで

生産性を上げたければ定時上がりが効率が良い

  • 生産性を上げるためには学習

    • 仕事ばかりしていては短期的なアウトプットは上がったように見えても、根本的な生産性は上がらない

「タイムボックス」制で、学習の時間を確保する

「脳の酷使をやめる」三つの工夫

  • 瞑想をする(マインドフルネス)。

  • ディスプレイから意識的に離れる。

  • しっかり睡眠時間をとる。

違うことをするのがリフレッシュに

掃除で「人生をコントロールする感覚」を取り戻す

  • 整理され、検索せずにすぐに取り出せる状態になっていること。

  • コンピュータの整理のポイントは、「必要なものをいかに簡単に取り出せるか?」に尽きる。

  • 自分がどこに情報を置いたか記憶する癖をつける。

  • 頭の中も整理され、「細かいこと」への目配りが利いてくる。

物理的なエネルギー不足をどう解消するか

  • 運動を高プライオリティににすることと、テストステロンを増やすこと。

    • 肉類や玉ねぎ、加熱されたニンニクなどテストステロンを増やすのに効果のあるものを食べると良い。

    • 長時間の仕事中に軽くつまむものは、ナッツがいい。

  • 毎日30分の身体への投資は、必ず行うことをおすすめしたい。


第7章 AI時代をどう生き残るか? - 変化に即応する力と脱「批判文化」のすすめ

どんな職業ならAIに食われないだろう?

  • AIに食われないものは、少なくともしばらくは身体的なもの、対人的なもの - 創造的な仕事や、芸術などの分野ではないか

  • 自分が何年も頑張ってきた分野のコンテキストで、どうしたらAIとアラインできるかを見つけ出して、そこから行く。

AI時代には「専門性」こそが強みとなる

  • 時流に惑わされず「専門性」を追求する姿勢こそが一番強いのではないだろうか

  • 誰もやったことがないものに取り組んでいる専門家は、AIがとって代わることは原理的にあり得ない

  • いくらAIが席巻しようが、今後もソフトウェアエンジニアは少なくともインテグレーションの主役であり続けるだろう。

    • AIの世界からイノベーティブなものを作りたかったら、そこにはソフトウェアエンジニアの専門性が絶対に必要なのだ。

日米のエンジニアを取り巻く文化の違い

  • アメリカではみんな「専門性を高める」という蓄積に価値が置かれ、スピードは思ったより重視されない。

「批判」の文化がすべてをぶち壊しにする

  • どんなシステムにもバグはつきもので、改善していくしかない。

  • アメリカには「コントリビュート」する文化がある。

    • 人に何かを期待するのではなく、まず「自分がどういう貢献ができるか?」という公共性をベースに考える。

  • 失敗しても現場の心が砕かれない文化的素地は非常に重要だ。

  • 開発者に限らず、日本のあらゆる業界・業種において、批判ではなくポジティブフィードバックで現場の心が満たされるような好循環が生まれたら、間違いなく日本の生産性は抜本的に変わるだろう。

日本再生への道

  • ソフトウェアの技術者を専門家として大切に扱い、彼らが働きやすい職場環境へと刷新していくこと。

自分の人生は自分でコントロールする

  • 「自分の人生や幸せに責任を持って、自分でコントロールする」というマインドセットの素晴らしさ。


この記事が気に入ったらサポートをしてみませんか?