パスワードを忘れた? アカウント作成
9451548 story
アメリカ合衆国

COBOLで書かれた米国防総省の給与システム700万行、実質的に更新不可能 129

ストーリー by headless
困難 部門より
米軍では兵士に正しく給与が支払われないことがしばしばあるという。ロイターの記事によれば、古い給与・会計システムが原因らしい(Reuters Nextの記事本家/.)。

米国防総省の給与システムはCOBOLで、700万行に及ぶコードの大半は1960年代に書かれたものだという。コードは数十年前から更新されておらず、エラーも多発するが、古くなるにつれて維持が困難になっているそうだ。さらに、ドキュメントはかなり前に失われており、実質的に更新は不可能とのこと。国防総省では10億ドル以上かけて新しいシステムを導入しようとしたが、これも失敗に終わっているとのことだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • COBOLが原因ではない (スコア:5, すばらしい洞察)

    by iwakuralain (33086) on 2013年07月14日 23時12分 (#2421319)

    仕様書やドキュメントがないからメンテも移行も出来ないと受け取れる。
    これは別の言語に置き換えてもあんまし変わらない気もするな~

    700万行にも及ぶ仕様書もドキュメントも無い○○言語で書かれた給与システムのメンテもしくは新システム導入

    なわけだが、
    実際問題こんなお題のモノは炎上どころじゃないプロジェクトになりそうな予感・・・

    • by Anonymous Coward on 2013年07月15日 10時19分 (#2421462)

      入力・出力・状態遷移の動作仕様が明確になっていれば、その動作仕様の範囲内で実装方法を自由に変えられる(修正できる)。

      一方、動作仕様が明確になっていないと、ソースコードの自身が動作仕様になっていく。つまり、ソースコードの改変は動作仕様の変更を意味するようになる。かくして、700万行の動作仕様のプログラムが生まれたというわけだ。

      すべての動作仕様を理解する必要はないとは言え、そう考えると正気の沙汰ではない分量ではある。

      親コメント
  • 入力はなんだ?紙テープ?恐ろしい...

    • ・ハードウェアが60年代のものとは書かれていない
      ・コードの大半が60年代に書かれた、ということは何割かは更新されている。

      と考えると、現在も紙テープやパンチカードで運用されているわけではないだろう。更新されたコードは一部の給与体系の変更と、入出力関係ではないか。

      既存のメディアに記録していたデータは、メインフレームを更新した時にベンダーがコンバートしているだろう。(納入要件にコンバートを含めているはず)

      親コメント
  • by Anonymous Coward on 2013年07月14日 16時34分 (#2421165)

    COBOLより、最後の一行が気になる。
    米軍は、二度とコンピュータに落とし込めないような複雑怪奇な給与体系になってるの?

    # リンク先は読んでません

    • by Anonymous Coward on 2013年07月14日 17時33分 (#2421193)

      傷病手当の扱いが複雑みたいですね。記事に出てくるのは
      イラクとアフガンに行った現在30歳。
      神経損傷、慢性の痛み、そして腰の負傷に起因する外傷性脳損傷、
      重度の心的外傷後ストレス障害(PTSD)、異常な眼球運動
      等がある模様。

      #自動翻訳かけただけだから少々間違ってるかも

      親コメント
      • by Anonymous Coward on 2013年07月14日 19時15分 (#2421246)
        おそらく、医療費の包括払いに関する部分じゃないかな。ようするに医療費の支払いに関して、医療システム側は処置と薬剤、材料を積算した請求書を回すだけの出来高払いから、SNOMED CTと診断群分類コードによる、傷病類型と副傷病の組み合わせによる包括払いに移行しているのだけど、米軍の給与体系システムが追随出来ておらずに、兵士や退役傷病軍人がかかった医療費を請求しても審査に時間がかかって棚ざらしにされてると
        親コメント
      • by Anonymous Coward

        追記。
        源泉徴収額が不当だと言っているので、
        治療費を兵士負担で計算しているのかもしれない。

        もしくは米国の税体系そのものの変化に対応していないのかも。
        半世紀前ですよ。ベトナム戦争なんか彼が生まれるずっと前の話だ。

    • そもそも、現在のシステムが正しい給料を出しているのかどうか、誰がどうやって確認したんでしょうか?

      あるいは、確認すると、膨大な(10億ドル以上の)未支払い給料が明らかになるため、臭いものに蓋で更新できないとか。
      (軍上層部の(バグによる)給料もらいすぎが判明することが予見され、抵抗勢力になっている、ということもありえそう)

      親コメント
      • いや、「現行システムで計算した結果」が「正しい」給与体系なんだよ。つまり、本当に「バグではなく仕様」の世界。
        大昔のシステムだから、「コンピュータの結果が間違ってる訳が無い」で納得させちゃったら、もう仕様に組み入れるしかないよね?

        で、結果、新システムの仕様要件に「現行システムと同じ結果を出す事」ってのが入ってるんじゃない?

        でもって、リファクタリングして整理したら、「再現しないバグ」が出て、結果が一致せず、結果を一致させるには、現行システムと同じコードを丸抱えするしかないって状況なんじゃ?

        --
        -- Buy It When You Found It --
        親コメント
      •  さすがに、現役世代の分かりやすいミスは見つけれるとおもいますけどね。
         身近な給与システムの場合でも、「この人はこの契約で」というエライ人の一言で、異例パターンが生まれます。 このご時勢ですから、制度改悪もありますが、激変緩和調整を生んで、よくわからなくなってしまうわけです。

         この軍のシステムも一人一人理論値を別システムで計算してチェックしていくのがスジでしょうけど、制度が複雑すぎでできないのでしょうね。
        親コメント
      • 実際、人事給与システムの類って規定通りの数字出していないことがあるんですよね。条件によって微増微減程度ですが。
        更新で下がるようなことがあれば、もらう側はだいたい黙っちゃいないでしょう。逆も然りで、もらう側が強いのか、払う側が強いのかは組織によるのかな...

        親コメント
      • by Anonymous Coward

        まあ人民解放軍に比べれば可愛いモンだろうけど。
        リストラ以前は、ソロバンで1000万人単位に給料を支払っていたわけだから、中央統制など絶対不可能。
        コンピュータネットワーク化以降、中央集権に移行出来たのか、出来なかったのか。
        仮にも米国防総省が統括出来ていた米軍とは違って、地方軍閥化著しい中共は、どんな暗闘が有ったのやら、或いはやっているのやら。
        ソ連もピーク時は同規模・同難易度の問題を抱えていただろうが、解体ロシア移行時に、総更新しただろうし、寧ろ地方軍閥問題より組織毎に独立化されているだろうし。

    • by Anonymous Coward on 2013年07月14日 21時50分 (#2421295)

      > 10億ドル以上かけて…中略…失敗に終わっている
      特許庁の失敗損害55億円の20倍弱ですか。うわぁ。

      親コメント
    • by Anonymous Coward

      だよねぇ。
      そんなに難しいなら給与体系を見直そうぜ。

  • by firewheel (31280) on 2013年07月14日 16時50分 (#2421177)

    と笑えない日本の会社やお役所って、一体どれくらいあるんだろう?

  • by Anonymous Coward on 2013年07月14日 19時27分 (#2421249)

    『700万行に及ぶコードの大半は1960年代に書かれたもの』でメンテ可能な言語ってあるんだろうか。
    ドキュメントがある程度有ろうが無かろうが無理っぽい気がする。

    # すっごいちゃんとしたドキュメント(仕様書)が残ってても、もう新造した方が楽なんじゃ。
    # そこまでデカいプログラム見たこと無いので作業見積りが想像もつかない。

  • by Anonymous Coward on 2013年07月15日 1時55分 (#2421376)

    果たして、この給与体系を全て記述した文書があって、かつ把握している人物がいるのだろうか?(仕様書以前の問題として)
    新規プロジェクトに、10億ドルもつっこんで失敗したって時点で深い闇をみる思い(笑) 

    話それるけど、米国のソフト開発とかメンテって、一部の超一流を除けば酷いレベルって思う。
    うちの州立大学なんて未だにWin8からメールサーバーにアクセスできない。しかも、そのアナウンスは、Win8発売後しばらく経ってから。
    セキュリティーを高めるためだとかで、何度もuser name &pwd入力しなくちゃいけない。でも、pwd全部同じでOK(というか異なるpwd設定不可)なら意味ないじゃん。
    無駄に階層が深くて、最初の頃は目的のサイトにたどり着くまでがRPG感覚。こんなもの作ってたら開発費は膨らむは、メンテは複雑だわ。。。

  • by the.ACount (31144) on 2013年07月15日 13時23分 (#2421540)

    COBOL以前に仕様がない。
    トップが事態を把握しない。
    どうしたいのか方針がない。
    くらいかな?

    --
    the.ACount
  • by green_12512 (29059) on 2013年07月15日 14時40分 (#2421567)
    一から作りなおせばいいじゃないか

    兵士たちの給料管理データベースを作るためにデータベースを設計してそこに兵士の情報の登録・抹消を行うソフトウェアを作って、給料支払日に自動的に送金するソフトウェアさえアレば・・・・

    #金やデータ以降は51億ドルくらいあれば足りるでしょう(適当)
  • とてつもなく古いシステムを強引に運用しているわけですから、COBOLコードの外での処理が、かなりの量であるのではないかと。

    COBOLのジョブを動かさずエクセルで処理してデータだけをシステムに放り込んでるとか、
    処理結果を「らしく」するために、複数の変数をカンと経験(恐)に頼って手作業で調整してたりとか。

    多数の現場で行われてるであろうバラバラ・その場しのぎな処理はコードを追いかけてもわかりっこないし、
    これらを網羅してシステム更改なんて大変な作業、規模によっては不可能なんでしょうね。

    #ウチは業務を一度なぎ倒して、まるごとシステムを更改しました。
    #実体験だけど時効だからIDでいいや。

  • by Anonymous Coward on 2013年07月14日 16時51分 (#2421178)

    新兵から順次移行していけばいいんじゃないの?

  • by Anonymous Coward on 2013年07月14日 16時57分 (#2421181)

    ここにERP入れたらすごいじゃない。

    世界最大規模の給与システムだし。
    情勢を考えれば、軍事産業は当面安泰。→世界の各国に導入提案できる。

    生き血で潤うわけですね。

  • by Anonymous Coward on 2013年07月14日 17時09分 (#2421186)

    明文化されたルールは有るんだろうから、それに基づいてリライトすれば?
    今度は大規模開発や長期保守性を念頭に自作したAdaで。
    組み込みシステム用という向き不向きは別として。
    間違っているコードが含まれているかも知れない現行システムとの互換性はスカッと諦めて。
    頭の上がらないOB・OGの恩給が絡むから、蛮勇を振るえないのだろうけど。
    まあ相手は、究極の暴力の専門家だからね。

typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...