問題を解くのであれば、一般化しないほうがいい。
広木です。
今日お話ししたいのは、問題を過度に一般化しないほうがいいという話です。いろいろなひとの話を聞いて問題解決のお手伝いをしていると、「自分で問題を難しくしている」という人によくであいます。
たとえば、本当は隣のチームリーダーとの関係がうまくいっていないのを、「チーム間連携をスムースにするためのフレームワークやメソッドはありますか?」といった難しい問題に変えてしまうというかんじです。
本人は、けっしてわざと問題を難しくしてやろうとしているのではなくて、おそらくこういうときの一般的なやり方がわかれば、次の問題にも対処できるし、根本的な解決になるかと思うから無意識にそう話しているだけだったりします。
このように一般化した問題解決をしたがる傾向は、エンジニアなどロジックやセオリーに重きを置く考え方をする人に多いです。これは勉強熱心で、スキルをできるだけ習得したという意識の表れでもあります。
プログラムも一般化した問題を解くと再利用できたりするため、できるだけ一般化された問題とは何かを探す癖もついています。
一方で、数学にしても物理にしても問題というのは「一般化」すると極度に難しくなる傾向があります。たとえば、x^2-4 = 0 を解くのであれば、簡単に解けますがax^2+bx+c=0をとくのであれば、二次方程式の解の公式が必要になり難しくなります。
また、これをされに一般化して3次、4次、5次と方程式の次数を大きくすればその難しさは跳ね上がっていき、ついには解の公式が存在しなかったりします。
なので、どのような問題もまずは個別の答えにたどり着くのは簡単でも、一般化した答えにたどり着くのは難しいものだと捉えると、まずは個別の問題の答えをたどり着こうとかんがえるのも良いかと思います。
また、話をメンターだったりなんだったりと聞いている方は、今聞いている問題一般化されてしまっていないかな?などと意識してみるのも良いかと思います。
もし、ただ単に「となりのリーダーとギクシャクしている」だけだったら、ちゃんと話してみる機会が必要なだけかも知れません。
そうすると、意外なことに問題がすっと解決したりします。
よくよく話してみると、となりのリーダーはその人のことを勘違いしていて、考え方にギャップがあったり、馬鹿にされているんじゃないかと感じているだけだったりするんです。お互いが歩み寄るきっかけができたら、自然と解消したりします。
一般化するチャンスがあるのは、ここです。
何か折り合いが悪いと思っている人も、何かのきっかけや積み重ねで互いの態度が硬直的になったりしているだけと言うことがあります。そのきっかけが年々得づらくなっているから、お互いの組織や価値観など大仰な問題にしてしまうことがあると知ると、必要なのはこの積み重ねが起きづらい状況ではないだろうか?とか「一般化」したより一般化した問題を解いてみるきっかけができたりするのです。
つまり、
問題は一般化するな。解法を一般化してみろ。
と言うことです。また、最初に一般化した答えにばかり執着することも注意が必要です。
たとえば、
x^2+4x+1=0 のような二次方程式があったときに皆さんはどう解きますか?
簡単に因数分解できなさそうなので、「解の公式」を使ってみようとなってしまうひとも多いのではないでしょうか。
そうすると、ちょっと、複雑な計算をしないといけなくなりますよね。そうなんです。一般解を当てはめようとすると解くのも少し難しくなります。
でも、手元にある簡単なものを当てはめてみることができるとどうでしょうか。
たとえば、X^2 = C という形の方程式であればすぐに解けます。
X = ±√C
です。
このよく知っている形に持ち込めないかを検討してみるわけです。
x^2+4x+1=0
この方程式の前半部分
x^2+4x
をよく眺めてみると(x+2)^2の形が作れそうです。
もし、問題が
x^2+4x + 4 = 0
だったら
(x+2)^2
にできて、うれしいです。
そう考えると
x^2+4x +( 4 - 4 )+ 1 = 0
と考えて、
(x+2)^2 -4 +1 = 0
⇔ (x+2)^2 = 3
⇔ (x+2) = ±√3
⇔ x = -2 ±√3
みたいにできます。
いわゆる、平方完成というテクニックなのですが、手元の簡単な道具を組み合わせて問題を簡単化して、個別に問題を解いていくことで、複雑な公式を考えたり、計算したりすることなく問題を解くことができます。
ここで覚えておきたいのは、「平方完成」というテクニックがあるぞ!ということではなく、個別のメソッドによらずに使い慣れた方法で解決できる問題の単位に分解していくことです。
メソッドや公式に頼ったり、それに拘泥してしまうと目の前の問題を難しくしてしまいます。これはもしかしたら、社会人一般にも言えるのではないでしょうか。
エンジニアリングの最も基礎的な考え方は、Divide and Conquer 分割して統治せよです。
問題を一般化して難しくするのではなく、個別化して分解し、簡単化したうえで解く。もし、問題が、解けた後気づきがあれば、それは一般解への道かも知れませんから問題を解いた後にじっくり検討してもいいでしょう。
更新の通知を受け取りましょう
投稿したコメント