古いシステムの再構築
今日も、あるシステム部長からの相談の話をします。
私のところに、COBOLで稼働しているシステムがあり、それを再構築したいのだが、COBOLエンジニアがいないか?という相談がありました。
確かに、現在、AWS上でCOBOLは動くし、COBOLは、稼働する機器が1台で処理されること、機器構成がシンプルなため業務ロジックに特化したプログラム作成ができることが特徴であり、事務処理用には向いています。
では、この先10年この言語を使い、システムを再構築した場合、他の案と比べて問題がないか?というと大いに問題ありとなります。理由は下記になります。
人材確保が難しくなる
古い言語の場合、一番問題となるのは、今後、その言語を知っているエンジニアが居なくなることです。20年前には主流であったものの、今はほぼ使われなる言語は、この先10年で間違いなく、さらに使われなくなります。
そのため、その古い言語(技術要素もそうですが)を知っているエンジニアの絶対数が少なくなり、結果的に希少価値になるゆえ、エンジニアの確保が難しくなり単価も上がってきます。
現在サポートされているサービスも将来的には使えなくなる。
業界内で、古い技術の利用割合が少なくなると、現在、サポートされているサービスでも、利用者が少なくなったという理由でサポートを打ち切るメーカーが多くなります。
そのため、今は使えるからといって、将来性のない言語(もしくは技術要素)を使って、再構築することはお勧めしません。唯一、延命してよいのは、システム再構築のスケジュールが見えており、それまでの一時的なリリーフとして、例えば、機器を先に償却するというハードウェアとソフトウェアの移行タイミングを切り離すために使用するのであれば、やむなしと思います。
古い言語のサービスを提供しているメーカーも永久にそれらをサポートするつもりはなく、置き換えを前提としたプロジェクトがあったために、そういうツールを作ったというのが実際のところだと思います。
そのため、そのような一時的なツールを将来使い続けるような案として採用するべきでありません。
相談した方は既存の資産をできるだけ有効活用したいという判断した、もしくは社長から指示されたと思いますが、そういう場合には、次期システムは何年使うか?、その時にはどういうことが業界内の主流なのか?ということを想定して、運用・保守も含めたコスト予測をするべきかと思います。その上で、新しい言語(もしくは技術要素)での置き換えとの比較をすべきと思います。
おそらく、その比較項目が間違ってなければ、最新の技術を使ったほうが結果的に安く済むという結論が出るかと思います。
(車が年々性能が良くなっているのと同じで、IT業界の各技術要素も年々性能が良いものが出ています。それを使うことを優先して検討することが良いかと思います)