YU2TA7KA's BLOG ~take one step at a time~

派生開発、組み込み開発周りのこと。

世界一流エンジニアの思考法【書籍レビュー】

はじめに

友人がオススメしていたので、読みました。5年目くらいのソフトウェアエンジニアが読むと一番効果がありそうな良著と思いました。私自身が仕事で感じていたことが明文化されている箇所が多々あり、自信にできたことが有り難かったです。

電流走る表現

最初の一つのログだけを見て「仮説」を立て始めた。手は一切動かさない。

トップエンジニアの衝撃的な解決法として紹介されていました。職場のできる方々は同じような解決法をとっています。事実を積み重ね、仮説を立て、検証し、原因を究明し、解決に至る、というプロセスです。特に「仮説」力が凄まじいです。メカニズムを踏まえた仮説を立てること、逆に不明な場合は有識者へ協力を仰ぐこと、これらをひっくるめてちゃんと遂行されていくのです。私もこれができるように日々精進しており、年を経るごとに仮説力は上がっております。

どんなに頭がいい人でも理解には時間がかかるもの

これも体験とともに共感できるフレーズでした。23年に高速フーリエ変換を理解できたのですが、とても時間がかかりました。趣味ですし、少なくとも私は高速フーリエ変換の理解には時間がかかる人間なので、自分が納得するまで気ままにやろう、というスタンスでした。このスタンスが本フレーズで間違っていなかったと思えました。

「理解」の3要素

  1. その構造をつかんで、人に説明できること
  2. いつでもどこでも即座に取り出して使えること
  3. 知見を踏まえて応用がきくこと

何をもって「理解」したと判断するかは難しいのですが、私なりには「明文化できて、人に説明できること。」と位置づけていました。本書では三要素を示しています。1.が私の認識とほぼ一致で、2., 3.はあまり意識していなかったので、留意したいと思います。この三要素のどの段階かで、入門、中級、スペシャリストなどラベル付けできそうな気もします。

「基礎」練習は「誰でもできる」ことだが、習得には「時間がかかる」

これもとても気に入った表現です。最近の私だと格闘ゲームのコンボ練習や筋トレがまさに「これ」です。ソフトウェア開発における「基礎」練習とは、必要な技術を学習し続けることで、体動かす系の「基礎」練習とはちょっと趣が異なるように思います。と書いてみたものの、ソフトウェア開発における「基礎」練習って何でしょうか?数多のプログラミング言語/開発環境でHello Worldすることが「基礎」練習と言えるでしょうか?結構実体を明文化するのが難しいです。

中の人としてプラットフォームをつくるのが仕事なのだから、大胆に変えてもほかの場所の振る舞いが変わらずソリューションとしてシンプルなら、そのほうがより価値が高いと言える。

これは、わかっているけど、怖くてなかなかできていないです。テストがあれば振る舞いが変わらないことを担保できて、自信をもって変更ができます。なので、テストを書きましょう、というのが最近の私の理解です。実践が中途半端なので、これからは確実に実施できるよう頑張りたいです。あらゆる開発環境でテスト環境を構築できるように「基礎」練習するというのは、アリかもしれません。

既存システムがある場合は、あれこれ考えて調べる前に、まず「エキスパートに頼る」というのはベストプラクティス

これは、部署異動時にできた経験があります。自分はドメイン知識が不足しているのだから、頼るしかないことが明確であったため、腹くくって質問することができました。幸運なことに同僚の皆様が素晴らしいエキスパートばかりで、丁寧にアドバイスをしてくれて仕事を進めることができました。ポイントとしては、一度回答いただた内容で不明点があったら、申し訳ない気持ちを抱きつつも追加で質問させていただいて、都度自身が確実に理解していくことと思います。間違った理解をして話を進めて手戻りする方が不幸と思うためです。

今後もソフトウェアエンジニアは少なくともインテグレーションの主役であり続けるだろう

ChatGPT登場による、仕事奪われる話に対する著者の回答になります。私はこれに同意します。

「開発者の心を砕いてしまう」批判文化

コロナ禍での新型コロナウイルス接触確認アプリ(COCOA)開発を例に日本の文化に対するコメントです。これは私も感じていて、これが怖くて申し訳ないのですが、BtoCの開発はしたくないなと思っています。一方で、X(旧Twitter)を見ている限りだと、いくらかはこの批判文化は改善されているようにも思います。主観ですが。

素敵なアプリを見つけたら、つくってくれた人に対する感謝を発信してみよう

つくってくれた人(=ファーストペンギン)に対して感謝の意を示す人(=セカンドペンギン)という構図とても良いと思います。

日本では「働くこと」だけがあまり幸せとは言えない。

終盤では日本で「働くこと」について、ネガティブなことを記述されています。日本でずっと働いている私からすると、いろいろ思うところがありました。私は良くも悪くも日本企業文化にめちゃくちゃアジャストしているので、楽しく働かせてもらっています。

適宜参照したい図3,8,11,13,17

図に限らないのですが、本書は読むタイミングで感じ方が強く変わりそうですので、折を見て眺め直したいと思います。加えて、今回ピックアップした以外にもたくさんの付箋箇所もありましたので。

おわりに

最初タイトルに少しビビりましたが、自分の周囲にも本書で語られている思考法を実践されている方が思い当たったこと、自身も見に覚えのある話が多々あったこと、から自信に繋げられました。また、全体通して読みやすい文体でスッと入ってくる感じが心地よかったです。