見出し画像

システム開発の将来

おいらがこの業界に入ってから既に30年以上が経過している。
その間の変化といったら、産業革命による産業構造の変化が毎年起こるような劇的な変化を遂げており、この動きがどこに向かうのかということについては誰もが予想することができない様な状況だと思う。
でも、システム開発というものの本質を考えた場合には、その動きは多少のブレはあるかもしれないが、動く方向は決まっていると思う。
それを少し整理してみたい。

システム化されていない仕事はあるか

おいらがシステム開発に携わった初期の頃は、パソコンなどというものはまだまだ普及しておらず、ワープロ専用機が会社に1-2台ある程度であり、仕様書などは全て手書きで記述していたんだよね。
コンピュータも汎用機が主流であり、メーカの工場に行ってそこで専用のダム端末を利用して開発をしていたっけね。
その様な中で、ようやく職場に置くことができる小型の汎用機が出始めて、それまで手作業で実施していた業務をシステム化する動きが活発になってきたんだな。
なので、当時はそれこそ500ページくらいある要綱とか業務マニュアル(当然手作業)とか実際に手書きで作成した書類などを分析して、それをどの様にシステムにするのかということを考えることから始まったんだ。
年間に数百枚もあるような統計表を全て手作業で実施しているものをシステム化したり、全て手作業で膨大な台帳を記載して保管し、その内容からコストを計算して国へ補助金を請求するような業務をシステム化したりと、まさにゼロからシステムを作成するということをやってたな。
なので、顧客もどの様なシステムを作成すれば良いのかということも全く解らない状況であり、業者側も考えながらシステム設計を行う様な非常に泥臭い作業を行ってました。
それが20年くらい経過した頃に、ある一部上場企業の子会社の社長との会話をする中で、「もはや会社の業務でシステム化できるものはほぼシステム化されており、今後は新たな業務をシステム化することなんてないんだよね」と言われたことを今でも印象的に思っている。
確かに、身体を利用する現場作業などシステム化できない作業は多いけど、それでも現場作業を管理するためのシステムなどは作り尽くされており、ホワイトカラーが実施する作業はほぼ全てシステム化されているわけだ。
なので、これから先はシステムをゼロから構築するというものではなく、最適化、省力化などをベースにした保守作業がメインとなっていく流れになっているのかと思う。もはやシステム化されていない仕事などはほぼ無い状況だからね。

昔から言われたプログラムレスについて

おいらがコンピュータをさわり始めたのは高校生の頃。当時はパソコンではなく、マイコンなどと言っていたっけ。
Winodwsなどは影も形もなく、MS-DOSが辛うじて出始めており、PC-8001などが主流で、PCを起動するとOSをテープレコーダーから読み込むところから始まったんだよね。
で、出てくる画面はDosプロンプトだけ。プログラムもその場でコードを入力して、その場で実行する位。フロッピーディスクが登場し始めてやっと入力したコードをリアルタイムに保存しておくことができるようになって感じだったな。
で、その当時に出たのが日本語BASICというもの。命令を日本語で記述できるというもので、複数のメーカが連携して言語開発をしたんだけど、あっという間になくなったね(笑)
その後に色々なプログラム言語が出てきて、色々な場面で色々な特性により主流となるものが機械語からアセンブラ、BASCI、VB、COBOL、Cなどと変遷していったな。
で、当時から言われたことはプログラム言語はなくなるということ。
プログラム言語はなくなっていないけど、狭い世界では確実にコーディングするプログラムはなくなっています。
代表的なモノとしてあるのが、SQL命令かな。データベースというものは昔から有ったけど、RDBという概念のデータベースが登場してそのデータを操作するための言語としてSQLが開発されてそれを利用することにより、それまでプログラムとして記述していた並び替え(ソート)とか複数のデータの結合とかが一つの命令で結果が返ってくるようになったわけだ。これがまさにプログラムレスの典型だよね。
それから、クラス化などの概念が登場したり、HTMLなどを含めてある記述をすることで既に作成している処理が特定の処理を実行してくれるようになってきた訳だ。
だから、今の人はフルHD(1920×1080)のドットを操作するようなことはしないで良くなったんだよね。
昔は何行目の何列は何色にするということを丹念に定義して、その色を変化させることで画面を動かすようなことをやっていたんだけどね。
なので、今の時代は色々な言語が登場しており、プログラムレスにはなっていないけど、処理の内部は確実にプログラムレスになってきています。

またクラウドシステムを利用して給与計算を行ったり、ワークフローとか会計処理を行ったりするようなパッケージ利用というものを考えるとこれは完全にプログラムレスになっているよね。
まぁシステムを開発提供している業者はそうではないけど、利用者の大部分がプログラムを意識しなくなっているという意味ではプログラムレスの流れだよね。

画像1

AIの登場による変化

