元システムエンジニアが憂う『小学校プログラミング教育の必須化』本当に必要?

スポンサーリンク
おまけコーナー
スポンサーリンク

ところで、『Society5.0』という言葉を知っていますか?

文部科学省は、現代を「狩猟社会、農耕社会、工業社会、情報社会に続く、人類史上5番目」の段階であると定義しています。『Society5.0』の時代はロボットや自動運転などの支援で人間の可能性が広がる社会とかAIにより多くの情報を分析し面倒なことから解放される社会だと言っています。

そこで、小学校にもプログラミング教育を導入し、この『Society5.0』という社会に適応していこうという目論見なのだそうですが、長年システムエンジニアの仕事をしてきた私には情報化社会への対応としてのプログラミング教育必須化という手段には違和感を感じます。

なぜ、プログラミング教育必須化が、情報化社会あるいはその先の『Society5.0』への対応策としてそぐわないのかお話していきたいと思います。

『プログラミング』は誤解されている!システム化とコンピュータ化の違いとは?!

長年システムエンジニアの仕事をしてきた私が、『小学校でプログラミング教育を必須化する』と聞いて、一抹の不安を覚えました。

それは、昔も今も『一般の人たちは、いかにコンピュータをより適切、効果的に活用していく方法を知らないのか』という嘆きから来ているものです。

何も文部科学省の言っている『コンピュータはプログラミングで動いている(コンピュータの仕組みを知る)。コンピュータが「魔法の箱」でない』ということを一般の人は理解していないからではありません。

『システムエンジニア』ってどんな仕事をする人?

そもそも、システムエンジニアというのはどういう職業なのか正確に説明できる人は少ないと思います。

よく『システムエンジニアってパソコンに詳しいでしょ?』と訊かれますが、私自身パソコンの知識は普通だと思っています。プログラムを設計するときにパソコンを使用しますが、それは経理担当者がパソコンを使って会計処理をするのと同じです。

システムエンジニアといっても、専門化が進んでいる現在次のような技術者がいます。

  • アプリケーションエンジニア
  • ネットワーク技術者(セキュリティ管理者も含まれます)
  • データベース技術者
  • 半導体設計などハードウエアよりの技術者

私は、最も一般の人に理解されないアプリケーションエンジニアでした。アプリケーションエンジニアというのは、生産システム・販売システム・物流システム・会計システムなどの業務システムの要件をユーザー(システムの利用者)から聞いてプログラマーにプログラミングを依頼する技術者のことをさします。

多くの場合、プログラマーとしてプログラミング技術を学んだ人がシステムエンジニアになるのですが、プログラマーとシステムエンジニアの関係は建築の分野でいえば「大工さん」と「設計士」のような関係でしょうか。

ボタンひとつで有益なマーケティング情報が出てくるシステム?

私は大学で経済学を専攻していて、その関係で証券会社のシステム部門でプログラミングの仕事を始めたのこの世界に入るきっかけでした。その後、転職して日用品のメーカーのシステム部門で社内SE(システムエンジニア)として経理システムを担当していました。

その時に、マーケティング部門の担当者から『ボタンひとつで有益なマーケティング情報が出てくるシステムを作ってくれるとありがたいんだけどな』と言われました。私は、『それは、あなたが(マーケティング担当者)が作るものだよ』と言いたい気持ちをぐっと抑えてただ笑っていました。

とっさにこう言われてちょっと呆れてしまいましたが、と同時に一般の人はプログラミングやシステム開発をこのように理解しているんだなと改めて思いました。実際には豊富なマーケティングの知識をもった人間が本気でシステム設計に関わらなければそんな夢のようなシステムは完成しないのに。もっとも人事システムや経理システムと違ってマーケティングシステムは様々な外部情報をコンピュータに提供しなければ答えはでませんが。

仕訳データから売掛金の回収管理をする人たち

同じ日用品メーカーのシステム部門に勤めていたときのことです。

長年使っていた販売管理システムを大幅に改修しようというプロジェクトがありました。当時私は経理システムを担当していたので、この機会に長年悩まされていた販売管理システムと経理システムのインターフェースを改善するチャンスだと思いました。

どんな問題に悩まされていたかというと、当時の販売管理システムの売掛金管理の方法でした。当時売掛金の回収業務は経理担当者が起こした仕訳データで売掛金の回収管理をしていました。

