見出し画像

「世界一流エンジニアの思考法」 の読書メモ

概要はこちらから

この本に期待していたこと

一流のエンジニアになるためにはどんな思考法が必要なのか知りたい。
特に「天才だからできる」ではなく「一般人でも可能な再現性のある方法」が知りたい。
その思考法を実践することで、生産性をあげて、より難易度の高い開発をこなせるようになりたい。

§1. 世界一流エンジニアは何が違うのだろう?

「理解は時間がかかるもの」として、急がず、徹底的に理解する習慣をつける

頭の良い人でも理解には時間がかかる。そうでないならなおさらだ。
生産性をあげようと無理に急がない。理解にしっかり時間をかけて無駄な試行錯誤を減らし、問題を一直線で解決できるようにする。

理解する、とは
説明可能で、いつでも使用可能で、応用可能にすること。

理解に時間をかけていいんだな。基礎を大事にしよう。そして基礎の習得には時間がかかることを受け入れよう。これはエンジニアに限った話ではないよね。

メモ

  • 「メンタルモデル」を会得して素早く理解する

  • コードを書く前に「デザインドキュメント」を書く

§2. アメリカで見つけたマインドセット

より少ない時間で価値を最大化する

より数ない時間で価値を最大化するためには、優先順位をつけること。

優先順位をつけるとは、1番、2番、3番…と順位づけするのではなく、最も重要な1つを選ぶこと。

やらないことを見つけるほど、重要なものにフォーカスできて価値が生まれる。

メモ

  • 「バリューストリームマッピング」でプロセスの改善ポイントを見つける

  • 「フィーチャーフラグ」で柔軟にリリース

  • 結果ではなく「バリュー」を出す→仕事を通して得られたものを共有する

§3. 脳に余裕を生む 情報整理・記憶術

理解・記憶・反復することで脳の負荷を減らす

例えばコードリーディングを行うとき、すべての詳細に気をつかって読もうとすると脳がパンクしてしまう。実装部分についてはちゃんと動くだろうと実装者を信頼する。注目すべきはインターフェイスと構造、クラスの役割やパターンであり、それを理解することに集中する。

これは「プログラマー脳」にも書かれていたことだが、すでに長期記憶にはいっているものは脳に負担がかからない。「調べれば思い出せる」程度の知識は、基礎として「いつでも使用可能」な知識(長期記憶)とすると良い。

一方で、詳細な実装は短期記憶となるため、実装者を信頼することで負荷を下げる。

メモ

  • コンサル的な「一時的なアウトカム」に注力せず、基礎を積み上げることで中長期的な生産性を上げる

  • 1日の中に「誰にも邪魔されない4時間」をつくって生産性をあげる

  • WIP(手をつけるタスク)は1つだけ

  • 説明可能にする(≒アウトプットする)ことで整理した情報を記憶する

§4. コミュニケーションの極意

情報量を減らし、相手が必要な情報のみを伝える

最初から全部を伝える必要はない。いきなりすべてを伝えられても人は理解できない。必要になった時に、相手が欲しい情報を提供する。

これはプレゼンテーションでも同じ。情報量を最小限にし、簡単なことをしっかり説明する。理解してもらうことに時間をかける。

メモ

  • 他の人が知りたい情報をメモして共有する

  • コードも一緒で、読んだ人がどう感じるか?を考えながら書く(コードは読み物)

  • リモートワークならクイックコールを利用する(Slackハドルいい?みたいなやつ)

  • エキスパートに聞くことも厭わない。気軽に聞ける = 気軽に断ってOKの空気感

  • (このnoteの情報量がすでに多すぎるが、これは書評でなくメモなので許して)

§5. 生産性を高めるチームビルディング

サーバントリーダーシップと自己組織チームで仕事を楽しみながら成果を出す

従来型の「コマンドアンドコントロール」は、リーダーが部下に細かく指示を出し管理する方法。
「サーバントリーダーシップ」では、リーダーがビジョンとKPIを示しつつも、実際にどう動くかはチームが主体的に考え意思決定させる。メンバーひとりひとりにリーダーシップをもってもらい、社員というよりもステークホルダーとして扱う。

自己組織チームとは、
1. 生産性が高く
2. チームのエンジゲージメント(満足度)が高く
3. より良いソリューションが選択されやすい 組織。

コマンドアンドコントロール型でいちいち承認をとっていては、生産性は上がらない。また、メンバー自ら意思決定することで仕事を楽しんでもらい、エンゲージメントを上げる。そして自分の選択に責任をもった現場メンバーが意思決定することで、より良いソリューションが導かれる。

したがって、サーバントリーダーシップによって自己組織チームが醸成される。(というより、コマンドアンドコントロールでは自己組織チームになり得ないのでは?)

メモ

  • 仕事は楽しむもの!というカルチャー

  • 上司の仕事は「アンブロック」(業務の妨げとなっている問題を取り除くこと)

  • チームメンバーが「仕事を楽しめる」環境をつくることで、できる人がパフォーマンスを発揮する

補足

「仕事と人生の質を高める生活習慣術」「AI時代をどう生き残るか?」については省略。
生活習慣については、定時であがって勉強して早く寝ること!それが生産性につながる。

感想

一流のエンジニア並みに生産性をあげたければ、思考法を変え、大切なことにフォーカスしよう。大切じゃないことはやめよう。
チームとして成果を出したければ、自己組織チームを目指せる環境でリーダーシップをもって働こう。

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