管理職なら知っておくべき「プログラミング的思考」の話

[最終更新日]2020/01/16

お役立ち情報
5
管理職が知っておくべき「プログラミング的思考」

2020年度より、小学校の学習指導要領が改訂され「プログラミング教育」が必修化されます。

グローバル社会を生きていく子どもたちは学校教育でプログラミングを習い、その知識を元に物事を考え、将来活躍していくことになります。

プログラミング必修化に伴い、よく耳にするようになった言葉の1つに「プログラミング的思考」があります。

教育分野においてこの考え方が重視されているのは、これからの時代を生きていく人材にとってプログラミング的思考が不可欠なものと考えられているからです。

そこで今回は、これからのビジネスにおいて知っておくべきプログラミング的思考について考えてみましょう。
管理職の人はぜひ知っておいていただきたい思考の1つになりますので、日常業務をはじめビジネスに活かしていただければ幸いです。



Index

目次

プログラミング的思考とは?なぜいま注目されているのか?

プログラミング的思考は、もともとコンピュータの分野において用いられてきた考え方であり、主にITエンジニアがプログラミングをする際に重視すべきものと考えられてきました。

しかし、ここに来てITエンジニアに限らず、どの業種のビジネスパーソンもプログラミング的思考を知るべきという考え方が台頭しています。

プログラミング的思考とはどのような考え方のことを言うのでしょうか。また、いま注目が集まっているのはなぜなのでしょうか。




プログラミング的思考の定義とは

文部科学省によれば、プログラミング的思考とは次のように定義づけられます。

「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」

つまり、プログラミング的思考の根底にあるのは論理的思考であり、プログラミングをする際に求められる課題解決に向けた思考法のことなのです。

プログラミングは、現実社会の中にあるさまざまな課題をプログラムによって解決へと導くことです。
このとき、やみくもにプログラムを書けばいいのではなく、次のような視点が必要になります。

何が問題なのかその問題はどのような要素からできているかそれを解決するのにどんなプロセスが必要か解決するために具体的に何をすべきか本当に解決できるのか
  • 何が問題なのか
  • その問題はどのような要素からできているのか
  • 1つ1つの要素を解決するにはどんなプロセスが必要か
  • 解決するために具体的に何をすればいいのか
  • 本当に解決できているのか

このように、問題の本質を見抜き、解決へと導くための具体的な方法を考えるプロセスは、ITエンジニアだけでなくあらゆる業種の仕事で応用可能なのです。




プログラミング的思考が注目されている理由

近年、産業構造が大きく変化しており、その変化のスピードも過去とは比べものにならないほど速くなっています。

従来のように「与えられた仕事をこなす」「指示された通りの手順で作業する」という考え方では、この劇的な変化に対応できなくなりつつあります。

たとえば、わずか20年前まで銀行はあらゆる産業のお金の流れを支える一大産業でした。
メガバンクはもちろんのこと、都市銀行など多くの銀行は「決して潰れない」と言われ、就職先の人気ランキングにも必ず挙がっていたものです。

ところが近年、FinTechの台頭によって銀行の地位は危ういものになりつつあります。

お金を預ける・借りる・投資するといった、銀行が担ってきたほとんどの役割はスマートフォン1つで代替できるようになっており、銀行員に与えられてきた役割をただこなすだけでは将来的に職業として成立しなくなる可能性さえあります。

産業構造の劇的な変化は、物事の本質を見極め、先入観なく物事を判断する力をあらゆるビジネスパーソンに求めるようになっていきます。

このとき必要とされるのが論理的思考であり、論理的思考を養う上で有効とされる方法の1つにプログラミング的思考の養成があるのです。




学校教育においてもプログラミング的思考は重視されていく

こうした世の中の変化を受け、文部科学省は2020年度より小学校で実際する授業において、プログラミングを必修化することにしています。

これにより、学校現場において主に算数や理科といった科目でプログラミングを用いた思考のトレーニングを行うことになります。

参考:小学4年理科におけるプログラミング的思考の例(大日本図書HPより)

プログラミング教育の例

画像引用元:プログラミング教育への配慮|令和2年版 小学校理科 内容解説資料|大日本図書

上の図は、教科書会社のHPに掲載されているプログラミング教育の一例です。

暖房器具が室温を感知してスイッチのオン・オフを切り替える仕組みには、プログラミングが用いられていることに気づかせるよう促しています。

これからの時代、私たちはプログラムによって制御された製品に囲まれて生活することになると言われています。今の子どもたちが将来大人になる頃には、プログラミングは教養の1つとして「当然知っているべきもの」となっているかもしれません。

現在の小学生が社会に出て働くまであと十余年。管理職として今後のキャリアを考えるとき、こうしたプログラミング的思考をごく当たり前の教養として身につけた若い人材と同じ土俵で働いていかなくてはなりません。