この方法がなぜまずいのかというと、経理担当者が得意先から「手形」で売掛金を回収すると次のような仕訳を起こしていました。

(借)受取手形  / (貸)売掛金

この仕訳自体にはなんの問題もありません。ところが、販売管理システムでは数ある仕訳の中から売掛金回収につながる仕訳を抜き出して債権管理をしていました。

販売管理システムでは何を条件に売掛金の回収だと判断していたのかというと、『売掛金という勘定が貸方にきている仕訳』でした。

このようなことをしていると経理担当者が仕訳の金額を間違えたので訂正しようと『逆仕訳(赤伝票・黒伝票)』を次のように起こしたとします。

  • <元の伝票>(借)受取手形 100,000円 / (貸)売掛金  100,000円
  • <赤伝票> (借)売掛金  100,000円 / (貸)受取手形 100,000円
  • <黒伝票> (借)受取手形  50,000円 / (貸)売掛金  50,000円

すると、販売管理システムでは「赤伝票」の仕訳は回収処理とは無関係の仕訳と判断され受取手形150,000円の回収があったと判断してしまいます。赤伝票の方は売掛金が「貸方」にないからです。

私は、債権管理は販売管理システム側で管理して債権管理のデータから仕訳を起こして(自動仕訳)経理システムに渡せばいいと主張しました。

ところが、販売管理システム改修に立ち会った外部のシステムコンサルタントは従来のシステムの流れをそのまま踏襲しました。

それでも、この外部コンサルタントを一概に責めるわけにもいきません。システムを改修する際に外部コンサルタントは既存のシステムと同じようなシステム(大型ホストコンピュータからクライアントサーバーに器を変えただけの)を作った方がリスクが少ないからです。

なぜ日本の企業は労働生産性が低いのか?

なぜ、外部コンサルタントやシステム開発者は既存のシステムと同じようなシステムを多大な開発費用を投じながらも作るのでしょうか。

それは、既存のシステムがシステム利用者の細かい要求を受け入れつつ継ぎ接ぎだらけのシステムになっているからです。新しいシステムが完成して利用者に使ってもらう段階になって今までのシステムでできていることができなくなったら利用者は黙っていないでしょう。

私がシステムエンジニアをしていたころは、たいていの大企業は自社のシステムを自前で作っていました。人事システムや経理システムでさへも。自社の独自の業務にあったキメの細かいシステムを構築することは勤勉で思いやりの気持ちを持った日本人の得意とするところでした。

ところがその利点があだになって統合型パッケージソフトがもてはやされるころには日本の独自性に陰りが見えてきました。統合型パッケージソフトは、”ERP(Enterprise Resource Planning)”の思想の下に、企業の持つ資源=「ヒト」「モノ」「カネ」「情報」を一か所に集めて管理し、有効活用するというものです。従来の販売システムや生産システム、人事システム、経理システムとばらばらに管理するのではなく一元的に管理して効率的に業務をすすめるというものです。

パッケージソフトというからには、既存のオーダーメードシステムではなく、できあいのものを利用者の方が合わせて使うという趣旨のものです。ところが、日本の企業はこの統合型パッケージソフトに自らの業務をあわせるというよりも、パッケージソフトの方を変えようとしました。

私はメーカーのシステム部門に勤務する前にはあの第3次オンラインシステムとう金融機関のシステム開発や都庁や首都圏の自治体の住民記録システムの開発に携わっていたのでわかるのですが、それぞれの企業や自治体が独自のシステムを開発運用してきました。

そのため、金融機関の合併や住民記録システムの統合(今でいうマイナンバー)の時に互いのシステムに互換性がなくトラブルを引き起こしているのだと思います。

日本人のきめ細かさは今は武器ではなく足かせになっていると思います。そのため、新しい技術が発明されてもストレートにその恩恵を受けることができないのではないでしょうか。そのため後進国と思われていた国々にどんどん追い抜かれていくような気がします。彼らは、まっさらな土壌に最先端の技術を何の足かしもなく導入しその恩恵を享受していくことになるのです。

『プログラミング』ではなくどんな能力が必要とされているのか?

今まで述べてきた問題は、『プログラミング』の能力を磨いていけば解決できるのでしょうか。

