仕事 基礎スキル

論理的思考(ロジカルシンキング)により結論を出す方法についてプログラマーが解説【問題解決方法】

2020年12月5日

考える人

  • 論理的思考でどのように問題の結論を出せるのだろう?
  • 最善の結論を出すためにはどうすればいいのだろう?

今回は、論理的思考(ロジカルシンキング)により結論を出す方法について解説します。

論理的思考(ロジカルシンキング)により結論を出す手順

論理的思考で結論を出したい場合は、導き出したい結論に関連するインプット情報(前提条件)を「AND(かつ)、OR(または)、NOT(〜ではない)」で組み合わせて、問題の答えや自分の主張を導き出すことが有効です。

論理的思考で結論を導き出す手順は次の通りです。

  1. 結論に関連するインプット情報を網羅的に見つけ出す
  2. インプット情報に優先順位をつける
  3. 表をベースに、インプット情報を列ごとに分ける
  4. 条件が成り立つ場合とそうでない場合(NOT)で分ける
  5. 分けた項目からそれぞれの結論を導き出す
  6. 結論を一つに絞る

順番に見ていきましょう。

①結論に関連するインプット情報を網羅的に見つけ出す

結論に関連するインプット情報を網羅的に見つけ出しましょう。

インプット情報とは、個別の事例や一般化されたルールや法則を指します。

そして、インプット情報は多ければ多いほど良いよいです。

なぜなら、情報が少ないとさまざまな側面からものごとを認識できないからです。

【納期が本日中の仕事が終わらない】

例として、自分が担当している納品物提出の仕事を本日中に終わらせなければならない場合を考えます。

この問題を解決するために必要な情報を洗い出すと次のようになります。

  1. 今日の定時までに自分一人で仕事が「終わる」or「終わらない」
  2. 5時間残業をすれば自分一人で仕事が「終わる」or「終わらない」
  3. 自分は今日5時間残業が「できる」or「できない」
  4. コスト(残業代など)は「使わないほうが良い」or「気にしない」
  5. 暇なメンバーに手伝ってもらえれば今日中に仕事が「終わる」or「終わらない」
  6. 手伝ってくれる暇なメンバーが「いる」or「いない」
  7. 仕事の緊急度が「高い」or「低い」

②インプット情報に優先順位をつける

次に、条件が成立すれば結論が確定する情報があるか確認します。

この情報は、他の情報よりも優先順位が高い重要な情報(OR条件)と言えます。

以下の例のように明らかに優先順位が高い情報が揃ったら、この段階で結論を導き出しましょう

【納期が本日中の仕事が終わらない】

たとえば、「A」の条件が成立(=「終わる」)したとします。

  1. 今日の定時までに自分一人で仕事が「終わる」

「A」の情報は、「B」〜「G」の情報よりも優先順位が高いです。

なぜなら、その仕事は元々自分が担当する計画であるため、計画通り自分一人で仕事を終わらせるべきだからです。

よって、「A」の条件が成立した時点で、結論は「本日定時までに自分一人で仕事を終わらせる」に決まります。

論理式で表すと、たとえば以下のような状態です。

  • IF((Aの条件成立) OR ((Bの条件成立) AND ・・・))
  • IF((Aの条件成立)   ∨  ((Bの条件成立)     ∧    ・・・))

なお、優先順位(関連性)が低い情報を元に論理的思考を組み立てるのはほとんど意味がないので、情報の取捨選択をする必要があります。

【納期が本日中の仕事が終わらない】

たとえば、”今日の天気は雨で「ある」or「ない」”という情報は、納品物提出という仕事に関連はないので無視して問題ないです。

一方、同じ天気の情報でも”台風がきて強制的に帰宅をする必要が「ある」or「ない」”はかなり優先順位が高い情報です。

台風で帰宅をする必要が「ある」場合の結論は「納期を1日延ばしてもらう」になります。

③表をベースに、インプット情報を列ごとに分ける

③表をベースに、インプット情報を列ごとに分けましょう。

【納期が本日中の仕事が終わらない】

No. インプット情報(前提条件) 論理的思考で導いた結論
仕事の緊急度 暇なメンバー
(1)
(2)
(3)
(4)

※その他のインプット情報は下記の前提としています。

  1. 今日の定時までに自分一人で仕事が「終わらない」
  2. 5時間残業をすれば自分一人で仕事が「終わる」
  3. 自分は今日5時間残業が「できる」
  4. コスト(残業代など)は「使わないほうが良い」
  5. 暇なメンバーに手伝ってもらえれば今日の定時中に仕事が「終わる」

④条件が成り立つ場合とそうでない場合(NOT)で分ける

インプット情報の条件が「成り立つ」or「成り立たない(NOT)」で場合分けをしていきます。

【納期が本日中の仕事が終わらない】