今後の人材育成を考える上でも、管理職がプログラミング的思考を知っておくことは重要なのです。

プログラミング的思考において重要な4つの要素

プログラミング的思考に重要な4要素分解抽象化一般化組合せ

プログラミング的思考が有効なのは、コンピュータ・プログラムを構築する場合だけに留まりません。
一般的なビジネスの世界においても、根本的な仕事の目的は課題解決にあります。社会におけるさまざまな問題や課題を見出し、どう解決するかを考えるのが仕事の本質と言ってもいいでしょう。

そこで、ビジネスにおいても役立つプログラミング的思考として、とくに次の4つの要素について確認しておきましょう。

これらはプログラマがコードを書く際に意識されていることですが、ビジネスパーソンが仕事における課題解決をする場合にも応用可能な考え方です。




分解

社会における課題は複雑なものが大半を占めています。問題全体をすぐに解決できないことも多く、まずは解決可能な小さな単位に問題を切り分け、優先順位を付けた上で解決に向けて着手していく必要があります。

このとき必要とされるのが、問題を「分解」するという考え方です。

たとえば、主力商品の売上が伸び悩んでいるという課題に直面している場合、単に「売上全体をもっと伸ばさなくてはいけない」という目標を掲げたのでは、具体的に何をどうすれば売上が回復するのか見えてきません。

そこで、どの年齢層の顧客において売上が低迷しているのか、レスポンスが芳しくない広告媒体はどれであるか、逆に堅調な売上をキープしているのはどの販売チャネルであるのか、といったように問題を切り分けていきます。

そして、どの部分が解決しやすいのか優先順位を付け、実際に改善策を施した上で検証を重ねていきます。

このように、問題を分解することで解決策が見えやすくなるだけでなく、うまくいった場合といかなかった場合の総括もしやすくなり、次のアクションを見定めやすくなる効果が期待できます。




抽象化

課題解決に向けて必要な性質だけを取り出し、その他の副次的な要素を削ぎ落としていくことによって、問題点をより明確にしていきます。

このプロセスが「抽象化」です。物事の原則や全体的な傾向を見出し、大きな流れをつかむ上で重要となる考え方です。

先の例で言えば、「商品を買っているのは主に30代男性だが、中には60代以上の購入者もいる」という状況だったとします。

60代以上の購入者の人数や購入頻度、顧客単価などを総合的に判断した結果、主力となる30代男性の売上規模と比べて市場規模が小さいという法則を見出だすことができれば、今後注力していくべきは60代以上の層ではないことが見えてくるのです。

抽象化する能力は、とくに管理職に必要とされる力の1つです。マネージャーには日々多くの問題が突きつけられますが、その全てに等しく対応していると部下の一挙手一投足を指導しなくてはならなくなり、マイクロマネジメントに陥ってしまう恐れがあります。

部署や部門全体が抱えている問題を抽象化し、フィルタリングを行うことによって、より高次の解決策を見定めることへとつながるのです。




一般化

物事は一見すると異なるものでも共通点があったり、類似性を見出せたりすることがあります。

そういった有機的なつながりを見出して一般化することによって、今後の動きを予想しやすくなったり、問題をより汎用化して解決することができたりします。

たとえば、10代・20代をメインターゲットとする商品を企画する場合、その年代のユーザーが日頃使っている商品を分析することが重要です。

近年、スマートフォンの普及によってさまざまなサービスを手のひらの中で扱うことができるようになっています。

商品はより小型に、軽量に、手軽になっていると言えます。

そのため、もし物理的に大型で重量のある商品を投入したとすれば、若いユーザー層からは好まれない可能性が高いことが見えてきます。よって、「より小さく、軽く、扱いやすいサイズ感のものにするべきだ」という方向性が導かれるのです。

物事を一般化した結果、順序や繰り返し、条件分岐といったパターンを見出せる場合があります。プログラミングにおいてはこれをアルゴリズムとして具現化していくわけですが、こうした考え方はビジネスにおいても応用可能なものと言えます。




組合せ

プログラムは単純な順序や繰り返し、条件分岐の積み重ねによって成り立っています。

1つ1つの処理はごくシンプルなものですが、それらを組み合わせていくことの積み重ねによって複雑な処理を可能にしているのです。

私たちが日常で使っているPCも、もともとはスイッチのオン・オフを切り替えることで電気信号を「0」「1」のいずれかで判断しています。この極めて単純なパターンが折り重なって、複雑なOSやソフトウェアを実現することができているのです。

ビジネスの現場においても、これまで聞いたこともないような真新しい解決策というものはほとんど存在しません。

しかし、既存のアイデアを組み合わせ、これまでにないつながりを見出だすことによって、困難と思われた課題に対するソリューションが見つかることがあります。

スマートフォンが開発された当時、日本の技術者はその仕組みがあまりに簡単で、ありふれた技術でしかないことに驚嘆したと言います。

