🐕
世界一流エンジニアの思考法_備忘録①
牛尾剛『世界一流エンジニアの思考法』について備忘録として残す。
第一章~生産性向上〜
・問題解決方法
⇒先に手を動かさない。まずは仮説を立てアプローチ方針を決めることが大事。
大まかな手順は下記の通り。
1.情報収集(データ集め)
2.仮説を立てる
3.仮説の検証
※仮説が不十分なら①へ戻る
4.手を動かす
まずは、ある事実を1つ見つけ(1.)、それをもとに仮説を立てる。(2.)。
そして、立てた仮説を検証する。(3.)。これを繰り返していく。
思いついた仮説を手あたり次第に試していくのは良くない。
⇒非効率的、新しい知識が付かない(今後に応用が利かない)
・「理解」に時間をかける
⇒「早くできるように」ではなく「今後も実践可能」を重視すること
著者は「理解」を下記の3つのように説明している。
・その構造をつかんで人に説明できること
・いつでもどこでも即座に取り出して使えること
・知見を踏まえて応用が利くこと
また、「だいたいこんな感じ」のように読み飛ばすことはせず、
一見簡単に思えるようなことであっても例として値を当てはめてみたりして
時間をかけて理解できるよう努める。
⇒これによりDR等でよりよいアイデアが思いつくことができる
ソースコードを読む場合、そのコードの意図やアーキテクチャ(全体構造や役割)を
理解するために時間をかける。
⇒「感覚で判断する」などの思い込みを排除し、事実に基づいた判断ができるかが重要
・生産性を上げるための取り組み例
コードの前に小さなドキュメントを書く。
ワードファイル数ページ程度。設計のアイデアや大まかな仕様をまとめたドキュメント。
このドキュメントを作成することで下記のような利点があると著者は言う。
・頭の中が整理されることにより、抜け落ちていた視点に気づくことができる
・考える時に書くことで、設計作業とドキュメント作成作業を同時に行うことができる
「メンタルモデル」をつくる
「超一流が実践する思考法を世界中から集めて一冊にまとめてみた』(SBクリエイティブ)
エキスパートに頼る
1つのことで一定時間、手が止まってしまうならだれかに相談/質問するべき。
⇒回答待ちの間に他の作業をすることができるため、生産性は高くなる。
Discussion