また、どんな能力が高まっていけばこれらの問題は解決していくことができるのでしょうか。

プログラミングは子どもたちを夢中にさせる!?

そうは言っても、この『小学校のプログラミング教育』はすでに実際の教育現場に広まりつつあります。先進的な取り組みの中には、『プログラミング教育は子どもたちにやる気を引き起こす』という証言があります。

その中に、『普段子どもたちは授業に短い時間でも集中して取り組めないのに、プログラミング教育の授業では1時間も夢中になった学習を続けている』というものがあります。

どんな授業が行われているのかと見てみると『プログラミングでロボットを動かそう』とか『プログラミングでゲームを作ってみよう』という内容のものでした。

これなら、『子どもたちだって夢中になるはずだ』と思いました。家に帰って何時間もゲームに夢中になっていたら親に怒られるぐらいだから、学校でゲームをやって褒めらるなんて子どもたちにとってみたら天国としか言えないでしょう。

なんでプログラミングというとすぐゲームなんでしょうか?世の中のプログラマーがゲームばかり作っていたら、金融システムや生産システムなど経済を回すシステムは誰がつくるのでしょうか。

『ゲームはプログラミングのとっかかりになる』、『いずれプログラミングに興味をもった子どもたちが基幹システムの開発にも興味を持つようになる』という意見もありますが、どんなきっかけでそのようなことが起きるのでしょうか。

プログラミングではなくシステマティックな思考を持たせることが大事

あまり文句ばかり言っても世の中がよくなるわけではないので、ではどうしたらよいのか考えてみたいと思います。

それには、システム化とコンピュータ化(IT化といってもいいでしょう)を切り離して考えることです。

システム化をしないでコンピュータ化をしたらどうなるでしょうか。混沌となるシステムが待っているだけです。

だから、『プログラミング教育をするより、システマティックな思考を身につけるような教育を目指した方がいい』と思います。

ただ、現在のプログラミング教育でシステマティックな考え方を身につけることが不可能なわけではありません。プログラミングというのは機械(コンピュータというハードウエア)に命令をするコードを綴っていく行為ですので、最終的には”0″か”1″の白黒はっきりとした世界です。

つまり、プログラミングを要求する人(システムの利用者)が曖昧な要件でしかプログラマーに指示を与えることができなければプログラマーはプログラムを作る際に困ってしまいます。したがってプログラマーはシステムの利用者やプログラムの設計者にフローチャートなどの論理的な矛盾が生じない形で何をしたいのか要求することになるでしょう。

その能力こそがシステマティックな思考を培う土台となってくるのです。

これからの教育にはどのような能力を身につけさせることが大事になってくるのか?

『Society5.0』の時代のようにすでに答えがすぐ手に入る状態では知識の多寡がそれほど問題になることはないでしょう。ネットで検索すればすぐに答えが出てくるからです。

現代人の問題は、『何が問題であるのかわかっていない』ことにあるのではないでしょうか。

何が問題であるのかわかっていない状況では、その解決策も見出すことはできないでしょう。

例えば、先ほど例に挙げた日本の職場の働き方を見ていると、いつもの慣れ親しんだ日常の業務が恐ろしく非効率なことに気が付かずがむしゃらに仕事をしているということはないでしょうか。

例えば、あなたの職場では一度起票した伝票のコピーをとって他の部署に回したりはしていないでしょうか。

あるいは、ある得意先の要望に応えて職場の規定とは違った取引条件で取引をしているケースはないでしょうか。

あなたの職場ではいくつもの例外があって、その例外的な処理をいくつ知っているかがベテラン社員と配属されたばかりの新人との技量の差と評価されてはいないでしょうか。

本来ならその分野で一定のスキルがある人が配属されたら即戦力になるのが理想的な職場だと思います。例外をいくつ知っているかが優秀な社員でなく、例外をいくつ取り除きストレス(摩擦)の少ない職場にしていくのが優秀な社員だと思います。

ですから、これからの社会を担っていく子どもたちに身につけていく能力は問題点を見つけ出しその解決策を探り出す能力であると思います。

そのような能力を身につけていけばロボットやAIなどのIT技術の進歩が私の日常を豊かにしてくれるのではないでしょうか。

コメント

タイトルとURLをコピーしました