微弱な電気信号の変化を画面操作に用いるタッチスクリーンの仕組みそのものは、決して新規性の高いものではありませんでした。

ところが、それを携帯電話に応用して物理ボタンを廃止するという組み合わせは、これまで誰も考えつかなかった全く新しいアイデアだったのです。

ビジネスパーソンがプログラミング的思考を知る意義とは?

ここまで、プログラミング的思考の概要とその応用例について見てきました。
いくつかの事例ですでに触れてきましたが、改めて管理職をはじめとするビジネスパーソンがプログラミング的思考を知る意義について確認しておきましょう。

繰り返しになりますが、プログラミング的思考はプログラムを書くITエンジニアだけが知っておくべきものではなく、一般的なビジネスパーソンであれば業界や職種に関わらず、誰しもが知っておくべき論理的思考の1つです。

プログラミング的思考を知ることによって、とくに次の3つの思考を伸ばすことに役立ちます。

型通りの仕事から自分で考える仕事へ課題を見つけ、解決する力産業構造の変化への適応
  • 型どおりの作業をこなす仕事から自らの頭で考える仕事へとシフトできる
  • 自ら課題を見つけ出し、試行錯誤を繰り返して解決する力を伸ばせる
  • 第4次産業革命に代表される産業構造の変化に適応しやすくなる

それぞれ、順を追って見ていきましょう。




型どおりの作業をこなす仕事から自らの頭で考える仕事へとシフトできる

プログラミング的思考では、目の前にある問題をどのように切り分け、1つ1つの問題をどう解決していくべきかを論理的に考えていきます。

与えられた課題を手順通りに解決していくのではなく、自らの頭で考え、解決策を見出していくプロセスそのものと言えます。

この思考法は、ビジネスにおいて型どおりの作業をこなすのではなく、定型化・言語化されていない曖昧な問題を自ら頭を使って整理し、解決策を見出だすことと同義です。

部下の育成においても、会社として、あるいは部署として、育成に対する目標や一定のロードマップが存在するケースがあるかもしれません。

しかし、その目標やロードマップは万人に適用できるものではないはずです。
実際にはさまざまなタイプの部下がおり、1人1人が抱える課題や成長のための方策も千差万別です。

その人にとって必要な解決策は何であるのか、本質的な部分から考えて解決策を考えるには、型どおりの人材育成をしていたのでは追いつきません。

プログラミング的思考で得られる論理的思考は、このように人材育成においても活かすことができるのです。




自ら課題を見つけ出し、試行錯誤を繰り返して解決する力を伸ばせる

どのような仕事においても、最初からうまくいくことはほとんどありません。失敗を重ねながら、いかに早く最適な解決策を見つけ出すかがカギを握っていると言えるでしょう。

プログラミング的思考において、この「試行錯誤して課題解決策を探る」というプロセスは非常に重要な位置を占めています。

仮説に基づいてプログラムを組み、実際に動かしてみて検証を重ねながら、より最適な動作となるよう試行錯誤を重ねていくのです。

試行錯誤と検証は切っても切り離せない関係にあります。検証によって新たに発見された課題を解決することを繰り返す中で、解決策としての精度が高まっていくのです。

ビジネスの世界ではよくPDCAという言葉が使われます。
P(計画)に力を入れる人が多い反面、C(総括)が弱くなっているケースは少なくありません。

これは、小さなゴールを設定して試行錯誤を繰り返し、失敗を重ねながら軌道修正していくというサイクルを回すことができていないためです。

プログラミング的思考は、まさにこの「検証→軌道修正」というサイクルを高速で回していくことによって、課題解決へとより早く到達することに役立つ考え方と言えます。




第4次産業革命に代表される産業構造の変化に適応しやすくなる

AIやIoTといった新技術に代表される産業は、第4次産業革命と呼ばれることがあります。

これまでも機械化や工業化、大量生産によって産業構造が変化してきたことはありましたが、第4次産業革命においては機械自らが膨大なデータを吸収し、学習を重ねることで進化していくのが大きな特徴です。

技術がアップデートされる頻度はさらに高くなり、一度習得した技術が何年、何十年と活かせる時代ではなくなっていきます。

かつてのように、資格を取得するなどして得た知識や技能が、長らく有効なものとして活用できる時代ではなくなっているのです。

プログラミング的思考は、特定のプログラミング言語や技術に拘束を受けるものではありません。

物事を一般化・抽象化・概念化して本質を見抜いていく力は、より汎用性の高い普遍的な視点を得る上で役立ちます。たとえ時代が変わり全く新しい技術が登場したとしても、その技術によって解決可能な課題のタイプや深度を論理的に捉え、人間でなくては解決できない課題へとフォーカスすることができるはずです。

プログラミング的思考について注意しておきたいミスリード

