logo
kmnky blog

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

はじめに

今回紹介する本は、周囲でも話題になっていたり、翔泳社主催のIT エンジニア本大賞のビジネス書部門ベスト 10 に選ばれていた、"世界一流エンジニアの思考法"です。

世界一流エンジニアの思考法 牛尾剛 世界一流エンジニアの思考法 文藝春秋  2023/10/23

印象に残った点

この本の著者は、アメリカのマイクロソフトでソフトウェアエンジニアとして働いています。 彼が注意深く観察した結果、同僚たちが持つ「思考法」(マインドセット)が高い生産性を形作っていることに気づきました。 本書では、その生産性を加速するためのマインドセットを、著者の体験をもとに解説しています。

1 章

1 章では、自分にとっても共感できる部分が多く見られました。

試行錯誤は「悪」である

これは著者が試行錯誤してダメだったエラーを同僚がすぐに解決しているのはなぜかを分析すると、できる同僚は試行錯誤をする前に何かあったときはまず手を動かすのではなく、じっと考えて仮説を立てていた。 すなわち、情報収集(事実・データを集める)-> 仮説を立てる -> 仮説を証明するための行動をとるを繰り返していたのである。 確かに私も試行錯誤をして 1 日時間が潰れ、結局は簡単なパラメータミスだったりするので気をつけようと思った。 試行錯誤をして解決してもそれはたまたま正解しただけで何も得ないという言葉も突き刺さった。。

著者が試行錯誤してダメだったエラーを同僚がすぐに解決しているのを見て、その理由を分析した結果、できる同僚は試行錯誤をする前に何かあったとき、まず手を動かすのではなく、じっと考えて仮説を立てていたという結論に至りました。 それは、情報収集(事実・データを集める)-> 仮説を立てる -> 仮説を証明するための行動をとるというプロセスを繰り返していたからです。 確かに私も 1 日無意味な試行錯誤を繰り返したり、コードを色々みて結局は簡単なパラメータミスだったりすることがあるため、気をつけようと思いました。 試行錯誤をして解決してもそれはたまたま正解しただけで何も得ないという言葉も突き刺さりました。

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

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

試行錯誤をしないためにはきちんと理解することが必要であることを述べた言葉である。 著者は早くキャッチアップしたいという焦燥感からアウトカムを出すことに集中していたが、同僚はジョイン時に何度も説明動画を読んだり、基礎を理解することに時間をかけていた。 理解する内容もコードのロジックではなく、コードの意図とその背後のアーキテクチャを理解することが重要である。 確かに私もプロジェクトにアサインされた時最初に質問せず、やっていく中で理解していきますというスタンスをとってしまうことが多い。 おそらくその姿勢が良くないため、次にアサインされたら最初にアプリ・インフラともにがっつり理解することに時間をかけてみようと思った。

試行錯誤をしないためには、きちんと理解することが必要であるということを著者は述べています。 焦燥感から早くキャッチアップしたいと思い、アウトカムを出すことに集中していましたが、同僚は新たに仕事を始めるときに何度も説明動画を視聴したり、基礎を理解することに時間をかけていました。 注意すべきなのは、理解するべき内容は、コードのロジックではなく、そのコードの意図とその背後のアーキテクチャであることです。

私もプロジェクトにアサインされた時、最初に思いつく疑問は少ないです。 それはプロジェクトを進めていく中でその都度その都度表面を理解すればいいと思っているからなのだと反省しました。 次回からは、アサインされたときには、最初にアプリやインフラについて完全に理解する時間をしっかりと設けてみようと思いました。

「お客さんの言っていることは聞くけど、信用せずにファクトを検証していくのがいいよ」

自分でログなどを確認して問題を解決しないと、思い込みの穴に落ちてしまいます。 そのため、ファクトを積み重ねることが大事だと、この文章の後に著者は伝えています。 私も最近その重要性を痛感していたので、この部分が印象に残りました。

小さなドキュメントをコードの前に書く

手を動かす前に理解を深める方法としてデザインドキュメントを最初に書くというコツを紹介している。 ドキュメントを書くことで自分の頭が整理され、シェアも簡単になるというメリットがある。 確かにあとからドキュメントを書く作業はつまらないことが多く、億劫になってしまう。 これは最近真似てやり始めたがなかなか良さそうなので引き続き続けていきたい。

手を動かす前に理解を深める方法として、デザインドキュメントを最初に書くという方法が紹介されています。 ドキュメントを書くことで、自分の頭が整理され、情報の共有も簡単になるというメリットがあります。 私もあとからドキュメントを書く作業が億劫になることがあるので、最近はこの方法を試しています。 結果はまだ出ていませんが、これからも続けていきたいと思います。

2 章

Be lazy

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

2 章の主題は「Be lazy」、すなわち、少ない時間で価値を最大化するマインドセットについてです。

日本では、バックログを作成するときに優先順位をつけて、すべてのタスクを処理しようとします。 一方、アメリカでは、優先順位のトップ 1 つをピックアップして、その 1 つに集中します。 これは、一番インパクトのある 1 つを各自で処理することが大切だと考えているからです。 これは、2-8 の法則(20%の仕事が 80%の価値を生む)を理解しているからです。

