ITエンジニアの市場価値を高める特徴の1つとして、論理的思考があります。ITエンジニアなら誰でも論理的思考力は持っていると思われる方も多いかもしれません。
しかし、システム開発で論理的思考を行っていても、それを普段から活用できているITエンジニアは案外少ないです。本稿では、論理的思考を獲得するにはどうすればいいのか、論理的思考の概要をご紹介します。
Contents
小学校のプログラミング教育が導入される理由は?
2020年に小学校でプログラミング教育が必修化されました。しかし、これはプログラミングを学ぶことによって今後IT企業への就職を誘引するのではなく、順序立てて考えたり、試行錯誤したり、物事を解決するための力、つまり論理的思考力を身につけることです。
現在、AIの進化や生活のデジタル化などが進み、VUCA(※)ともいわれ10年先も見えないと言われています。このような時代の中で、今後子供にコンピューターに対して受け身でなく積極的に活用するための論理的思考力が求められているという結論から小学校への導入が決まりました。
※VUCA: Volatility(変動性)・Uncertainty(不確実性)・Complexity(複雑性)・Ambiguity(曖昧性)の頭文字で「ブーカ」と読む。意味は「将来の予測が困難な状態」のこと。
なぜITエンジニアに論理的思考が求められているのか?
このように小学生にも求められ始めている論理思考力ですが、なぜITエンジニアにとって欠かせないといわれているのでしょうか。
システム仕様や設計の検討
システムや設計を考える際に、クライアントからの要望にただ答えているだけではコストが膨らんでしまうことを防げず、性能の面でも最適なものにならない可能性があります。そこで必要になるのが論理的思考です。クライアントの要望を細かく分解し、それぞれに対して複数なアプローチを検討し最適なものを選択し、要望に過不足がないのかなどの検討を行います。
障害発生時の事象切り分けと対応
エンジニアの業務の1つに障害が発生した際の対応があります。障害はどのような障害がいつ、どこで、なぜ起きるのか最初は全く予想つかない事が多いです。そこで重要なのが、事象を構造化することです。障害の現状を見つめ、なぜ今障害が起きているのか原因のパターンを検討しながら、原因を絞り込んでいきます。このように障害発生時の対応にも論理的思考力が重要です。
再発防止策の策定
障害が起きることは避けられません。しかし、重要なのはその障害を2度と起きないようにするための再発防止策を検討することです。再発防止は思いつきでの対策ではいけません。なぜ障害があったのかを把握し、どのようなプロセスを踏めばいいのかなどを細かく分解した上で適した対応をまとめる必要があります。このようにシステム開発だけでなく、再発防止策の検討などにも論理思考力が欠かせません。
論理的思考力を得るには?
それでは、論理的思考力を手に入れるためにはどうすればよいのかご紹介します。
日々の業務の中で鍛える
ご紹介したように、ITエンジニアの業務では論理的思考力が常に求められています。しかし、大半のエンジニアはシステム開発のスキルや考え方には力を入れていますが、思考力そのものを意識している人は少ないのが現状です。ITエンジニアが日々のシステム開発で活用している論理的思考力を意識することで、どのような思考プロセスを踏んでいるのかなどを取得することができます。このように日々の業務で利用している思考をアウトプットすることにより、ITエンジニアは論理的思考力を鍛えることができます。
論理的思考の基礎「構造化」
それでは、ITエンジニアが身につけておくべき論理的思考の基礎をご紹介します。論理的思考の1つの方法として「構造化」というものがあります。構造化とは、様々な情報を重要度や意味によって分類、整理したり、全体と部分や原因など関係性を見出したりすることです。構造化を行なうための手法としては、大きくロジックツリー、マトリクスがあります。
ロジックツリー
ロジックツリーとは、あるテーマの要素や原因をツリー上に整理するものです。例えば、ある問題の要素を深堀りする際には、「なぜ?」ということを繰り返し記述していきます。それにより根本的な原因が明らかになります。ロジックツリーの活用で大きく成功して有名になったのがトヨタ自動車の「なぜを5回繰り返せ」という教訓です。「なぜ」を繰り返すことで自社の生産ラインの改善に繋げました。
ロジックツリーを実施する際のポイント
ロジックツリーを行なう際のポイントをご紹介します。
まず1つはMECEを意識することです。MECEとは、抜け漏れがない状態のことです。ロジックツリーを作成する際に抜け漏れがあると、原因の究明ができません。そのためロジックツリーの開始のタイミングで常にMECEの状態であるかを意識しましょう。しかし、ロジックツリーを進めていくうちでMECEの状態を保つことが難しくもなってくるため、開始のタイミングで意識することがおすすめです。
2つ目は、同じ階層内のレベルを統一することです。例えば、「入力フォームが送信できない」という障害があった場合、「顧客が誤った文字を入力した」というのと「サーバー容量が一杯」というのとでは動詞と名詞で終わる文章が混在しているため、後から読む人が混乱を来す可能性があります。このようなことを避けるためにも同じ階層内のレベル、記述は統一するようにしましょう。
マトリクス
マトリクスとは、縦横の軸を元に情報を整理する手法です。新しい手法と従来の手法を、スケジュール、クオリティー、ベンダーなどの横軸で比較することで最適な手法を理解することができます。マトリクスの特徴の1つは、相互の情報を比較するにどのような情報が欠けているのかがひと目で分かるということです。例えば、従来の手法のスケジュールの進め方に関しては把握しているけど新しい手法はわからない場合、比較するためにどのようなことを調べなくてはいけないかがはっきりします。2点目は、関係者間での意識のすり合わせができることです。関係者によりイメージが異なってしまった結果、話が合わないということなどがあるかと思います。そのような時はマトリクスを活用することで、手法や比較しなければいけない指標に関してどのように考えているのかを検討するきっかけになります。
まとめ
いかがでしたでしょうか。
学校教育で必修化されたこともあり、論理的思考力とプログラミングの関連性は非常に強いものです。
ですが、論理的思考力を本当の意味で習得して普段の思考として使えているエンジニアはあまり多くありません。論理的思考力はITエンジニアのシステム開発にも活用できるため、一度しっかりと学んでキャリアアップに活かすことをおすすめします。
そのためにも、まずは論理的思考の基礎を理解した上で、ITエンジニアの皆様は日々の業務で常に意識することからはじめてはいかがでしょうか。