COBOLで書かれた米国防総省の給与システム700万行、実質的に更新不可能 129
ストーリー by headless
困難 部門より
困難 部門より
米軍では兵士に正しく給与が支払われないことがしばしばあるという。ロイターの記事によれば、古い給与・会計システムが原因らしい(Reuters Nextの記事、
本家/.)。
米国防総省の給与システムはCOBOLで、700万行に及ぶコードの大半は1960年代に書かれたものだという。コードは数十年前から更新されておらず、エラーも多発するが、古くなるにつれて維持が困難になっているそうだ。さらに、ドキュメントはかなり前に失われており、実質的に更新は不可能とのこと。国防総省では10億ドル以上かけて新しいシステムを導入しようとしたが、これも失敗に終わっているとのことだ。
米国防総省の給与システムはCOBOLで、700万行に及ぶコードの大半は1960年代に書かれたものだという。コードは数十年前から更新されておらず、エラーも多発するが、古くなるにつれて維持が困難になっているそうだ。さらに、ドキュメントはかなり前に失われており、実質的に更新は不可能とのこと。国防総省では10億ドル以上かけて新しいシステムを導入しようとしたが、これも失敗に終わっているとのことだ。
COBOLが原因ではない (スコア:5, すばらしい洞察)
仕様書やドキュメントがないからメンテも移行も出来ないと受け取れる。
これは別の言語に置き換えてもあんまし変わらない気もするな~
700万行にも及ぶ仕様書もドキュメントも無い○○言語で書かれた給与システムのメンテもしくは新システム導入
なわけだが、
実際問題こんなお題のモノは炎上どころじゃないプロジェクトになりそうな予感・・・
Re:COBOLが原因ではない (スコア:1)
入力・出力・状態遷移の動作仕様が明確になっていれば、その動作仕様の範囲内で実装方法を自由に変えられる(修正できる)。
一方、動作仕様が明確になっていないと、ソースコードの自身が動作仕様になっていく。つまり、ソースコードの改変は動作仕様の変更を意味するようになる。かくして、700万行の動作仕様のプログラムが生まれたというわけだ。
すべての動作仕様を理解する必要はないとは言え、そう考えると正気の沙汰ではない分量ではある。
700万行の大半を1960年代にって (スコア:3)
入力はなんだ?紙テープ?恐ろしい...
Re:700万行の大半を1960年代にって (スコア:2)
・ハードウェアが60年代のものとは書かれていない
・コードの大半が60年代に書かれた、ということは何割かは更新されている。
と考えると、現在も紙テープやパンチカードで運用されているわけではないだろう。更新されたコードは一部の給与体系の変更と、入出力関係ではないか。
既存のメディアに記録していたデータは、メインフレームを更新した時にベンダーがコンバートしているだろう。(納入要件にコンバートを含めているはず)
Re:700万行の大半を1960年代にって (スコア:2)
いや、開発当時の作業は大変だったろうね、という発言でした。
案外そんなでもなかったりして。
国防総省では10億ドル以上かけて云々 (スコア:1)
COBOLより、最後の一行が気になる。
米軍は、二度とコンピュータに落とし込めないような複雑怪奇な給与体系になってるの?
# リンク先は読んでません
Re:国防総省では10億ドル以上かけて云々 (スコア:5, 興味深い)
傷病手当の扱いが複雑みたいですね。記事に出てくるのは
イラクとアフガンに行った現在30歳。
神経損傷、慢性の痛み、そして腰の負傷に起因する外傷性脳損傷、
重度の心的外傷後ストレス障害(PTSD)、異常な眼球運動
等がある模様。
#自動翻訳かけただけだから少々間違ってるかも
Re:国防総省では10億ドル以上かけて云々 (スコア:1)
Re: (スコア:0)
追記。
源泉徴収額が不当だと言っているので、
治療費を兵士負担で計算しているのかもしれない。
もしくは米国の税体系そのものの変化に対応していないのかも。
半世紀前ですよ。ベトナム戦争なんか彼が生まれるずっと前の話だ。
Re:国防総省では10億ドル以上かけて云々 (スコア:2)
そもそも、現在のシステムが正しい給料を出しているのかどうか、誰がどうやって確認したんでしょうか?
あるいは、確認すると、膨大な(10億ドル以上の)未支払い給料が明らかになるため、臭いものに蓋で更新できないとか。
(軍上層部の(バグによる)給料もらいすぎが判明することが予見され、抵抗勢力になっている、ということもありえそう)
Re:国防総省では10億ドル以上かけて云々 (スコア:5, 興味深い)
いや、「現行システムで計算した結果」が「正しい」給与体系なんだよ。つまり、本当に「バグではなく仕様」の世界。
大昔のシステムだから、「コンピュータの結果が間違ってる訳が無い」で納得させちゃったら、もう仕様に組み入れるしかないよね?
で、結果、新システムの仕様要件に「現行システムと同じ結果を出す事」ってのが入ってるんじゃない?
でもって、リファクタリングして整理したら、「再現しないバグ」が出て、結果が一致せず、結果を一致させるには、現行システムと同じコードを丸抱えするしかないって状況なんじゃ?
-- Buy It When You Found It --
Re:国防総省では10億ドル以上かけて云々 (スコア:1)
米国って契約社会だから当然仕様は文書化されてるもんだと思ってましたが、そんなことは無かったんですね。
捨てちゃって復元できないだなんて、どこぞの国の社保庁みたい。
Re:国防総省では10億ドル以上かけて云々 (スコア:2)
身近な給与システムの場合でも、「この人はこの契約で」というエライ人の一言で、異例パターンが生まれます。 このご時勢ですから、制度改悪もありますが、激変緩和調整を生んで、よくわからなくなってしまうわけです。
この軍のシステムも一人一人理論値を別システムで計算してチェックしていくのがスジでしょうけど、制度が複雑すぎでできないのでしょうね。
Re:国防総省では10億ドル以上かけて云々 (スコア:1)
実際、人事給与システムの類って規定通りの数字出していないことがあるんですよね。条件によって微増微減程度ですが。
更新で下がるようなことがあれば、もらう側はだいたい黙っちゃいないでしょう。逆も然りで、もらう側が強いのか、払う側が強いのかは組織によるのかな...
Re: (スコア:0)
まあ人民解放軍に比べれば可愛いモンだろうけど。
リストラ以前は、ソロバンで1000万人単位に給料を支払っていたわけだから、中央統制など絶対不可能。
コンピュータネットワーク化以降、中央集権に移行出来たのか、出来なかったのか。
仮にも米国防総省が統括出来ていた米軍とは違って、地方軍閥化著しい中共は、どんな暗闘が有ったのやら、或いはやっているのやら。
ソ連もピーク時は同規模・同難易度の問題を抱えていただろうが、解体ロシア移行時に、総更新しただろうし、寧ろ地方軍閥問題より組織毎に独立化されているだろうし。
Re:国防総省では10億ドル以上かけて云々 (スコア:1)
> 10億ドル以上かけて…中略…失敗に終わっている
特許庁の失敗損害55億円の20倍弱ですか。うわぁ。
Re: (スコア:0)
だよねぇ。
そんなに難しいなら給与体系を見直そうぜ。
Re:国防総省では10億ドル以上かけて云々 (スコア:3, おもしろおかしい)
給与の策ですな。
Re:国防総省では10億ドル以上かけて云々 (スコア:2, 興味深い)
そうしたい所なんだけど、退役軍人省とかいろいろなシステムのコンピュータ化をするの遅れてるし、
ついにはサイトに我々の敵は書類とか載せちゃうほど問題化してる
デイリーショーで2日連続ネタにさせる始末
対岸の火事 (スコア:1)
と笑えない日本の会社やお役所って、一体どれくらいあるんだろう?
Re:対岸の火事 (スコア:2)
日本ではNTTデータか日立・富士通がなんとかするのではないか。
Re:対岸の火事 (スコア:2)
それでも完成したら、名誉の戦士として、アーリントン墓地に埋葬されたりして。
Re:対岸の火事 (スコア:1)
己の手を血で汚さずに裏で手をひいて米国防総省がNTTDATAに入札参加を外圧で要請するように暗躍すれば実験結果が観察できます。
Re:対岸の火事 (スコア:2)
いや、この件もNTTデータか日立に任せとけば良かったのでは。
Re:対岸の火事 (スコア:1)
みんなNTTデータにしたかったと思いますが、いろいろあったみたいですよ。
http://itpro.nikkeibp.co.jp/article/NEWS/20100622/349509/ [nikkeibp.co.jp]
Re: (スコア:0)
例えば、あくまでエイプリル・フールの話だけど、4/1の記事を参照。
COBOLじゃなければ出きるのか? (スコア:1)
『700万行に及ぶコードの大半は1960年代に書かれたもの』でメンテ可能な言語ってあるんだろうか。
ドキュメントがある程度有ろうが無かろうが無理っぽい気がする。
# すっごいちゃんとしたドキュメント(仕様書)が残ってても、もう新造した方が楽なんじゃ。
# そこまでデカいプログラム見たこと無いので作業見積りが想像もつかない。
Re:COBOLじゃなければ出きるのか? (スコア:1)
COBOLで書かれているならできると思う。
700万行の中身をみないとわからないが、そもそも COBOLのコード自体が帳票みたいなものだから、
単にうまいパーザを作れば1割くらいに縮退しうるんじゃないだろうか。
Cで700万行と言われるより期待できるのは俺だけじゃないはずだ。
Re:COBOLじゃなければ出きるのか? (スコア:2)
専用コンパイラのようなものを一つ設計すればいのだから。
で、結果は予想通り(笑)
Re:COBOLじゃなければ出きるのか? (スコア:1)
「おじいちゃん、そのコードのチェックはもうやったでしょ。」な人も多いんじゃないですか?
Re:COBOLじゃなければ出きるのか? (スコア:1)
何年~何十年か先には、C や Java も同じこと言われていますよきっと。
Web ページ専用みたいな状態の php とかはセキュリティの問題で
消え去ってるか、うまくアップデートされているかもしれませんね。
[Q][W][E][R][T][Y]
そもそも (スコア:1)
果たして、この給与体系を全て記述した文書があって、かつ把握している人物がいるのだろうか?(仕様書以前の問題として)
新規プロジェクトに、10億ドルもつっこんで失敗したって時点で深い闇をみる思い(笑)
話それるけど、米国のソフト開発とかメンテって、一部の超一流を除けば酷いレベルって思う。
うちの州立大学なんて未だにWin8からメールサーバーにアクセスできない。しかも、そのアナウンスは、Win8発売後しばらく経ってから。
セキュリティーを高めるためだとかで、何度もuser name &pwd入力しなくちゃいけない。でも、pwd全部同じでOK(というか異なるpwd設定不可)なら意味ないじゃん。
無駄に階層が深くて、最初の頃は目的のサイトにたどり着くまでがRPG感覚。こんなもの作ってたら開発費は膨らむは、メンテは複雑だわ。。。
遡ると (スコア:1)
COBOL以前に仕様がない。
トップが事態を把握しない。
どうしたいのか方針がない。
くらいかな?
the.ACount
仕様書がなければ (スコア:1)
兵士たちの給料管理データベースを作るためにデータベースを設計してそこに兵士の情報の登録・抹消を行うソフトウェアを作って、給料支払日に自動的に送金するソフトウェアさえアレば・・・・
#金やデータ以降は51億ドルくらいあれば足りるでしょう(適当)
ここまで運用に関するコメントが無いような? (スコア:1)
とてつもなく古いシステムを強引に運用しているわけですから、COBOLコードの外での処理が、かなりの量であるのではないかと。
COBOLのジョブを動かさずエクセルで処理してデータだけをシステムに放り込んでるとか、
処理結果を「らしく」するために、複数の変数をカンと経験(恐)に頼って手作業で調整してたりとか。
多数の現場で行われてるであろうバラバラ・その場しのぎな処理はコードを追いかけてもわかりっこないし、
これらを網羅してシステム更改なんて大変な作業、規模によっては不可能なんでしょうね。
#ウチは業務を一度なぎ倒して、まるごとシステムを更改しました。
#実体験だけど時効だからIDでいいや。
一気にやるのは無理ってもんでしょ (スコア:0)
新兵から順次移行していけばいいんじゃないの?
Re:一気にやるのは無理ってもんでしょ (スコア:1)
そのやり方だと、今生きてる人が全員死ぬまで、向こう数十年にわたって旧システムを
保守し続けるのは変わらないんで、問題は何も解決してない。旧システムの保守に加えて
新システムの開発と保守が追加されるために、むしろ問題は悪化する。
酷い訓練だなあ (スコア:0)
口でクソたれる前と後にabendと言え! 分かったかウジ虫ども!
ERPの導入でござる (スコア:0)
ここにERP入れたらすごいじゃない。
世界最大規模の給与システムだし。
情勢を考えれば、軍事産業は当面安泰。→世界の各国に導入提案できる。
生き血で潤うわけですね。
Re:ERPの導入でござる (スコア:2)
Re:ERPの導入でござる (スコア:1)
それができれば、ここまで惨くはならないわけで。
rewrite 互換性は諦めて (スコア:0)
明文化されたルールは有るんだろうから、それに基づいてリライトすれば?
今度は大規模開発や長期保守性を念頭に自作したAdaで。
組み込みシステム用という向き不向きは別として。
間違っているコードが含まれているかも知れない現行システムとの互換性はスカッと諦めて。
頭の上がらないOB・OGの恩給が絡むから、蛮勇を振るえないのだろうけど。
まあ相手は、究極の暴力の専門家だからね。
Re:rewrite 互換性は諦めて (スコア:1)
>まあ相手は、究極の暴力の専門家だからね。
COBOLのおばちゃまとCOBOLerを中傷するな! おばちゃまとCOBOLerに謝れ
Re:rewrite 互換性は諦めて (スコア:1)
軍人だからって、暴力の専門家とはいえないのでは?というのが先のコメントの意図では?
「COBOL のおばちゃま」も軍人(しかも偉い)だったけど、「暴力の専門家」って感じじゃないですし。
Re:rewrite 互換性は諦めて (スコア:1)
海軍でも、個人の射撃訓練とかってあるのですか?
なんとなくですが、そもそも火器を携行しないような気がしてました。
Re: (スコア:0, 荒らし)
コンピュータ屋は仕事をねつ造するのがうまいねw
給与体系をシンプルに作り直すのが先だろwwww
Re:rewrite 互換性は諦めて (スコア:1)
# 実際どうだか知らんが明文法より慣習法の方が法源として優先度の高いアメリカ法だし
Re:rewrite 互換性は諦めて (スコア:1)
組合との交渉ってSEという肩書きの人の仕事なの?
素直な疑問として
Re:COBOL叩きは飽きられたんじゃないの? (スコア:1)
思っていたのですが、確かにアテが外れた印象です。
Re:聞いた話だけで使ってもいないのにCOBOLを小馬鹿にする風潮 (スコア:1)
だからって、COBOLを大事にしてもいいことは無いと思いますよ。
今回みたいに資産どころか、負債になるようなコードしか残ってないところも多いようですし。