一流のエンジニアたちは、やることを減らすことに頭を使っています。 日本人は、タスクを減らすことが苦手なので、タスクを減らすことそのものに価値があると認識し、マインドをリセットすることが必要です。

これら 2 つの日本の考え方になるほどなと納得してしまいました。 日本の考えにはそれはそれで良さがあると思いますが、まずはこれらを実践してみて、どの程度有効なのかを判断したいと思います。

3 章

3 章では、情報を整理したり、記憶術について書かれています。 特に新しいことは少なかったので、簡単にまとめます。

  • ググらずに即実装できることを増やすことが生産性を増やすことである
  • マルチタスクをしない
  • 自分がやったことをメモやブログにまとめて言語化する
  • 議事はその場で書かずに、後から思い出して書くことで集中力や記憶力を向上させる

これらは最近私が実践していることなので、その効果を感じています。 一方で、瞬発力が自分には足りないと感じています。 そのため、最後に紹介されていた集中力や記憶力を鍛える方法を試してみたいと思います。

4 章

4 章はコミュニケーションについて書かれています。

自分が知らない時ほどリプロするんだよ。効率がいいから

確かに日本人だと敬遠してしまうかもしれないが、自分の知らない分野に突っ込んだ時ほど学べるものが多いので、全然分野の違う PR とかきちんとレビューしようと思いました。

ここで紹介しているクイックコールなどは今の会社でもできているのでいい組織だなと改めて思った。 一方、チャットに返さずタスクに集中する時間を 4 時間作るというのはどっちがいいのかなと常に悩むところである。。 やっぱり送った側としてはすぐに帰ってきた方が仕事がしやすいし、安心感もあると思ってしまう。 おそらく、緊急の依頼やすぐに返して欲しい質問を減らしていくためにはどうするべきかというところから考えよう。

確かに、日本人は言われたことに対して敬遠しがちですが、知らない分野に突っ込んだほど学べるものが多いです。 全く違う分野のプルリクエストなども、きちんとレビューするべきだと感じました。

本で紹介されていたクイックコールなどは、現在の会社でも実践できているので、良い組織だと改めて思いました。 一方で、チャットにすぐに返信せずにタスクに集中する時間を 4 時間設けるというのは、どちらが良いのか悩ましいところです。 送った側としては、すぐに返信が来た方が仕事がしやすいし、安心感があると思って私は著者同様すぐ返すようにしていました。 ただ、4 時間返事しないことで不安にさせるのは、緊急の依頼やすぐに返信が必要な質問を日頃しているのが根本原因かもしれません。 なのでまずはその根本原因を解消しつつ、一切見ない時間を作ってみて同僚からフィードバックをもらってみようかと思っています。

5 章

生産性を高めるための組織について書かれている。 組織・文化に関して全く興味がないというわけではない(むしろ普段は興味を持っている)が、この本を読んだときに興味があるところはそこではなかったのであまり印象に残るところはなかった。

サーバントリーダシップについては覚えて帆いた方がいいなと思ってメモしておきます。 従来はコマンドアンドコントロールというスタイルでリーダが部下に指示を出し、部下の状況を把握し管理する方法である。一方、サーバントリーダシップの場合、リーダはビジョンと KPI を示すだけで、実際にどのように動くのかはチームが主体的に考えて意思を決定する。

5 章では、生産性を高めるための組織について書かれています。 組織や文化については、本を読むときに特別な関心があったわけではないので、あまり印象に残る部分はありませんでした。

ただし、サーバントリーダーシップについては自分の備忘録も兼ねて触れておきます。 従来のリーダーシップスタイル(コマンドアンドコントロール)では、リーダーが部下に指示を出し、部下の状況を把握し、管理します。 しかし、サーバントリーダーシップでは、リーダーはビジョンと KPI だけを示し、その後の具体的な行動はチームが主体的に考え、意思決定します。

6 章

6 章は生活習慣を改善する話を書いています。

自分としては最近充実した生活を送れているので筆者との境遇とは少し違うなと思った。 それでも残業でダラダラするのはよくないなと思ったので、定時で強制的に切り替えるタイムボックスを明日から導入してどのくらい効果があるのか試してみようと思う。

6 章では、生活習慣を改善する話が書かれています。

私自身は、最近充実した生活を送っているので、著者の境遇とは少し異なると感じました。 それでも、残業でダラダラと仕事をするのは良いとは思えません。 そのため、私は定時で強制的に切り替えるタイムボックスを明日から導入し、その効果を試してみるつもりです。

総評

本の感想にはムラがありましたが、最初の方は突き刺さる部分が多く、読んで良かったと感じました。 前職の SIer でこの本を読んでいたら、言っていることはわかるけど、、実践できないなと思っていたかもしれません。 やはり SIer は日本独自の文化で西洋のマインドセットを真似るのはなかなか難しいかもしれません。 一方、転職して事業会社に来てからは、色々と実践できているな、真似したいなと思う部分が多く見られました。 なので事業会社のエンジニアの人はぜひ読んでほしい、そして SIer で課題を感じたら 4 章以降の組織やコミュニケーションを改善すると良いと思います。 この本に書かれていることを実践し、自分に合ったことを取り入れることで、さらに成長していきたいと思います。