こんにちは。FLINTERS BASEの小林です。
今年の4月に弊社に入社をし、現在は研修で毎日勉強の日々を送っています。
本記事はFLINTERS BASE「梅雨にも負けないブログ祭り」企画の一環です。
私たちのチームでは読書感想文を投稿することになりましたので、『世界一流エンジニアの思考法』という書籍の感想を書かせていただきました。
テーマ #読書メモ
この書籍は一言で言えば、「仕事のパフォーマンスを上げる方法を教えてくれる」本です。
著者がアメリカで働き始めた頃に何よりも驚いたことは、一人一人の生産性の高さだったとのことです。
しかし一流のプログラマーも同じ人間です。自分にも真似できることがないかと注意深く観察を続けているうちにあることに気が付きます。
それは「良い習慣や思考法が高い生産性を形作っている」ということでした。
『世界一流エンジニアの思考法』
著者:牛尾剛
出版社:文藝春秋
この本を読んだ理由
著者はアメリカマイクロソフト社のクラウドサービスのプログラマーです。
これだけを見たら自分とは頭の作りが違う輝かしい経歴の持ち主なのだろうと思いますが、著者の牛尾さんは幼い頃から何をやっても容量が悪く、人の3倍くらい努力してようやく人並みになれる程度、さらに大人になってからADHDの診断もされています。
日本で就職をし、システムエンジニアとして働くチャンスを与えられたが、全くプログラムが書けずに不甲斐ない日々が続いたそうです。
しかし、自称三流エンジニアの著者は44歳の時に運良くマイクロソフトに転職をしました。
アメリカで日本との仕事の取り組み方や思考の違いを学び、そして実践し、現在は一線で活躍をされています。
著者と重なる点があるように感じて勝手に親近感を覚え、
「自己成長のヒントを得られるかも!」、「読んだらマイクロソフトで働けるかも!」笑
と思いこの本を手に取りました。
感想
いきなり手を動かさず仮説を立てる
序盤に登場した内容ですが、自分のことを書かれているようで一番ドキッとさせられた内容でした。
エラーなどで思い通りの挙動にならなかった時に、これが原因か?あれが原因か?とやみくもに手を打って、単なる思いつきで色々なパターンを試して正解を探しているだけなので、時間がかかる上に新しい知識を何も学んでいない
まさに自分のことだと心に刺さりました。
例えば研修中にエラーが出た際に思いつきだけであれこれやってみて、気づいたら1時間~2時間経っているということはよくあります。
著者によると問題に取り組む時にはいきなり手を動かさずに、エラー文などから事実を見つけて多分こういうことが起きているのではないか…と仮説を立ててからそれを検証するというアプローチが合理的であるとのことです。
このことを知ってからは
・今自分が何をしていてどういう挙動にしたい
・エラー文を読み(分からなければ翻訳機能を使う)原因を見極める
・解決のためには何を調べて実行すれば良いか仮説を立ててから手を動かす
の流れを意識するようにしています。
手を動かすより脳を動かすですね。
できるプログラマーとできないプログラマーの差は25倍あると言われていて、それは手の早さではなく情報を集めて仮説を立てる過程に差があるようです。
エキスパートに頼る
一つのことで2時間以上ブロックされたなら質問するなり相談するなりして、回答が来るまでの待ち時間は他の仕事をやっておく方が断然生産性が高く、回答 + アドバイスもつけてくれるのでプラスアルファの学びにもなる
日本では「ググれや◯ス」という言葉があるくらい自分で調べてから人に聞くという文化があるが、複雑なシステムの場合ほど有識者に聞いた方が効率が高い
確かにその通りで
相手は忙しいから迷惑かけてしまわないかな、こんなこと聞いたら呆れられないかな、などと今だに聞くことを躊躇してしまうことは多くあります。
しかし、これが実際の開発現場だと自分のせいでプロジェクトが遅延してしまうことにもなりかねないので、チームのためにも聞くことは大切だと感じています。
とはいえ実際行動に移すのは難しいので、Google人口知能開発チームが提唱する15分ルールを意識するようにしています。
ただ、15分は一瞬で過ぎてしまうので30分~60分くらいは自分で考えるようにしてから質問をすることで、罪悪感が少し薄くなりました。
検討するより早く失敗した方が良い(Fail Fast)
この言葉の背景は、日々新しい技術が誕生するITビジネスの世界では製品開発に時間をかけすぎると他社が同じような製品を市場に出してしまい競争に負けてしまう可能性があるためです。
なので成功しようがしまいが仮説を立てたらまずはやってみて早くフィードバックを得て修正していくという考えが浸透しているようです。
日本では「失敗 = 悪」のような考えが多いと思いますが、マイクロソフト社では失敗しても誰かから怒られることはなく、むしろ失敗を報告すると「フィードバックをありがとう!」と感謝されるそうです。
確かに失敗した時に怒られるとリスクを恐れて挑戦しなくなったり、無難で安定したことばかりやるようになってしまうので新しいことを生み出す妨げになってしまうと思いました。この考えは今まで私が勤めてきた会社の環境とは180度違い面白いですし、このような環境であるから技術者たちは失敗を恐れずトライ&エラーを繰り返し日々新しい技術を生み出して会社が成長しているのか、と納得させられました。
この他にも
・コミュニケーションの取り方
・情報整理や記憶術
・チームビルディング
・生活習慣
など著者が実際に体験し学んだ生産性向上の様々な手法が記されています。
まとめ
全体的に私のマインドとは真逆のことが多く書いてあり、新たな考え方や価値観を学べる書籍でした。
自身のライフステージや置かれている環境によってマインドセットをアップデートすることは大切だと思うので、コンフォートゾーンに戻らないように定期的に読み返し定着をはかりたいと思います。
著者が成長した大きな要因は、同僚のアドバイスを素直に受け入れていたことだと思いました。ビジネス本などでよく目にする「物事を素直に受け入れる」という考えは普遍的なものなのかもしれませんね。内容によっては「これは日本じゃできないよ」と思うものもありましたが、否定から入らずにまずは素直に受け入れてやってみる気持ちを忘れないようにしたいです。
今回は初心者エンジニア向けの内容の感想になりましたが、現場で活躍しているエンジニア、将来エンジニアを目指している方、またエンジニアでない方でも気づきのある書籍だと思いますので、ぜひ手に取ってみてはいかがでしょうか。