プログラムレスの流れはAIが進歩することで、確実になくなってくると思う。
プログラムというものは、所詮Aという状態をBという状態に変化させることの繰り返しでしかなく、それの組み合わせ/条件が複雑に絡み合っているだけなので、AIの様な答を見つけることが得意なコンピュータがあることでプログラムというものはAIが勝手に作ってくれるようになるのは間違いない流れだと思う。
AIを開発するためのプログラムは残るけど、先に書いた様にシステム開発の場面でプログラムを作成している人たちのプログラムを作成する範囲はどんどん限定されてくる流れは間違い無くやってくるはず。
それが数年後なのか数十年後なのかは解らないけど、18ヶ月あると半導体の速度は倍になり価格は半額になるというムーアの法則はコンピュータというものCPUというものが出始めて数十年経過した今でもその法則は有効みたいだから、AIの進歩も想像もできない位の速さで飛んでもないことになるのは明白だよね。
この流れは絶対に止めることができず、システム開発をしている理由である合理化、効率化という概念を突き進める動きが止まることは無いと思う。
そのことで、システム開発している人たちが自分の仕事を奪われるとしても、誰もが止めるという選択は絶対にしないと思う。
映画の世界の話ではあるけどターミネーターのサイバーダイン社も一つのCPUの革命からできたように、何かのきっかけが出だ主観に世の中は一変すると思う。

それでも変わらないもの

どんなに世の中が進歩しても、AIが進歩しても変わらないものがあるんだよね。
それは、要件の明確化なんだな。
システムというものは、システム単独で動くものではなく、必ず手作業が必要となるものであるんだよね。
それとシステムというものがそのシステムが動くことが目的ではなく、何かの作業を行うために必要となる手順自体を自動化させるものであるんだよね。
システム自体が目的でありシステムの動作結果自体が要件となるようなものは沢山あると思う。例えば給与計算みたいなものは、システムで動作することが全てであるような感じなんだけど、これはシステムのもっとも得意とするもので、業務のシステムかが始まってから一番最初にシステムとして構築されたものたちなんだよね。
これらの特徴は「答が決まっているもの」「ルールが決まっているもの」という前提が必要な訳だ。
コンピュータというものは賢くはなく、同じ作業を繰り返し間違えることなく、もの凄い速さで繰り返すことができるものであるため、ルールが決まっている、答が決まっている(又は答を比較できるもの)であれば、処理速度とルールの組み込みの量の問題が解決することで一見頭が良いような状況になるわけだ。
その典型が将棋のAI化だよね。あれは将棋の手数をもの凄いパターンで繰り返し、何十手先までも読み、その結果を一定の評価基準で比較して一番良い手を導き出すというディープラーニングという手法を使っているだけであり、答があるといっても過言でないものなんだよね。
今小説をAIで作成するという研究が進んでいるみたいだけど、どの様な小説が良い小説なのかという要件自体をコンピュータは決めることができないんだよね。
まぁもしかしたら遠い将来ではそれも出来るのかもしれないけど、それは多くの人たちの総合的な評価という統計的な手法で計算することの結果でしかないようには思うけどね。
なので、何をコンピュータに定義させるのかという要件の定義自体はなくならない訳だ。

システム開発の将来

普通システム開発というと皆はプログラムを作成することというような捉え方をする人が多いように思う。
またIT関係のコラムなどに定期的に出てくる「これから稼ぐことが出来る言語は何か」みたいな特集は掃いて捨てるほどあるよね。
でも、システムというものとプログラムというもの(プログラムレスも含めて)の関係を明確に定義しているコラムなどは見たことが無いし、要件を明確することに対することをうまく解説しているものもほぼ見たことがないよね。
15年位まえに、あるシステムを構築したときに超上流という概念があるということを整理している人がいて、とても良いことを言っているとは思っていたけど、それでもなかなかうまく説明もできていないし、今の時点でもそれを明確にしていることができていない状況であると思う。
これは、それだけ要件を定義すること、上流工程を設計することがシステマティックにできないことの証だと思う。
なので、システム開発の将来は、要件定義、上流設計という観点に集約していくと思うんだよね。
この要件定義が明確に出来る人、上流工程をきちんと設計出来る人はこの先数十年は生き残れると思う。
今プログラムを一生懸命勉強している人たちにもそのことに気づいて欲しいなと思う。
システムを作る上でプログラムを開発することは必要であり、その考え方はとても貴重だし、結果的に上流設計に必要なスキルではあるけど、所詮ツールでしかないんだよね。
このことをシステム庁の人たちは解っているのかな?
解っていないんだろうな~、解っていたとしても政策レベルで決める時にこの様な考え方は邪魔にしかならないから、知っていても知らない人がやる動きと同じになるんだろうな。
10年後に飛んでも無いような状況なっていないと良いけどね。

結論

今日、年収が高くなるプログラム言語はなんていうコラムを読んでしまったことと、システム庁の成り行きなどを見ていて感じたことを書いてみたけど、ものごとの本質というものは非常に難しく、答はキットいくつもあるように思う。
でも、本質はシンプルでブレることがないような気がするんだよね。
システム開発という仕事に携わっている限り、このことを声高に周りに言い続けていく必要があるような気がしている今日この頃です。



この記事が気に入ったらサポートをしてみませんか?