今日は。オリエンタルインフォーメイションサービス、グループリーダーの川島です。
液晶ディスプレイパネル、デバイスドライバなどの開発を手がけています。
さて、リーダーをやっていると、部下の「問題解決能力」について考えなければならないシーンが数多くあります。
そして、この「問題解決能力」は、鍛えるのが非常に難しい能力です。
一体、問題解決能力の高い人と、そうでない人の本質的な差異はどこにあるのでしょう。
それは「問題の構造化」を扱う能力の有無です。
簡単に言えば、ある事柄を「大・中・小の項目に分類して捉える能力」とでも言えばいいでしょうか。
例えば、「ヒトは、哺乳綱の、霊長目の、ヒト科の一種です」というように、ある事物を階層構造で捉える能力です。
問題を構造化できないと、
「何が問題なのかわからない」
「調べられない」
「聞けない」
の三重苦に陥ります。
マニュアルが読めない
例えば、「構造化できない」技術者の顕著な例が
「マニュアルを詳しく読むのが嫌い」
「目的のものをマニュアルから探せない」
という人です。
少し前にも、
「工夫しているんですが、どうしても仕様が満たせない」
と相談してくる若手がいました。
かなり困っているので、とりあえず私がマニュアルを調べてみました。
すると、デバイスへの書き込みに、遅いやり方をつかっている。
「マニュアルにそのまま解決策が書いてあるじゃない」
といったら、
「探せませんでした」
と返ってくる。
彼は、自分の抱えている課題が、マニュアルのどこに書かれているかを推定できなかったのです。
つまり、
・自分の抱えている課題は、大枠でとらえると、◯◯という項目の中のはずだ。
・◯◯の項目は、◯◯という機能の章に含まれているのではないか。
・では、自分の求めている事柄は、マニュアルのこのあたりに書いてあるはずだ。
というを類推を働かせることができなかったのです。
「作業の目的」を忘れてしまう
こんなこともありました。
新製品に、旧製品のプログラムを流用した時がありました。
でも、テストしてみると正常に動作しない。
そこで、一人の若手に
「ソースコードを読んで、新製品へ流用するためにはどこを修正すべきか、調べてくれ。」
と依頼しました。
何日か経って、
「調べました」と彼が言ってきたので、アウトプットを見せてもらうと、
「旧製品の仕様」は相当調べたのですが、ソースコードを調べることに注意が向き過ぎていて「新製品への流用をどうすればよいか」については調べて来ていない。
彼は、「作業の目的」を忘れてしまっていました。
これも、問題を構造化できていないことの現れです。
自分がやっている作業が、プロジェクト全体のどこに位置しているのかが見えないので、
「とりあえず自分が今やっていること」
だけにフォーカスが行ってしまい、それ以外のことは忘れてしまうのです。
残念ながら、こんなことを繰り返していたら、一生「ただの作業者」で終わってしまいます。
「問題の構造化」ができた瞬間に大きく成長した新人
逆に、問題を構造化することによって、一瞬で大きな成長をする人もいます。
例えば、過去に「入社してからかなり経過したけれども、実はポインタ(注:C言語習得の鬼門と言われる概念)が全くわからない」という告白をした新人がいました。
そこで、我々は彼に、頭のなかで考えていることを、ホワイトボードに書いて説明させたところ、彼は教科書で習った定義をそのまま、言葉で復唱するにとどまりました。
それは「理解」ではなく、「暗記」にとどまっているということの証です。
つまり、知識を構造化できていない。
そこで、私は彼に特訓を施すことにしました。
「strcpy」というごく基本的な関数の原理を、完全に説明できるまで、何度も何度も、繰り返し例題を出して練習させたのです。
そこでは、プログラムの原理に係る質問を繰り返し彼に問いました。
「Aという文字が、なぜAと表示されるのか」
「−は、なぜマイナスなのか。」
「コンピュータは基本的に足し算しかできない、なぜ引き算できるか」
「関数を呼び出して、リターンしたら、なぜ同じ場所に戻ってくれるのか。」
いずれも、「図にして構造化し、説明できる」まで、徹底的にやりました。
もしかしたら 傍から見ると、
「ずっとstrcpyの話を繰り返している奴ら。」
「そんなの知らなくてもプログラミングはできるでしょ」
という人もいると思います。
しかし「基本」を軽んじてはいけません。基本が大事、というのは「基本」が、すべての応用技の礎だからです。
特訓の後に彼は、関数ポインタ、構造体、共用体など、より高度な概念を3ヶ月もかからずにマスターしました。
図にして説明したことで、C言語の様々な概念を頭のなかでつなぎ合わせて「構造化」することができ、知識のマップを頭のなかに作ることができたからです。
問題解決能力の高い人と、そうでない人の本質的な差異
結局、問題解決能力の高い人と、そうでない人の本質的な差異は、様々な概念を「構造」として捉えることができるかどうかです。
そして、その能力を身につけるためには、普段から
・なぜなのか
・原理はなにか
・自分が「わかった気になっていること」はあるか
を注意深く考えながら仕事をしなければなりません。
この習慣こそ、働く人の力量を決める、決定的な要因なのです。
(Photo:I am just Dawn Marie)
【お知らせ】Books&Appsでは、企業の広報活動を支援するサービスを行っています。ご興味のある方はこちらからご連絡ください。