この例の場合、仕事の緊急度が「高い」or「高くない(低い)」、暇なメンバーが「いる」or「いない」で分けます。

No. インプット情報(前提条件) 論理的思考で導いた結論
仕事の緊急度 暇なメンバー
(1) 高い いない
(2) 高い いる
(3) 低い いない
(4) 低い いる

⑤分けた項目からそれぞれの結論を導き出す

この段階で、分けた項目のそれぞれの結論を導き出しましょう。

【納期が本日中の仕事が終わらない】

それぞれの結論を導き出します。

No. インプット情報(前提条件) 論理的思考で導いた結論
仕事の緊急度 暇なメンバー
(1) 高い いない 5時間残業をして自分一人で終わらせる。
(2) 高い いる 暇なメンバーに手伝ってもらう。
(3) 低い いない 納期を1日延ばしてもらう。
(4) 低い いる 納期を1日延ばしてもらう。
または、暇なメンバーに手伝ってもらう。

⑥結論を一つに絞る

項目ごとの結論が導き出せたら、どの結論にするか一つに絞りましょう。

【納期が本日中の仕事が終わらない】

No. インプット情報(前提条件) 論理的思考で導いた結論
仕事の緊急度 暇なメンバー
(1) 高い いない 5時間残業をして自分一人で終わらせる。
(2) 高い いる 暇なメンバーに手伝ってもらう。
(3) 低い いない 納期を1日延ばしてもらう。
(4) 低い いる 納期を1日延ばしてもらう。
または、暇なメンバーに手伝ってもらう。

この場合、次の確認が終われば結論が出ます。

  • 仕事の緊急度が高いかどうか納品先のお客様に確認
  • 暇なメンバーがいるか上司・プロジェクトリーダーに確認

なお、No.(4)のように、結論が2つ導き出せる場合は、どのインプット情報を優先とすべきか確認しましょう。

「D」のコスト(残業代など)は「使わないほうが良い」という前提条件が成立しているので、納期を1日延ばしてもらって一人で仕事を終わらせることが理想です。

しかし、お客様に「緊急度は低いけど、暇なメンバーがいるなら今日中に終わらせてほしい」と言われれば、結論は「暇なメンバーに手伝ってもらう」がよいかもしれません。

非論理的な結論とは

他によい選択肢があるのに悪い選択を選んだ場合は、非論理的な結論を導き出したと言えます。

そして、非論理的な結論は、「インプット情報の誤りや漏れ」や「人に言えない隠し事」などがある場合に導き出されます

【納期が本日中の仕事が終わらない】

No. インプット情報(前提条件) 論理的思考で導いた結論
仕事の緊急度 暇なメンバー
(1) 高い いない 5時間残業をして自分一人で終わらせる。
(2) 高い いる 暇なメンバーに手伝ってもらう。
(3) 低い いない 納期を1日延ばしてもらう。
(4) 低い いる 納期を1日延ばしてもらう。
または、暇なメンバーに手伝ってもらう。

たとえば、仕事の緊急度が「低い」のに「5時間残業をして自分一人で終わらせる」を結論とすることは非論理的です。

なぜなら、「D」のコスト(残業代など)は「使わないほうが良い」という前提条件が成立いるためです。

コストより儲けが大きくなるのなら別ですが、このような行動を続けていると会社は残業代をたくさん払わなければならず、経営成績に悪影響がでます。

非論理的な結論になるケースとしては、インプット情報に誤りや漏れがあるか、以下のように「人に言えない隠し事がある」などが挙げられます。

  • 残業代が「できるだけ欲しい」
  • 上司やお客様が怖すぎて納期延長などの提案が「できない」
  • 仕事を頑張っているアピールを「したい」

論理的思考で重要なポイント

論理的思考で重要なポイントは次のとおりです。

  • 知識・経験があればあるほどよい
  • インプット情報の優先順位を把握する
  • 効率的に優先順位の高い情報を収集する

知識・経験があればあるほどよい

論理的思考をする際、考える対象の分野について知識・経験があればあるほどよいです。

前述した通りですが、論理的思考のインプット情報が多ければ多いほどものごとをさまざまな側面から捉えられるためです。

インプット情報の優先順位を把握する

知識が必要とは言え、全く関係のない分野の知識をつけていても意味がありません。

次の例のように、考える対象の分野ごとに情報の優先順位が変わるので、優先順位が高い情報を中心に論理的思考を組み立てていくことが重要です。

優先順位の例

【100mを速く走りたい】

「脚力の身につけ方」>「腕力の身につけ方」

【腕相撲が強くなりたい】

「腕力の身につけ方」>「脚力の身につけ方」

【英語の教師になりたい】

「英語の知識」>「数学の知識」

【数学の教師になりたい】

「数学の知識」>「英語の知識」

