ダグラスの日記

これはみんなの為のブログであり、誰のためのブログでもない

SQLを1つだけ実行したトップエンジニアの問題解決方法

 

こんな記事を読んだ。

 

note.com

 

著者は長い間「何かを出来るようになる」ことに悩み、努力しても満足のいく結果が得られなかった。
しかし、あるトップレベルのエンジニアの考え方を学んだことで、問題解決の思考法に大きな変化が起きた
そのエンジニアは、問題に対して仮説を立ててから手を動かしていた。

トップエンジニアと著者の違い

トップエンジニアと、著者の違いを明らかにすることで、トップエンジニアの問題解決方法を分析したい。

1. トップエンジニアは仮説を立てていた

トップエンジニアは仮説をまず立てていた。これが違いの全てかもしれない。
仮説を持って問題解決をしようとする場合、まずゴールや望ましい結果を定め、そのゴールに向かって逆算していく。
仮説を立てることのメリットは以下が考えられる。

  • ゴールから逆算することで、問題解決の方向性が明確になる
  • 無駄なアクションを削減し、問題の核心にアプローチすることができる
  • 最小限のアクションにより、無駄な試行錯誤を減少させる

2. 著者はまず手を動かしていた

著者は、まず手を動かし、網羅的にできるだけ多くの情報やアクションや選択肢や視点から問題解決に当たろうとしていた。

このようなやり方も、ある場面では有用なアプローチだが、以下のデメリットが考えられる。

  • 全ての可能性を探求するために時間とエネルギーがかかる
  • 多くの情報を扱うため、焦点を保つのが難しくなる
  • 問題の核心から逸れ、本質的な要因を見落とす

結論

著者のやり方も問題解決に達するとは思うが、仕事では問題解決と同じぐらい「スピード」が重視される。

スピードが求められる場合は、トップエンジニアのように仮説を持ち、ゴールを明確に定め、的確な方向性を示し、効率的に解決へと進むことが大事だ。

 

仮説は当てずっぽうか?

仮説こそ、当てずっぽうではないか?と思われるかもしれない。
しかし、仮説とは、的確な知識や経験に基づいて立てられる仮の答えだ。
トップエンジニアの立てる仮説は、何も頭の中に突然湧いてきたものではない。
情報や経験の蓄積という土台があるから出来ることなのだ。
実際、元の記事でも「理解」の重要性が強調されている。
つまり、理解(知識や経験の蓄積)をしっかり積み上げた上で、いざ問題解決をする段では「仮説を立てる」ことが重要なアプローチとなるのだ。

仮説が間違っていたら?

また、仮説が間違っていたら、結局問題解決に至らないのでは?と思われるかもしれない。
それは当然そうだ。しかし、それでもまず手を動かす総当たりよりは、問題解決へのスピードが速いだろう。偶然、総当たりの方が速い場合もあるだろうが、それはあくまで偶然だ。
また、手当たり次第に手を動かすことによるデメリットとして「時間やエネルギーの浪費」「多くの情報処理による焦点のぼやけ」「本質的な要因の見落とし」がある。疲労感が残り、頭の中は混乱してしまい、問題の本質を見落とす可能性がある。そして、次回もまた同じ苦労をすることは想像に難くない。

一方で、仮説を立てた場合は「明確な方向性」「無駄なアクションの削減」「本質へのアプローチ」ができ、問題解決した場合も解決できなかった場合でさえ、徒労感は無くなり、情報は整理され、問題の本質の理解が進むだろう。これにより、情報の整理の仕方がよりスマートになり、体系的な知識の構築していくことができる。そして、次回の問題解決する場面において、それらの知識やアプローチを有効活用することができるだろう。