プログラミング的思考は、ITエンジニアなど一部の職種を担う人だけが活かせる狭義のスキルではありません。
しかしながら、「プログラミング」という名称のためか、しばしばその目的や活用方法が誤解されがちであるのも事実です。

そこで、最後にプログラミング的思考を考える上で注意しておきたいミスリードについてまとめます。
プログラミング的思考を狭い範囲で捉えてしまうことなく、あらゆるビジネスパーソンに関わる汎用的な考え方であることを念頭に置くことが大切です。




ITエンジニアにとってのみ必要とされる特別なスキル・技能ではない

「自分はプログラミングをしないから、プログラミング的思考は必要としていない」といった誤解をする人は少なくありません。

たしかに、プログラムを実際に書いてアプリやサービスを構築する作業をすることは、多くのビジネスパーソンが遭遇することのない場面かもしれません。

しかし、私たちの社会においては今後、加速度的に機械化・自動化が進んでいきます。
商品企画や消費者の動向、商品の提供方法、データの管理方法など、あらゆる仕事に携わる上でテクノロジーと無縁でいることはできなくなるはずです。

ごく普通に日常生活を送っていても、身のまわりはプログラムで制御された製品で囲まれることになりますので、それらがどのような仕組みで動いているのか、全く理解できない状態で生きていくのは困難になるはずです。

これからの時代、ビジネスに携わっていく上で、プログラミング的思考は一種の教養のような位置づけになっていくでしょう。

ITエンジニアなど、限られた職種の人にとってのみ必要な考え方ではなくなっていく可能性が非常に高いと言えます。




暗記したり習得したりすること自体が目的ではない

私たちは、「知識を覚え、答案用紙に再現する」ことを長らく「勉強」と捉えてきました。

そのため、プログラミング的思考が今後重要になると聞くと、つい「新しい知識を覚えなくてはならない」「スキルを習得する必要がある」といった捉え方をしがちです。

しかし、プログラミング的思考は暗記したり習得したりすることを目的としているのではなく、根本的な思考のプロセスや考え方のパターンを広げることを目的としています。

場合によっては実際にアルゴリズムを考えることでトレーニングしたり、初歩的なプログラム言語やScratchのようなビジュアルプログラミングに触れたりする機会があるかもしれません。

ただし、これらはプログラミング的思考を体験するための手段の1つとして引き合いに出されているに過ぎず、言語やプログラムの組み方そのものを覚えることが目的ではないのです。

プログラミング的思考に触れるにあたって、「覚えなくてはならない」「習得が必要だ」といった固定観念を持たないようにすることが大切です。




PCを使わなければ習得できない思考方法ではない

プログラミングと聞くと、どうしても「PCに向かってコードを入力する」姿を連想しがちです。

もちろんITエンジニアがプログラムを組むのであれば、PCを使ってコードを書いていく必要があるわけですが、プログラミング的思考に触れるにあたっては、必ずしもPCを使ってコードを書く必要はありません。

先に紹介した「プログラミング的思考において重要な4つの要素」では、ビジネスでプログラミング的思考を応用した事例をいくつか挙げました。

これらはあくまで「思考」の話であり、PCを使う・使わないということは問題の主眼ではありません。プログラミング的思考はプログラムを構築する際にベースとなる考え方、思考のプロセスのことを指していますので、プログラムを書くことに限らず、さまざまなことに応用可能なのです。

よって、PCなどデジタルガジェットを扱うことがあまり得意でない人でも、プログラミング的思考に触れ、その考え方を自分のものにしていくことは可能です。

PCを使わなければ習得できない、といった考え方にこだわらないことが重要です。

まとめ)「教養」としてのプログラミング的思考を身につけよう

第4次産業革命に象徴される産業構造の変化は、これまで私たちが経験してきたどの変化よりも大きな規模・度合いの変化になると言われています。

ビジネスにおいても、既存の発想や思考パターンでは対処できなくなっていく問題が今後いくらでも出てくる可能性が高いと言えるでしょう。

管理職として活躍中の皆さんにとって、これからの大きな変化の波を乗り越えていくためには、より本質的に物事を考える能力が求められます。

プログラミング的思考は資格や検定といった類の知識・スキルとは趣を異にしていますが、今後のビジネスシーンにおいて不可欠となる重要な思考様式であることに間違いはないはずです。

ぜひ「教養」としてのプログラミング的思考に触れ、仕事に応用していく糸口を見つけていただきたいです。




おすすめ記事

特集・管理職がキャリアに行き詰まったら

こんなお悩みはありませんか?

  • 今のままキャリアを積んで行くべきか迷っている
  • もっと活躍できる場所がある気がする
  • 転職するか、今の会社に留まるかどうするべき?

満足できるキャリアパスを見つけるためのヒントをご紹介します。

>> 詳しく見る