X(旧Twitter)でもかなり話題になった「世界一流のエンジニア思考法」についての個人的に読んでいて大事だな、参考になった、自分でも実践していることなどをまとめました。
概要
著者はアメリカのMicrosoft社に所属するシニアエンジニアの牛尾剛さん
著者いわく「自分は一流エンジニアではなく三流エンジニア」であると言っている。
決して謙遜ではなくADHDと診断され、著者自身かなり要領悪く長年悩んでいたとのこと。
そんな方がアメリカのMicrosoft社で学んできたマインドセットについて、非常に参考になった点について本ブログにアウトプットしていこうと思います。
頭がよくても「理解」には時間がかかる
どんなに頭がいい人でも理解には時間がかかるもの
頭のいい人が理解が早いように見えるのは時間をかけて基礎を積み重ねているので、既に理解していることに関しての頭のメモリのコンテキスト(文脈)が載っているからだ。
この文章を読んだときに、私自身も筆者と同じ気持ちでした。
そもそもの頭の作りが違うのかな?と思っていたが、そうではなく、エンジニアにおける本質的な基礎の理解に時間をかけているから色々なものにも応用が利くのだな、と理解しました。
何かコマンド操作やプログラミングをしていた際にエラーが発生した。
その際にやってしまうのは、早くエラーを解決したいあまり、「なぜエラーが発生したのか?」の仮説を立てず、色々と試行錯誤してエラーを解決しようとしてないでしょうか?
色々とググって出てきた情報をもとにエラーの解決に至ったとしても、「なぜエラーが発生し、なぜ解決したのか?」を深堀りしていかないと同じエラーに遭遇したときに、同じことを繰り返しやることになります。
結果、仮説を立てて、なぜエラーが発生し、どうすれば解決できるのか?を順序立てて解決できた時間よりも時間がかかってしまいます。
ここに優秀なエンジニアと三流エンジニアの違いが出てきます。
ついやってしまうのですが、早く次へ進めたいがために理解を後回しにしがちなのですが、例えば時間がかかったとしてもブログなどにアウトプットすることで知識の定着化はできると思うので、この点については私はブログへのアウトプットで理解に時間をかける、を実践していますが、非常に有用だと感じています。
マルチタスクは生産性が最低なのでやらない
ワシントン大学の分子発生生物学者ジョン・メディナ氏によると、マルチタスクにより「生産性が40%低下」「仕事を終えるまでにかかる時間が50%増加」「ミスの発生が50%増加」
上記のような研究結果が出ているようです。
ここで参考になったポイントは以下です。
- 1つのタスクを中断する場合、次に再開するときに、すぐにその状態に戻れるように記録したり、整理しておいたりする。
確かに、何かのタスクをこなしているときに、メールやチャットを返したり、問い合わせに対応したり、会議に参加したりなどすると、本来のタスクに戻ったときに脳みそがリセットされて「あれ、どこからやればいいんだっけ?」という状態になったことは多々あります。
研究結果からもわかる通り、人間の脳みそはマルチタスクができるようにできていない。
「いや、私はマルチにタスクをこなすことができる」と言っている人はできている気になっているだけだと思う。
業務を中断するときに次に何から始めたらよいのか、またその日の業務が終わり、次の日の朝タスクに取り組むときにもこれは有用だと思ってます。
手段は何でも良いですが、私が取り入れている方法としては次の日にどこから、何をやるのかのタスクをTeamsで自分に対して送っておくことで、その日どこの何から始めて、どんな調査をしなければいけないんだっけ?を書いておいてエンジンのかかりを早くするように取り組んでいます。
このメモを残しておくことで、それだけのリソースをその日に温存できるのでそういった意味でも良いかと思います。
時間が経てば経つほど、人間は疲れてくるので、思い出す作業に無駄なリソースを割かないことで生産性が上がるのだと思います。
記憶力を高めるための「書く」すすめ
人に説明可能な状態にもっていく訓練として裁量の手段の一つは、ブログを書いていみることだ。
これは「頭がよくても理解に時間がかかる」に共通するのですが、新しい技術を学んだ際はブログを書いてみること。
実際、私も今このようにブログを書いているわけですが、個人で持っているサイトでもよく技術ブログを執筆していますが、ブログを書くことでなぜ記憶力が高まるかというと、
- 世の中に発信するので、適当なことは言えない、人に説明するわけなので誰よりも理解したうえで情報を発信するためにかなりのリサーチをする
からだと思っています。
この本においても記憶に関する重要な要素は「記憶しやすくなる復習のタイミングを習慣化する」という点だと言っていますが、覚えたら翌日、1週間後に振り返ると良いとされています。
ブログを書く、とはやったことの復習になるわけですが、それを早い段階でアウトプットすることで記憶に定着するわけですね。
相手が求めている情報への感度を研ぎ澄ます
「相手が本当に欲しい情報は何か?」これを普段から意識しておくことが、生産性を抜本的に向上させる。
日頃から人に伝えることを前提とした準備をしておくこと、何か聞かれたさいの工数削減にも直結する。
「メモをとる」習慣によって生産性を上げることができる。エンジニアとして仕事している以上、問い合わせ対応、障害調査、引継ぎ対応、などにかなりの労力を割くことになるが、事前に「他人が欲しい情報をわかりやすい形式」でメモを取って整理することで、先手で準備、対応できるということを言っています。
これは、常日頃から意識していかないといけないな、と思ったところで、「自分がわかるようなメモ」は一通り取ってはいるが、それを人に渡せるレベルのもので整理できているかというと、そうでもないかな、と思いました。
OneNoteやNotionを使用して情報を整理することで自分自身への備忘録にもなる、かつ、人に渡せるレベルのものをメモとして残しておくことでナレッジシェアにもなるのでメリットでしかない。
自分が知らないときほどリプロする
「リプロ」とはソフトウェアの問題の再現のことを言いますが、例えば技術的な質問や問い合わせを受けた際に自分が知らない内容でも実際にやってみることで、自分の知らない分野を体験することができるので結果的に自分への成長につながるというものです。
日本人は「可能な限り自分で調べて検証し、質問する際は論理的にまとめて質問しなさい」と言われてきた人が多いのではないでしょうか。
自分で調べるのが面倒くさいからですね。
何か質問された際に、「どこまで調べて、検証できているのかまで伝えなさい」、じゃないと質問には答えられない、ではなくその質問を成長の機会と捉えリプロすることの方がチームとしても個人としても生産性が上がる。
私自身もエンジニアになりたての頃、当時の上司に簡易的に質問をしたところマウントを取られた経験があり、それ以降トラウマで質問する前に時間をかけて内容をまとめたうえで質問する、というスタイルを取っていますが、インターナショナルだと生産性を上げるには気軽に質問することのようです。
また、気軽に質問するというスタイルの方が自分よりもはるかにその分野のことを知っている人に聞いたり、教えてもらえる方が時間をかけすぎることもなく組織全体として生産性が上がる。
これは日本の文化とインターナショナルの文化の違いがあって、すぐに上記のようなスタイルを取るのは難しいとは思いますが、いずれ気軽に質問できるような文化に変わっていってくれると良いと思っています。
ディスカッションで鍛えられること
自分の知らないことを恥じない、知らないことは進んで聞くという精神
現在のプロジェクトでは特に意識するようにしていることですが、AWSの設計構築案件に初めてアサインされ仕事をしていく中で往々にしてよくあるのですが、プロパーが言っていることが理解できないことです。
自分よりも前に参画しているメンバーはある程度の経験やそのプロジェクトでの在り方を経験してきているから、プロパーの言っていることは理解できているのでしょうが、プロジェクトに入ったばかりのころは技術的なこと以外にもその現場特有の言葉などもあり、何を言っているのかわからないことがたくさんあります。
ここで躊躇して聞かないことよりも、会議とはディスカッションの場なのだから「今の点についてよく理解できなかったのですが、どういうことでしょうか?」と正直に私はわかりませんよとアピールして聞いてしまった方が良い。
この本にも、コツは「間違えたら恥ずかしい」とう感覚は一切捨てること。と言っている。
正直最初はかなり困惑し、こんなこと聞いて良いのだろうか?とかこんなことも知らないやつなのか、と思われるのではないかと思ってしまうこともあったが、ここで聞かない方が後々苦労することになると割り切って会議の場では積極的にpushするようにした。
プロパーの方も私がAWSの実務経験はないことは承知しているので、恥と思わずわからないものはわからないを伝えたところ、かみ砕いて説明してくれる方々なのでそこはやはり聞いてよかったなと思っています。
ディスカッションの場でもしわからないことがあった時に悩んでいる人は思い切って聞いてみてしまった方が良いかと思われます。
最後に
以上が「世界一流エンジニア思考法」を読んでの感想です。
読んでそんなのあたり前だよ、と思うことであっても実際にできているかと言われると出来ていなかったり、逆にこんな考え方もあるんだ、という気づきがありました。
特に日本とアメリカでの考え方の違いが一番のギャップを感じ、これが常識だと思っていたことも、常識とは国や人によって異なるので、狭い枠の中に納まるのではなく、もっと視野を広く持ち、なにより生産性を上げるためにはどうすれば良いか?の思考をすることが大事なのではないかと思いました。
興味ある方はぜひ本書籍「世界一流のエンジニア思考法」を読んでみてはいかがでしょうか?