Open3
「感想と要点まとめ」世界一流エンジニア思考法
世界一流エンジニアの問題解決法
- いきなり手を動かさない
- まず仮説を立てる
- 検証し、仮説が間違っていたら別の仮説を立てて再検証する
- これを繰り返す
まあ、学生時代にやったアプローチとほぼ同じだけど、実際に課題に直面したときには、まず手を動かしてしまいがち、、
理解について
理解の3要素
- 説明できる
- 応用できる
- いつでも使える
この3つの要素を基に、自分が「理解」しているかどうかを判断できる。
実装前に小さなドキュメントを書く
箇条書きで書いてもOK
- Scope (実装範囲)
- Background (背景)
- Problem Statement (何を解決しようとしているか)
- Proposal (提案方法)
このアプローチを使う前提として、
- エンジニア向けであり、お客様向けではない
- 既存のコードベース上での改修や機能の実装に向いている
メンタルモデルを構築する
メンタルモデルとは、物事に対してどのような認知を持っているか、ということを指す。
メンタルモデルの構築は人それぞれなので、自分の思考癖に合わせることが大事。
たとえば、
システムの全体像をまず掴む
- どんなパーツがあるのか
- 各パーツの役割
・・・
といった一連のやり方を定めた上で理解を進めること。私はそう理解している。
参考書:「超一流が実践する思考法を世界中から集めて一冊にまとめてみた」
他人に聞く
アジア系の人は自分で理解したい、他人の力を極力借りない癖がある(自分もそうだし)。
これはよくないので、理解に時間がかかりすぎる場合は、他人に聞きましょうー
恥ずかしいことなんて全然ないし、聞いたほうが絶対に効率がいい。
シンプルの習慣=偉大な習慣をつけろ!
シンプルの習慣=偉大な習慣=時間をかけて積み重ねること。
自分に言いたいですね、、焦らず、ゆっくりで!
Be Lazy
よく聞くアプローチですねー
- 仕事をどれだけこなしたかではなく、どれだけ価値を創造したかに焦点を当てる
- 後回しにせず、「さっさとやる」
この言葉には一番共感している。日本では、Sierとして、さっさとやりたくても、後回しになるケースが少なくないだろう。社内の承認待ちだったり、お客様側の都合だったりして、結局実行するのは1、2ヶ月後。
(効率が悪いし、エンジニアとして1、2ヶ月後には全てを忘れてしまい、当初やっていたことを思い出すのに時間がかかるし、デメリットだらけ・・・) - 不確実性を受け入れる
- 「納期」を守るためにはどのようなマインドセットが必要だろう?
- 品質+機能数+納期、全てを守るのは難しい
- 納期を守るためには、品質を落とすか、機能数を減らすしかない
- 無理だと感じた場合は、さっさと不確実性を受け入れ、方向転換したほうが良い -> それは「悪」ではない
(正直、このマインドセットのほうがセンスがあると思う。日本のやり方が悪いわけではないけれど、エンジニアたちは幸せになれないと思っている)
- 「納期」を守るためにはどのようなマインドセットが必要だろう?
- 「予定」はあくまで見通し
- 自分の能力に合わせて、どれだけ「価値」を定常的に創造できるかを考える
- 「どれだけやったか」ではなく「価値」にフォーカスすべき (響く!)
- 無理な承知は悪い
- 自分のキャパシティを超えたら「NO」と回答すべき
⇑まとめ
- 「生産量」ではなく、「Value」や「生産された成果の質」に注目すべきだ
- 無理をせず、自分のキャパや能力の最大限を事前に把握しておけば、一日のアウトプットが少なくても問題はない
- 「目標」を達成するために、現在検証している方法がうまくいかなければ、「無理」とクールに判断して方向転換すべき
- 今自分に任されている仕事に専念し、あれこれ手を広げるのではなく、最も重要なタスクに最大限の「バリュー」を発揮できるかに集中すれば良い
- 最後に自分へのメッセージでもあるが、業務時間内で「バリュー」や「価値」を生み出し、創造することが大切