世界一流のエンジニアの思考法を実践するには大声作業が近道かもしれない
こちらは クラスター Advent Calendar 2023(2枚目)の6日目の記事です。 昨日は @kyokomi さんの「昼休憩何してますか?忙しいですか?活用してもらっていいですか?」でした。
自分も脳が元気な昼の時間をなにか生産的な活動に充ててみようかなと思いました。
改めましてこんにちは、クラスター株式会社でサーバサイドエンジニアをしている yoooz です。
本記事は「世界一流エンジニアの思考法」の読書感想文エントリです。
米マイクロソフトのシニアエンジニア「牛尾剛」さんが肌で感じた、世界一流エンジニアの思考法をまとめた一冊です。
自分が今後もエンジニアとして働いていく中で、継続したほうが良いことは何なのか、新しく取り入れた方が良いことは何なのかを見つけるために手にとって見ました。
1章 世界一流エンジニアは何が違うのだろう?
自分も度々不思議に思うことがあるのですが、つよつよエンジニアと呼ばれる方は得意領域に対しての知識が、幅広く深いです。
どうしてそこまで様々なことが把握できるのか、その答えに近づくためのキーワードが メンタルモデル だそうです。
メンタルモデルとは、「人々が世界を理解し、予測し、解釈し、新しい状況に適用するための、事故の心の中のイメージや理論」のことです。
これを構築する事によって、質の高いデータ収集や、仮説の立案・検証のサイクルを高速に回すことができるというところにも繋がります。
エキスパートに頼る
じゃあそんなメンタルモデルはどうやって作っていくの?というところですが、そこで重要なのが エキスパートに頼る ということです。
とにかく知らない領域に足を踏み入れるときは気軽にエキスパートに頼ってみよう、そのくらいの心構えでいいのかなと思いました。
日本では「ググれ、カス」という言葉があるくらい、人に聞く前にまず自分で全力を尽くせという文化ですが、どう進んだら良いかもわからない状態で何時間も立ち止まってしまうことを考えると圧倒的に生産性が高いです。
どんなに頭のいい人でも理解には時間がかかるもの
ただ、何でもかんでも人に聞いて解決しろということではなく、あくまでここでのゴールは自分の中にメンタルモデルを構築することです。
エキスパートからメンタルモデルを構築するための足がかりをもらったら、後は自分の頭でしっかり理解しましょう。
頭がいい人が理解が早い気がするのだが、それはしっかりとした土台があるからです。全く知らない領域で同じ速さの理解はできないと思います。
焦りから「早くできるように頑張る」というのは、実は最終的な生産性をむしろ下げているのかもしれません。
3章 脳に余裕を生む情報整理・記憶術
この章で驚いたのは、コードリーディングのコツは、極力コードを読まないこと だということです。
確かに、慣れないコードベースでコードをすべて読んで完璧に理解するには大量の時間と労力が必要になります。また、端から端までコードを読んでいると脳みそのCPUをフルに消費してしまい、肝心な部分に脳のリソースを使えなくなってしまう可能性も出てきます。
読者の方も、苦労してコードを隅々まで読んだ割には、最終的にあまり頭に入っていない。といった経験あるのではないでしょうか?私はあります。。。
まずは一旦他の開発者やライブラリのコードは信じてみて、全体を浅く捉えてみる。そこから必要な箇所は深掘りしていくというような、段階的なアプローチが良いのだろうなと感じました。
自分にとって難しすぎると感じるときは、自分の能力が低いのではなく、脳の使い方が間違っているんじゃないか?と思うことも大切です
「今の」自分では解けないことを見極めて、段階的に理解を深めて行けば良いのだなと感じました。
しんどい努力は一切やめて、自分が楽しいと思える努力をしながら成長することができるのです。
4章 コミュニケーションの極意
これまでの私の感覚だと、例えば実装中にエラーが出た場合は
「こんなエラーが出てきて、調べた感じ〇〇が原因っぽいので、△△を試してみたのですがだめでした、どうしたらいいでしょうか?」
のような質問をすると思います。
しかし著者の環境では、コミュニケーションにおいて、情報量が少ない方が好まれるそうで、
「(エラーのコピペ) こんなエラー出たんだけど、なにか知ってる?」
くらいの質問が良いそうです。
他のエンジニアもそれぞれの業務があるため、短い時間で理解できる単純な内容の質問の方が好まれるのは納得です。
話を進めていく中で、質問内容の重要な部分が読み取られ、芯を食った返答が返ってくる。複数回のラリーは続くでしょうが、最初の一発目の質問文で無駄な時間を使ってしまうより、よほど効率的だなと思いました。
また、上記のような気軽な質問をできる空気が必要なのはもちろんですが、気軽に断れる空気も重要です。
「これ知ってる?」といった質問に対して「ごめん、わからない」「〇〇さんなら知ってるかも」と気軽に断れる空気も相まって、コミュニケーションが加速しているんだなと感じました。
大声作業
この本を読み進めながら思ったことは、「これって大声作業してたら自然と捗るのでは?」ということです。
大声作業とは
作業が途中であってもチームメンバーの目の触れる場所にガンガンアウトプットする
作業が詰まったらとにかく尋ねる
という働き方です。
2つ目の「作業がつまったらとにかく尋ねる」が、文字通り前述した「メンタルモデルの構築」や「脳に余裕を持つ」につながるんじゃないかなと思っています。
また、アウトプットしながら作業を進めるため、作業途中であっても周りのエンジニアから落とし穴や、関連情報などといった必要な情報をもらえることもあります。
まとめ
「世界一流エンジニアの思考法」を実践するための「大声作業」として本記事を書いてみましたが、いかがでしたでしょうか?
実際、私もクラスターに入社してから大声作業を意識しながら日々業務を進めていますが、新しい領域のキャッチアップがとてもしやすいなと感じています。
世界一流エンジニアの思考法を身に着けて、より成長していきたいですね。
明日のアドベントカレンダーの記事は @baku_dreameater さんです!お楽しみに!
この記事が気に入ったらサポートをしてみませんか?