米国の社会保障制度は、古いCOBOLプログラムに依存し、日付処理の不備から149歳の受給者が誤って存在するという問題が浮上。データ入力ミスも多く、実際の給付はごく少数に限られている。
COBOLは1950年代に開発され、社会保障局(SSA)の基幹業務を支える6000万行以上のコードが存在する。
しかし、COBOLには日付を扱う標準化された方法がなく、プログラマーたちは独自に日付を表現する方法を考案してきた。
その結果、社会保障の申請時に誕生日を記入しないと、1875年5月20日というプレースホルダー日付が自動的に割り当てられることがある。
このため、149歳以上の「社会保障受給者」が存在するという誤解が生じている。
さらに、過去のデータ入力ミスや、手動でのデータ移行によって、SSAの記録には多くの不正確さがある。
実際、社会保障監察総監の2011年の分析によると、誕生年が1900年の個人が異常に多く見られるという問題が指摘されている。
SSAはすでに高齢者のチェックを行っており、2023年の調査では、1890万人の社会保障番号保持者が1920年以前に生まれたとされているが、実際に給付金を受け取っているのはごくわずかである。
こうした状況を受けて、SSAは2015年以降、115歳以上の人への給付金支払いを自動的にブロックするシステムを導入している。
これにより、実際には存在しない「吸血鬼」受給者の存在を防いでいる。
参考リンクhttps://news.yahoo.co.jp/articles/7b3ab930e32f177ac98ca2e1889bb6a756309532
米国社会保障制度におけるCOBOLの依存は、古い技術の維持と新しい技術への移行の難しさを浮き彫りにしました。
多くのコメントでは、COBOLの問題は単なる言語の古さではなく、適切なドキュメントや仕様書が不足していることに起因していると指摘されています。
技術者が確保できない古い言語は衰退していくという意見もあり、COBOLに代わる新しい言語への移行が進まない背景には、ファイルシステムやデータベースの根本的な違いがあることが挙げられています。
また、古いシステムの置き換えには多大な労力がかかるため、利益が上回らない限り容易ではないという意見も見受けられました。
さらに、COBOLやPL/Iといった古い言語が現役であることや、過去の設計書の不足がプログラムの解析を難しくしているという指摘もありました。
これらの意見から、単に言語を更新するだけでなく、適切な仕様書を生成できる人材の育成が重要であるとの考えが強調されていました。
ネットコメントを一部抜粋
COBOLは事務処理用として設計された言語であるのに対して、汎用言語に置き換えられていくのは面白い。
古い言語に問題が有るのではなく、「何のために何をしてる」のドキュメントが揃って無いのが問題ではないかな。
COBOLもPL/Iも未だ現役だからね…脱メインフレームはなかなか上手くいかなかった。
たとえ古いシステムが損失をもたらしているとしても、それを上回る利益があるなら、置き換えるには足りない。
給付金を受け取っているのはわずか4万4000人、この数をわずかというのには違和感がある。