Open5

書籍 世界一流エンジニアの思考

ぐちおぐちお

第1章

生産性の高さの違い
・デバックの手法(試行錯誤は時間を消耗してしまう)
 →事実を1つログで見つけ、
 →いくつかの仮説を立てる
 →その仮説を証明する行動を取る
 
理解とは?
・その構造を掴み、人に説明できること
・いつでも、どこでも即座に取り出し、利用できる
・知見を踏まえて、応用が気く

例)コードリーディング
・コード意図とその背後のアーキテクチャーを理解する
 →コードリーディングをする際に、処理ばかりを追うだけでなく、なぜこのようなコードにしたのか背景まで理解をする。

理解ができる対策

  1. 基礎を丁寧に勉強する
     →基礎がしっかりしてないと、結果的にコードの応用が来ても理解ができなくなってしまう。

  2. 急がず、徹底的に理解する
     →適当に理解すると、デバッグなど推測が難しく
    なる。結果工数が伸びるなどにつながる。

ぐちおぐちお

第2章

より少ない時間で価値を最大にする
・1番重要な「1つだけ」をピックアップする
・時間を固定して、その代わりで価値を最大化する

早く失敗できるように考える
・早く手を動かし、フィードバックをもらい、改善する
→ITは、開発しないとわからない。だからこそ早く手を動かし、検証する。

結果を出す と バリューを出すの違い
・結果を出す
 →決められた納期に絶対達成する
・バリューを出す
 →途中で問題が起き、どうやって達成するのか考える

ぐちおぐちお

第3章

  1. コードリーディングは極力読まない
    ・実装は極力見ずに、インターフェースと構造を理解する
     →図を書きながら理解すると良い
    ・メソッド、クラスのインターフェースの役割やパラメータを理解する

  2. 仕事を難易度別で考える
    レベル1: 何もググらずに即座に実装できる
    レベル2: 解決策は思いつくが、ググる必要がある
    レベル3: 解法がわからないが、スパイクソリューションをしたら、できそう
    レベル4: 自分だけでは解決困難。または、すごく時間がかかる

生産性とは、「レベル1」をいかに増やすこもができるのか
→レベル3、レベル4をレベル1に向上よりも、
→レベル2からレベル1に向上させた方が生産性高い

レベル1のものが増えると、脳の負荷も下げられる。

〜レベル4が来た場合〜
・自分には解けないと見極める

  1. マルチタスクは行わない
    ・今手をつけている仕事を1つにする
     →会議中も内職せずに、その案件に対し積極的に参加し、案件をリードし進捗を進めた方が効率が良い。

・1日4時間は自分だけの時間を確保する
 →4時間シングルタスクで最大限集中することができる
 →他の時間は、メールや他の対応を行う

4.記憶力の向上
・自分が記述したコードを、説明できるか確かめる
 →説明できない時は、理解ができておらず、わかっていない

〜おすすめ対応策〜
・ブログを書く

  1. 頭の中のみで整理する
    ・ミーティングの議事をその場で書かない
    ・人の話を聞く時は、他の人に説明することを想定し、聞きながら頭の中で整理する
    ・他者の言葉をメモしながら考えず、頭の中で考えて、完全に整理し終えてから、文章に書く
ぐちおぐちお

第4章

コードは読み物
・コードは、他の人が理解できないと意味がない
 →読んだ人がどう感じるかを意識する

ミスコミュニケーション
・お互い行き違いが発生し、了承が得られない
 →早めにコンタクトを取る

クイックコール
・予定されていないビデオ通話のこと

考慮すべき点
・相手が労力を要せず回答できるかどうか
 →工数がかかるなら、自分で調べる

相手の質問に対し、自ら手を動かす
→自分の成長につながる