SI企業の強み・弱みを分析し、SIビジネスの先行きについてまとめた書籍『SI企業の進む道 業界歴40年のSEが現役世代に託すバトン』。同書から抜粋し、「誰も指摘しなかったSI企業の課題」を連載で指摘する。今回は、SIerがユーザー企業の要望に応えられない根源的な理由を探る。(技術プロダクツユニットクロスメディア編集部)
既存ITシステムの問題をユーザー企業以上に理解しているのはSIerである。ところが、その問題をユーザー企業に説明し、対策をとろうとはしない。ではなぜ、SIerのIT技術者たちは口を閉ざしているのだろうか。
その答えはこうだ。問題を説明した後に「では、どうすればいい?」と問われても答えられないからである。つまり、既存ITシステムの変革をどのように行えばいいのか分からないのだ。
情報処理推進機構(IPA)が平成29年に出したレポート「システム再構築を成功に導くユーザガイド」には、既存ITシステムの再構築はコスト負担が大きく、リスクも高いことが明記されている。ケーススタディーとして、オンラインシステム部分は再構築し、バッチシステム部分は異なるプログラム言語に変換して作り直す(リライト)ケースを説明している。
安易なリライトでシステムは複雑化する
リライトとは、プログラムをそのまま違う言語で作り直すことを指す。例えば、COBOL言語で作られたITシステムをJava言語でそのまま作り直すような場合である。
Javaはオブジェクト指向言語であり、COBOLのような手続き型とはまるで異なる言語である。それなのにあえて、JavaをCOBOLのように利用するのである。COBOL自体のサポートが無くなるとか、COBOL技術者がいなくなるケースで行われる。こうしたことを実現するために、バッチシステムを前提にしていないJavaでバッチシステムを作れるような技術研究をしているのである。
だが、これは本末転倒である。Javaを使ってCOBOLのようにプログラミングすると、Javaの本来の利点を失うだけでなく、本来バッチ処理に適しているCOBOLで開発するより複雑で生産性も悪い。何のための再構築なのだろうか。そもそもリライトは、プログラムをそのまま違う言語で作り直すのでスパゲティの解消にはならないし、構造はそのままだと、むしろ深刻なスパゲティ状態になる。
残念ながら、企業規模が大きい場合、既存ITシステムの問題を抜本的に解決しているケースはほとんどない。既存ITシステムの問題を叫んでも、具体的な問題解決方法がないので、SIerのIT技術者たちは口を閉ざしてしまうのだ。
対応する技術を開発すればいいと思うかもしれないが、例えばJavaでバッチ処理ができる方式など、私からすれば百害あって一利なしの技術である。また、COBOLからJavaへの自動変換ツールの開発など、IT技術者としての良識を疑う。