はじめに
昨今有名な著書である「世界一流のエンジニアの思考法」を読んだ感想や個人的に学びが特にあると感じた点を記載したいと思います。
あまり読める時間が取れないけど、どんな内容か気になる!と思う方は、「フェルミ」でも紹介されているので、動画を見るだけでも学びになるかと思います。
参考:
本の概要
この著書では、世界一流のエンジニアがなぜ圧倒的に仕事ができるのかが書かれています。
驚くことにパフォーマンスの高さは、頭の作りや才能という事ではなく、「思考法」から生まれているという事実があるそうです。
個人的に学びがあると感じた内容
詳しい内容は後述するとして、個人的に学びがあると感じた内容を記載します。(説明が無いトピックもあります)
- 試行錯誤は悪
- 「理解に時間を掛ける」を実践する
- エキスパートに頼る
- Be Lazyというマインドセット
- コードリーディングのコツは極力コードを読まない
- マルチタスクをやめる
- 気軽に空気の大切さ
- 意見が対立しても「否定」しない
- 自己組織チーム
- 仕事を楽しむ
- 定時に上がる
①試行錯誤は悪
プログラムが上手く動作しない場合、ログを仕込んで試行錯誤した経験はないでしょうか?
私はあります。。ログをあちこちに入れて、どこが悪さをしているかを突き止めていることが多々ありました。
優秀なエンジニアが撮る手法としては真逆で、 最初の一つのログだけを見て仮説を立て、手は一切動かさない
「情報収集」→「仮説を立てる」→「仮説の検証」→「実行」というサイクルを回す。「仮説の検証」段階で不十分の場合は、「情報収集」に戻るという具合です。
②「理解に時間を掛ける」を実践する
著者がマイクロソフト社で働いた経験から、優秀なエンジニアでも理解には時間がかかるという事実があるということです。
理解が早いと感じるのは、基礎が出来ていてその知識を積み重ねているため、早いと感じるということです。
そもそも理解といるのは、
- その構造を掴んで、人に説明できること。
- いつでもどこでも即座に取り出して使えること
- 知見を踏まえて応用が効くこと。
と著者は述べています。
初歩の初歩から簡単だと決めつけずに基礎を学習することで、応用することができる様になり、その結果として、試行錯誤も減るという具合に好循環が生まれます。
③エキスパートに頼る
1つのことで二時間以上ブロックされたら、エキスパートの意見を頼り、他の仕事をした方が効率が良い ということです。
個人的には40分ほど聞いてしまったも良いかと思っていますが、調べても考えても分からないことは、有識者に聞いた方が良いと思います。
この本を読んで改めて意識的に実践してみましたが、一人で悩むよりも早く解決することができ、無駄な時間の使わずに済みました。
他の人の時間を取ってしまうことになりますが、一人で一日中グダグダと考えているのであれば、有識者から10分ほどで知識を共有してもらう方がチーム全体で考えても効率が良いかと思います。
④Be Lazyというマインドセット
Be Lazy(怠惰であれ)
は「より少ない時間で、価値を最大化するという考え方」です。
達成するための習慣は以下の通りです。
・ 望んでいる結果を達成するために、最低限の努力をする
・ 不必要なものや付加価値の無い仕事を無くす
・ 簡潔さを目指す
・ 優先順位をつける
・ 時間や費やした努力より、アウトプットと生産性に重点を置く。
・ 長時間労働をしない様に推奨する
・ 会議は会議の時間内で効率的かつ生産的に価値を提供する
当たり前のことの様に感じますが、改めて意識してみると良さそうです。
⑤コードリーディングのコツは極力コードを読まない
コードリーディングをする際は時間が掛かる時もありますが(特に新規リポジトリ)、隅々まで読むことはせずに、メソッド名などから処理を推測してコードの全体を理解することが大切ということでした。
⑥マルチタスクをやめる
マルチタスクをしないというのは有名な話だと思いますが、どうしてもしてしまうこともありました。
例えば、MTG中に内職してしまうなどです。
会議で自分に関係のない話をしている場合でも、一切他の仕事はやらずに話に集中することが大切ということでした。
ですが、どうしてもマルチタスクになってしまうこともあると思いますが、その様な時はどうするかというと、 1日4時間は自分の仕事に集中するということです。
その時間では、Slackなどでの連絡も全て無視して集中するということでした。
そうすることでシングルタスクで集中することができ、とても効率が良くなります。
連絡に関しては、確保していた4時間以外で返信することになります。個人的には1時間は集中し、30分は離れるを繰り返しても良いかなと思います。
⑦意見が対立しても「否定」しない
相手を否定しない、相手のアイディアを否定しない、そして自分の考えとして意見をいうということを守れば、お互いのメンタルを傷つけることなく、議論の生産性を向上させることができるということです。
相手も気持ちを考えた上で、反対意見を述べる場では「自分の意見では〜」と発言するのが良さそうです!
⑧定時に上がる
私はキリが悪いからと、定時で上がらずに残業する派ですが、やはり生産性が低下するとありました。
キリが悪かったとしても定時で上がる。強制的に定時に退勤することで、何の効率が悪かったかを振り返る。加えて、生産性を上げるために個人学習を行う。またしっくり睡眠や趣味の時間を増やす。 そういったことを実施することで、幸福度が上がると記載がありました。
今後なるべく実践してみようかと思いました!
最後に
この本はとても良書だと思いました!
また、定期的に振り返りたいと思います。
この本の面白いところは、優秀なエンジニアになるために、新たに何かを実施するのではなく、不要なことを減らして脳の負荷を減らし、生産性を高めるという事が明記されている事です。
「脳の酷使をやめる」、「準備や持ち帰りをやめる」、「マルチタスクをやめる」、「情報の詰め込みすぎをやめる」、「管理をやめる」、「批判や否定をやめる」
といった事です。
そうした結果、驚くほど脳にスペースが生まれ、心身は楽になって、仕事は飛躍していくと記載されています。
こちらに明記していない、アウトプットの重要性や失敗の歓迎など、とてもためになる事が多く記載されているので、一度読んでみることをお勧めします!
ここまで、読んでいただきありがとうございました。