Open3

「感想と要点まとめ」世界一流エンジニア思考法

furryUpfurryUp

世界一流エンジニアの問題解決法

  • いきなり手を動かさない
  • まず仮説を立てる
  • 検証し、仮説が間違っていたら別の仮説を立てて再検証する
  • これを繰り返す

まあ、学生時代にやったアプローチとほぼ同じだけど、実際に課題に直面したときには、まず手を動かしてしまいがち、、

理解について

理解の3要素

  • 説明できる
  • 応用できる
  • いつでも使える

この3つの要素を基に、自分が「理解」しているかどうかを判断できる。

実装前に小さなドキュメントを書く

箇条書きで書いてもOK

  • Scope (実装範囲)
  • Background (背景)
  • Problem Statement (何を解決しようとしているか)
  • Proposal (提案方法)

このアプローチを使う前提として、

  • エンジニア向けであり、お客様向けではない
  • 既存のコードベース上での改修や機能の実装に向いている
furryUpfurryUp

メンタルモデルを構築する

メンタルモデルとは、物事に対してどのような認知を持っているか、ということを指す。
メンタルモデルの構築は人それぞれなので、自分の思考癖に合わせることが大事。

たとえば、
システムの全体像をまず掴む

  • どんなパーツがあるのか
  • 各パーツの役割
    ・・・

といった一連のやり方を定めた上で理解を進めること。私はそう理解している。

参考書:「超一流が実践する思考法を世界中から集めて一冊にまとめてみた」

他人に聞く

アジア系の人は自分で理解したい、他人の力を極力借りない癖がある(自分もそうだし)。
これはよくないので、理解に時間がかかりすぎる場合は、他人に聞きましょうー
恥ずかしいことなんて全然ないし、聞いたほうが絶対に効率がいい。

シンプルの習慣=偉大な習慣をつけろ!

シンプルの習慣=偉大な習慣=時間をかけて積み重ねること。
自分に言いたいですね、、焦らず、ゆっくりで!

Be Lazy

よく聞くアプローチですねー

  • 仕事をどれだけこなしたかではなく、どれだけ価値を創造したかに焦点を当てる
  • 後回しにせず、「さっさとやる」
    この言葉には一番共感している。日本では、Sierとして、さっさとやりたくても、後回しになるケースが少なくないだろう。社内の承認待ちだったり、お客様側の都合だったりして、結局実行するのは1、2ヶ月後。
    (効率が悪いし、エンジニアとして1、2ヶ月後には全てを忘れてしまい、当初やっていたことを思い出すのに時間がかかるし、デメリットだらけ・・・)
  • 不確実性を受け入れる
    • 「納期」を守るためにはどのようなマインドセットが必要だろう?
      • 品質+機能数+納期、全てを守るのは難しい
      • 納期を守るためには、品質を落とすか、機能数を減らすしかない
    • 無理だと感じた場合は、さっさと不確実性を受け入れ、方向転換したほうが良い -> それは「悪」ではない
      (正直、このマインドセットのほうがセンスがあると思う。日本のやり方が悪いわけではないけれど、エンジニアたちは幸せになれないと思っている)
  • 「予定」はあくまで見通し
    • 自分の能力に合わせて、どれだけ「価値」を定常的に創造できるかを考える
    • 「どれだけやったか」ではなく「価値」にフォーカスすべき (響く!)
  • 無理な承知は悪い
    • 自分のキャパシティを超えたら「NO」と回答すべき
furryUpfurryUp

⇑まとめ

  • 「生産量」ではなく、「Value」や「生産された成果の質」に注目すべきだ
  • 無理をせず、自分のキャパや能力の最大限を事前に把握しておけば、一日のアウトプットが少なくても問題はない
  • 「目標」を達成するために、現在検証している方法がうまくいかなければ、「無理」とクールに判断して方向転換すべき
  • 今自分に任されている仕事に専念し、あれこれ手を広げるのではなく、最も重要なタスクに最大限の「バリュー」を発揮できるかに集中すれば良い
  • 最後に自分へのメッセージでもあるが、業務時間内で「バリュー」や「価値」を生み出し、創造することが大切