レガシーとの付き合い方
コマンドプロンプトやらVBAで組み上げた仕組みというのは長く動きます。私が見る限りでも、十年程度動いている仕組みがたくさんあった。メンテナンスコストがかからないという話はよく聞きますが、そのまま使い続けられるのであれば、確かにメンテナンスコストはかかりません。レガシーを好む人の話は、ITが分からない人にも説明がしやすいです。「動くかどうか」という視点だけで見るなら、ソフトウェアに進化は要りません。例え仕組みが古くても「理論上」はできる訳ですから。考えなくて済む楽さが選ばれることは多いです。
理論上うまくいくけど、実際にやってみると上手くいかないことはよくあります。レガシーなシステムでも、確かにシステムは動きます。ハードウェアの保守期限切れに伴うリプレイスも乗り越えているシステムもたくさんあります。その結果、ハードやOSは最新だが、中身が十年前から変わっていないようなシステムになります。それでも、相応には稼働しています。ただ、何度かリプレイスを繰り返すうちに、仕組みを知らずに運用されるようになります。厳密にいうと、仕組みはわかるけど、何があるか分からないから触らないという運用になります。ブラックボックスというより、アンタッチャブルなシステムになります。
そういう理由から、レガシーが好きな人は既存のシステムを触らない傾向が強いです。また、今あるものを前提に考えるので、問題提起や効率化、自動化という発想に弱いです。触らない、変えないのがベストという観点なので、改善という発想がありません。その結果、驚くほど高率の悪いシステムがそのまま運用されてしまいます。実際、VBAやバッチファイルでやる処理をPowershellで書き直すと驚くほどシンプルに書けます。ひと昔前なら苦労して書いていたけど、リプレイスしたら数行のコマンドで済んでしまうようなケースもよく見かけます。そこに、膨大なメンテナンスコストが割かれることもあります。
昔の機械を長く動かしているようなところでは、適切にメンテナンスされており、壊れないような使い方など、機械に対しての知見も豊富です。何も考えずに「現行踏襲」で延命措置をしているシステムと、扱われ方が違います。レガシーを使い続けるにしても、それなりにコストはかかります。レガシーなシステムを動かし続けることが、必ずしもコストの削減になるとは限りません。長く使うことで、払ったコストを回収できている気分にはなれます。定期的なリプレイスを避けることで節約できたような気分になれます。ただ、こういう気分で満足しつづけていると、リプレイスに膨大な費用がかかってしまうようなリスクに繋がります。
東京にいると肌で感じるのですが、JRの駅は用途や状況に合わせて増築、改築が繰り返されています。文化的な価値があるものはちゃんと残して、現代でも使えるように手を加えた上で残しています。東京駅の駅舎をみると、そのように感じます。あれがレガシーとの上手い付き合い方かと思います。ITの現場でも、ああいう古い資産の活用の仕方ができれば素晴らしいかもしれません。ただITの現場では、保守切れになったソフトや機材は価値を失います。価値を持ち続けるものは情報かと思います。お金をかけたものでもい、価値を失いやすいというのがITの世界です。皮肉にも、現代人的な価値観と相いれないところかと思います。