問題解決能力を鍛えるために意識しておきたいこと
僕は昨年の10月から、国内にあるプログラミング教室でインターンをしていた。取り組んだ業務として一番多かったのは「QA対応」である。生徒さんが、カリキュラムを進める上で疑問が発生した場合に、その解決の手助けをする業務である。
元々は「技術力を上げたい!」という理由でインターンを志望した。しかし、約8ヶ月間の勤務を終えて見て思うのは、一番身についた能力は「問題解決能力」であるということだ。本記事では僕がプログラミング教室で使っていた思考のプロセスを追従しながら、どの分野にも応用できる「問題解決能力」について解説していく。
そもそも問題解決能力とは?
問題解決能力とは、「理想を達成するために必要な能力」である。ここで必要になるのは「理想」である。「こういう風にしたい!」という願望をどう叶えていくか、その願望を叶える力が問題解決能力である。それでは、以下から、QA対応をする際の思考のプロセスを追っていく。最後に問題解決思考についてまとめる。
一旦バグを確認する
最初にすることは「一旦」バグの確認をすることである。QA業務ではエラーの画面を生徒さんが示し、「ここがわかりません」という質問をされる方が多い。そのバグを一旦確認し、「あーこの辺でつまづいてるんだろうな」という仮説を立てる。
理想を確認すること
次に理想、すなわち実現したい状態を確認する。プログラミング教室のQA業務では、生徒さんから「ここのバグがどうしても治らなくて...」という風に質問を受けることが多々あるのだが、ここですぐにバグ解決に取り組むのはナンセンスである。最初にしないといけないのは、生徒さんがこのバグを解決することによってどういう状態を実現したいのかを確認することだ。これを確認することによって、QAの全体像が捉えることができ、解説もしやすくなる。
現状を捉えること
次に、現状を捉えることである。生徒さんが当該バグを解決するにあたって、自身でどのような施策を打ったのかを確認する。ここで、生徒さんの理想実現に対する着眼点が正しいのかなどを確かめる。
ギャップを埋める
広い視点で考える
バグ、理想、現状が出揃った。次にする作業は現状と理想の間のギャップを埋める作業である。QA対応でいうと、基本的にギャップは「バグ」になるのだが、上記のように現状から理想になぜいけないのかという考え方をすると、より広い視点から物事を見ることが可能になる。これは後に解説をする際に役に立つ。
バグの原因は何か突き止める
ギャップを埋めるためにはバグを解決しなければいけない。次にやることはバグの原因を特定することである。ここで先ほど立てた仮説をもとに、バグが発生していると思われる箇所を逐一確認していく。これがいわゆる検証の作業である。業務に慣れてくると、仮説が結構な確率で当たるようになるので、ここの解決の時間は経験的にどんどん短くなっていく。
バグを解決する。
バグを解決して、現状から理想の状態に持っていく。これではれて問題解決完了である。ここで意識して欲しいことは、バグを解決するまでにどれくらいの工程を経たか、である。プロセスを頭の中で意識しておくと自分の中で整理がしやすく、また他人にも順序立てて説明することが可能になる。
生徒さんに解説をする
プログラミング教室では問題を解決するだけではなく、そのプロセスを生徒さんに説明しなければいけない。ここで難しいのは「どこまで解説をするのか」ということだ。これは主に、生徒さんのその時点でのレベル、バグの難易度を基準に決めなければいけないが、主に前者に応じて決めることが多い。例えば生徒さんが、すでにある程度の知識を保有している場合であれば、あまり教えずにヒントだけ与える(問題構造の大枠は解説してあげる)。
基本的には実際にQAをする際には、上記「バグを解決する」プロセスは、解決を生徒さんの力に一任するか、もしくは、問答式的に生徒さんと一緒に解決を目指すことが多い。生徒さんのレベル、バグのレベルに合わせて、自分の思考プロセスをどこまで解説するのかを決める。
問題解決能力はどの分野にも適用できる
さて、今までQA対応の際に思考プロセスを追ってきたが、このプロセスを抽象化すればどの分野にも適用可能になる。「理想」を捉え「現状」を確認し、その「ギャップ」を埋める。ギャップを埋める際には「仮説→検証」のプロセスを繰り返し実施する。このプロセスの汎用性は高い。日常生活にも仕事にも使える考え方なのでぜひ試してみてほしい。
この記事が気に入ったらサポートをしてみませんか?