
IT業界にこれから入ろうとしている人は、プログラムの勉強や設計モデルの勉強をされていると思います。
20年近く色々なプロジェクトに参加していた自分としては、一番システムエンジニアに必要なスキルは問題解決スキルだと考えています。
もちろん、プログラムや設計のスキルは大事ですし、その他色々な大切なスキルは言い出したら切りが無いのですが。
IT業界に入る新人向けのセミナーや教育で、この問題解決スキルを軽視してプログラムや設計論を優先して伝えても不十分だと思いますので、今回はこの問題解決スキルの重要性を記載したいと思います。
なぜ問題解決スキルが重要か
システムエンジニアになると様々なプロジェクトに携わることになりますが、その中で仕事は大きく2つに分類されると思います。
1.プロセスが明確になっているタスク
2.プロセスが不明確なタスク
「1.プロセスが明確になっているタスク」は例えば本番環境のマシンにデータを更新する際に手順書があり、手順書通りに作業を遂行する。とか、設計書に細かくプログラムの定義があり、その設計書通りにプログラムを組むといったタスクを指します。
「2.プロセスが不明確なタスク」は例えばプログラムを組んでいてコンパイルしたら今までに発生していないエラーが出力されたので調査する。とか、相手に情報を説明する上での資料を作成する。などのタスクを指します。

「1.プロセスが明確になっているタスク」と「2.プロセスが不明確なタスク」の一番大きな違いは「1.プロセスが明確になっているタスク」は時間が測れる(誰が行っても発生する作業時間に大きな差異がない)が、「2.プロセスが不明確なタスク」は時間が測りにくい(取り組む人によって作業時間が大きくブレる)という点が大きくことなります。
この「2.プロセスが不明確なタスク」に関わる時はとても用心が必要で、何故ならタスクを遂行するプロセスが自分自身の判断や力量により、想定より大幅に時間を要してしまったり、もっと辛いケースだと終わりきれないという事もあり得ます。

「時は金なり」という言葉の通り、ほとんどのプロジェクトは時間に対してお金が発生しています。タスクを依頼する方はタスクの消化に必要以上に時間が掛かるとその分が余計な出費となってしまいます。
では「2.プロセスが不明確なタスク」の生産性を高めるのに何が必要かと言うと、問題解決スキルが役立つことが多いです。
その為、システムエンジニアが学ぶスキルとして問題解決スキルが大切だと考えています。
問題解決スキルを向上させるには
心構えが大切
具体的に問題解決のスキルはどのように向上させるかというと、本を読むのも良いですが、実際にプロジェクトに参画した時の心構えとして、自分で問題を解決していこうという意識で取り組むことが大切だと思います。その様な心構えでプロジェクトに向き合えば、問題解決をする場面が増えるので自ずと問題解決のスキルは向上していきます。

これは、責任を自分自身で全て背負わなければいけないという、責任丸投げの話ではないです。困ったら上司に相談するのは当然必要だと思います。ただ、プロジェクトで発生する色々な問題や課題を自分以外の人が解決した時(または解決してくれた時)に、自分だったら解決出来るのかという意識を持っている方がスキルは身につくと思います。
3つのメソッドを活用する
問題解決をするときに3つのメソッドを使うことを意識します。これは具体的な道具ではなく思考の中で存在するメソッドです。
今回はそのメソッドを簡単な概要だけ紹介します。詳細には別機会で説明出来たらと思います。
1.切り分ける
大体のシステムは規模が大きく、複数のプログラムやミドルウェアにより構成されています。その中で問題の原因の範囲を絞ることはとても重要です。原因の範囲を切り分けることで問題解決の早さが大きく変わっていきます。
2.問いかける
多分問題が発生して自分自身で解決する場合に、黙々と原因を調べることになると思います。調査の時間が長くなるほど自分自身がどこまで理解が進んでいて、何が見えていないのか頭の中が混沌としてきます。その頭を整理するために、常に自分自身に問いかけをしながら頭の整理をしていくことが大切です。
3.裏付ける
問題を解決する上で様々な予測や推測のもと調査や検討が行われますが、裏付けのステップを外すと、予測を根底から覆されてしまうケースが発生します。その時に大幅な時間と労力を無駄にしてしまうので、それを防ぐために随時に裏付けを取り事実を明確にしながら進めていきます。
以上
いかがでしたでしょうか。
問題解決のスキルを向上することは、システムエンジニアの生産性を高める大切なスキルです。
自分が若手社員を研修でこの問題解決のスキルと向上方法を説明した時には、精神論的な心構えとテクニックを日にちを分けて説明していました。それほど大切なスキルだと思っています。
これからIT業界に入る未来のシステムエンジニア皆さまの参考になれば幸いです。