【プログラマーになりたい】

「プログラミングの知識」>「IT業界全般の知識」>「日本史の知識」

【システムエンジニア・ITコンサルタントになりたい】

「IT業界全般の知識」>「プログラミングの知識」>「日本史の知識」

効率的に優先順位の高い情報を収集する

優先順位が高い情報を集めるコツは、本やネットの情報(二次情報)ではなく、体験(一次情報)から情報を仕入れることです。

以下の①〜④の内、番号が小さければ小さいほど、効率的に優先順位が高い情報を収集できます。

【プログラミングスキルを身につけたい】

  1. 仕事でプログラムを製作する
  2. 仕事で製作予定のプログラムを家で作ってみる
  3. 本やネットを参考にサンプルプログラムを作ってみる
  4. プログラミングの本を読む

【野球がうまくなりたい】

  1. 試合に出て投手が投げた球を打つ
  2. バッティングセンターで打つ
  3. 素振りをする
  4. 野球の本を読む

なぜなら、情報には流行り(ニーズ)・廃れがあるからです。

例:プログラマーとして必要な情報

以下の【主に現場で得られるスキル・情報】の方が、社会のニーズがある情報と言えます。

【主に本で得られるスキル・情報】

  • 要求分析手法(USDMなど)
  • さまざまなソフトウェア設計手法
  • さまざまなプログラミング言語の知識
  • プログラミングの基礎や細かなテクニック

【主に現場で得られるスキル・情報】

  • 周りを巻き込んでシステムの仕様を早く理解する方法
  • 他人(お客様など)が理解できるソフトウェア設計資料を早く作る方法
  • 流用性・保守性の高いソフトウェア設計パターン
  • お金にならないソフトウェア製作をとっとと終わらせるスキル
  • ユーザーの使いやすさを徹底的に意識したソフトウェア製作スキル
  • 他メンバーが理解しやすいコーディング作法

このため、手に入れた情報が本当に重要なのかという問題は、誰かが現場で答え合わせをしないと永遠に解決しません

本やネットでの情報量は膨大ですが、自分や社会が今まさに必要としている情報は手に入りにくいです。

ただし、その道を極めた(体験量が多い)メンターやインフルエンサーであれば、その方から情報収集するのは全然アリです。

なぜなら、メンターが優先度の高い情報を選んだ上で、情報発信をしてくれているはずだからです。

しかし、自分が実際に体験したことがなければ、すべて他人事のように聞こえるため、メンターが発する重要なメッセージを聞き流す可能性が高いのです。

情報が手に入らない場合は相談しよう

本当によい結論を出したい場合は、圧倒的な情報量が必要です。

しかし、一人だけで収集できる情報には限りがあります

ビジネス案の立案や投資先の決定など、結論を出すためにさまざまな分野の専門知識が必要となる場合は、有識者に質問や相談をして確認するべきです。

(COVID-19など)感染症が全国で急激に流行し、外出自粛・休業要請を出すべきか悩んでいる場合

それぞれの専門家から以下のような情報を収集し、それぞれの情報をインプットにして官僚・政治家が施策の結論を出す。

  • 感染症の専門家:感染拡大予測・感染防止対策
  • ワクチンの専門家:ワクチン安全性・接種手順
  • 微生物の専門家:感染源ウイルスの特性
  • 経済の専門家:経済対策・自粛による経済への影響
  • ヘルスケアの専門家:国民の心・健康のケア
  • 法律の専門家:企業に対する休業手当などの法律
  • 医師会:医療現場の状況
  • 社会調査の専門家:世論調査・世論の声
  • etc

有識者への質問や相談の仕方については、以下の記事で解説していますのでご確認ください。

コミュニケーション
ビジネスで要求されるコミュニケーション力について

ビジネスで要求されるコミュニケーション力について解説します。 本記事の内容は、6年半の間プログラマーとして働いてきた私が ...

続きを見る

論理的思考の種類について

上述した結論の導出方法については、以下の記事で紹介している一般的な論理的思考方法がベースとなっているので、あわせてご確認ください。

考える人
論理的思考(ロジカルシンキング)の種類について【演繹法・枚挙型帰納法・アナロジー・アブダクション】

論理的思考にはどのような種類があるのだろう? 今回は、論理的思考(ロジカルシンキング)の種類について解説します。 目次1 ...

続きを見る

まとめ

今回は、論理的思考により結論を出す方法について解説しました。

網羅的な知識・経験があればあるほど、よい論理的思考ができます。

また、忙しい仕事をしている時はゆっくり論理的に考える暇はないので、論理的に考えることを習慣化しておくことが重要です。

まずは、「AND(かつ)、OR(または)、NOT(〜ではない)」でインプット情報を組み合わせて結論を導き出すクセをつけておきましょう。

-仕事, 基礎スキル