問題解決能力の高い人と、そうでない人の本質的な差異はどこにあるのか。

今日は。オリエンタルインフォーメイションサービス、グループリーダーの川島です。

液晶ディスプレイパネル、デバイスドライバなどの開発を手がけています。

さて、リーダーをやっていると、部下の「問題解決能力」について考えなければならないシーンが数多くあります。

そして、この「問題解決能力」は、鍛えるのが非常に難しい能力です。

一体、問題解決能力の高い人と、そうでない人の本質的な差異はどこにあるのでしょう。

 

それは「問題の構造化」を扱う能力の有無です。

 

簡単に言えば、ある事柄を「大・中・小の項目に分類して捉える能力」とでも言えばいいでしょうか。

例えば、「ヒトは、哺乳綱の、霊長目の、ヒト科の一種です」というように、ある事物を階層構造で捉える能力です。

 

問題を構造化できないと、

「何が問題なのかわからない」

「調べられない」

「聞けない」

の三重苦に陥ります。

 

マニュアルが読めない

例えば、「構造化できない」技術者の顕著な例が

「マニュアルを詳しく読むのが嫌い」

「目的のものをマニュアルから探せない」

という人です。

 

少し前にも、

「工夫しているんですが、どうしても仕様が満たせない」

と相談してくる若手がいました。

 

かなり困っているので、とりあえず私がマニュアルを調べてみました。

すると、デバイスへの書き込みに、遅いやり方をつかっている。

「マニュアルにそのまま解決策が書いてあるじゃない」

といったら、

「探せませんでした」

と返ってくる。

 

彼は、自分の抱えている課題が、マニュアルのどこに書かれているかを推定できなかったのです。

 

つまり、

・自分の抱えている課題は、大枠でとらえると、◯◯という項目の中のはずだ。

・◯◯の項目は、◯◯という機能の章に含まれているのではないか。

・では、自分の求めている事柄は、マニュアルのこのあたりに書いてあるはずだ。

というを類推を働かせることができなかったのです。

 

 「作業の目的」を忘れてしまう 

こんなこともありました。

新製品に、旧製品のプログラムを流用した時がありました。

でも、テストしてみると正常に動作しない。

 

そこで、一人の若手に

「ソースコードを読んで、新製品へ流用するためにはどこを修正すべきか、調べてくれ。」

と依頼しました。 

 

何日か経って、

「調べました」と彼が言ってきたので、アウトプットを見せてもらうと、

「旧製品の仕様」は相当調べたのですが、ソースコードを調べることに注意が向き過ぎていて「新製品への流用をどうすればよいか」については調べて来ていない。

 彼は、「作業の目的」を忘れてしまっていました。

 

これも、問題を構造化できていないことの現れです。

自分がやっている作業が、プロジェクト全体のどこに位置しているのかが見えないので、

「とりあえず自分が今やっていること」

だけにフォーカスが行ってしまい、それ以外のことは忘れてしまうのです。

 

残念ながら、こんなことを繰り返していたら、一生「ただの作業者」で終わってしまいます。

 

「問題の構造化」ができた瞬間に大きく成長した新人

逆に、問題を構造化することによって、一瞬で大きな成長をする人もいます。

 

例えば、過去に「入社してからかなり経過したけれども、実はポインタ(注:C言語習得の鬼門と言われる概念)が全くわからない」という告白をした新人がいました。

そこで、我々は彼に、頭のなかで考えていることを、ホワイトボードに書いて説明させたところ、彼は教科書で習った定義をそのまま、言葉で復唱するにとどまりました。

それは「理解」ではなく、「暗記」にとどまっているということの証です。

つまり、知識を構造化できていない。

 

そこで、私は彼に特訓を施すことにしました。

「strcpy」というごく基本的な関数の原理を、完全に説明できるまで、何度も何度も、繰り返し例題を出して練習させたのです。

 

そこでは、プログラムの原理に係る質問を繰り返し彼に問いました。

Aという文字が、なぜAと表示されるのか」

「−は、なぜマイナスなのか。」

「コンピュータは基本的に足し算しかできない、なぜ引き算できるか」

「関数を呼び出して、リターンしたら、なぜ同じ場所に戻ってくれるのか。」

 

いずれも、「図にして構造化し、説明できる」まで、徹底的にやりました。 

もしかしたら 傍から見ると、

「ずっとstrcpyの話を繰り返している奴ら。」

「そんなの知らなくてもプログラミングはできるでしょ」

という人もいると思います。

しかし「基本」を軽んじてはいけません。基本が大事、というのは「基本」が、すべての応用技の礎だからです。

 

特訓の後に彼は、関数ポインタ、構造体、共用体など、より高度な概念を3ヶ月もかからずにマスターしました。

図にして説明したことで、C言語の様々な概念を頭のなかでつなぎ合わせて「構造化」することができ、知識のマップを頭のなかに作ることができたからです。

 

問題解決能力の高い人と、そうでない人の本質的な差異

結局、問題解決能力の高い人と、そうでない人の本質的な差異は、様々な概念を「構造」として捉えることができるかどうかです。

 

そして、その能力を身につけるためには、普段から

・なぜなのか

・原理はなにか

・自分が「わかった気になっていること」はあるか

を注意深く考えながら仕事をしなければなりません。

 

この習慣こそ、働く人の力量を決める、決定的な要因なのです。

 

 

株式会社オリエンタルインフォーメイションサービス公式サイト

中途採用ページ

 

(Photo:I am just Dawn Marie)


【お知らせ】Books&Appsでは、企業の広報活動を支援するサービスを行っています。ご興味のある方はこちらからご連絡ください。