パスワードを忘れた? アカウント作成
13821533 journal
日記

maiaの日記: 毎月勤労統計の問題はCOBOLプログラムのミス 113

日記 by maia

厚生労働省の「毎月勤労統計」に、2004年から2017年まで誤りがあったということで問題になっている(朝日の記事特別監察委員会の調査報告書)。統計の信頼性は重大な問題だが、経緯は少々複雑で、手続き上の問題もさることながら、初歩的な計算上のミスがあった(池田信夫氏の勤労統計問題の原因は「COBOLプログラムのバグ」)。2004年に中小企業の抽出率を上げるのと同時に東京都の大企業(従業員500人以上)だけ抽出調査にしたが(大企業は本来全数調査)、システム更改時に、抽出した調査結果を復元処理するのを忘れていたという。1/3を抽出したら、3倍に復元しないと全国平均がずれてしまう。統計調査に係るシステムの言語はCOBOLで、改修は外注ではなく内部で行っているが、「システム担当係で COBOL を扱える者は1人又は2人に過ぎなかった」。バグがあっても、ダブルチェックが働かなかった。そして2018年にサンプルの入替方法の変更にともなう改修に併せ、復元処理を入れた。14年間気づかなかったバグに、システム更改時に気づいて(黙って)修正したようだ。その後、統計数値の上振れについて指摘された。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by jizou (5538) on 2019年01月23日 22時48分 (#3553407) 日記

    集計結果があっているかぐらい計算しようよ....

    COBOLのせいじゃない。

    • だから、その集計方法の「仕様」が、おそらくは表沙汰に出来ない理由で、何度も変った結果がコレなんですよ
      中の人がどんなに優秀でも、最早、中の人の誰も正しい方法がナニか判んなくなってるパターン

      親コメント
    • by Anonymous Coward

      検算する、あるいは前年度データで試してみればすぐ分かるよね…。
      プログラムにはバグがつきものなのだから、試験過程で発見できないプロセスの方に問題がある。
      COBOLだろうがJavaだろうが、Pythonだろうが違いはないよな。

  • by NOBAX (21937) on 2019年01月24日 19時39分 (#3554078)
    新潟県警サーバー乗っ取り事件 [security.srad.jp]と同じ構図で、
    コンピューターに責任を押し付けて、内部の職員の責任を有耶無耶にしようと
    企んでいるという陰謀の臭いがプンプンする
    • by Anonymous Coward

      実際そうなんじゃないの?

      ファイル共有ソフトを職務中に動かしてた事件なんかも、
      問題のパソコンを紛失したり、手違いにより初期化されてしまったり、有耶無耶に~

  • by tori_sanpo (39645) on 2019年01月23日 20時48分 (#3553315) 日記

    やはり、儂の出番 [srad.jp]じゃのぅ

  • 今時内部ツールとはいえコードレビュー無しとか、平成も終わるというのにどこの昭和ですか。

    --
    ほえほえ
    • コードレビューで見つけられるのは、
      処理方式や書き方が難解(属人化してるとか、
      処理の流れが読みづらくバクを埋め込みやすくなっているとか)
      となっていないかであって、

      計算間違い(プログラムのバグなのか、実装しようとした処理自体が
      目的と合っていなかったか)は、テスト(前者なら単体テストで、
      後者ならシステムテスト)で見つけるものではないでしょうか?

      ソースコードが読めない人ではテストを実施できないというわけではないでしょうし、
      テスト仕様書がコードを読める人でないと書けなかったとしても、
      さすがにそれは日本語で書かれているだろうし、
      何を修正するかは実装者以外も把握しているだろうから、
      COBOLが読めない人でも、内容が妥当かのチェックはできると思うのですが...

      COBOLが読める人が1~2人しかいないというより、仕様を把握している人が少ないのが原因だと
      思うのですが、どうでしょう?

      # 昭和というより、テストしないでリリースする某ゲームry

      親コメント
      • 実際の所は、情報が不足しているのでどうなのかは全くわかりませんですよ。というのを前提として。

        私がコードレビューの話を持ち出したのは、アゴラの記事にある

        データに抽出率逆数をかける復元をシステム担当者が忘れたバグに尽きるのだ。これはCOBOLで書かれた特殊なプログラムなので高齢者しか読めず、そのミスがチェックできないので

        という部分から。内容のチェックすら誰もしてないのが見て取れるからです。

        でまぁ、一般的な開発現場における話は、お書きになったとおりです。COBOLは単体テストが極めてやりにくそうでありますが…。原因は、正直これだけでは判断つかないですが、根本は人材不足、労働管理能力不足かなぁとはにらんでおります。おそらく、設計能力のある人がいたら、さっさと書き直せるレベルじゃないのかなぁと。

        --
        ほえほえ
        親コメント
      • by Anonymous Coward

        もっと言えば、妥当な内容を保つインセンティブが何もないんだろ

    • by Takahiro_Chou (21972) on 2019年01月24日 22時42分 (#3554181) 日記

      コードレビューをしてない事にしないと、プログラムのせいに出来ないじゃないですか!!

      親コメント
    • by Anonymous Coward

      お役所の体制が空洞化してるってことなんじゃないかなあ。「役人がCOBOLやRを学ぶべき」という結論にはならんだろ。
      何の決裁機構も文書化もないまま本番系を漫然と改変し続け、作業者から大臣に至るまで誰も指摘せずできずできることを求められもしなかった、そういうことだと思う。
      厚生労働省ですらアマチュアが椅子に座って数字を送り出していれば問題とされないというレベルまで中央政府が崩壊してるんだよ。

    • by Anonymous Coward

      中堅企業でさえ3割がひとり情シスなのに。コードレビューだけ外注に出すか。

  • by Anonymous Coward on 2019年01月24日 19時05分 (#3554047)

    ちょうど今日
    基本情報技術者試験から COBOL の問題が廃止される [twitter.com]ことが発表 [ipa.go.jp]されたところ。
    代わりは Python らしいですよ。

    • by Anonymous Coward

      専門家=プロすら扱わない(扱えない)システムを、素人がメンテしてるんじゃ仕方がない。

  • この情報の真偽はともかくとして、 メインフレーム系情報システム部門はリストラされちゃって、移行コストが高い業務だけ少数で維持というのは、ここ数十年の流れではありがちなお話。
     以前は情報システム部門がIT系人材を育てていたんだけど、その機能がなくなって、こういった仕様変更時のリスク認識とか組織内で見えなくなっちゃったというのはあるでしょうね。
  • 普通、集計ごとサンプル数は変動するだろうし、報告された人数で平均は出すだろう。
    仮に1/3に減っても正しい抽出なら平均は変わらないよね。
    だいたい1/3に減った瞬間ガクッて落ちる集計方法なら、大問題になるでしょうに。
  • 東京都内の会社は数が多くて全数調査が困難なので抽出調査とすることになった
    →抽出調査する場合は抽出率逆数という係数をかける処理が必要になる
    →その係数をかける処理が抜けてるのにクロスチェックができなくて気が付きませんでした
    →クロスチェックできてなかったのはCOBOL技術者が少ないせいです
    →つまり、扱えるものの少ないレガシーシステム使ってるのが根本的な問題である

    #なんだよ、やっぱりCOBOLが元凶じゃねぇか、という感想しか出てこない

    --
    しもべは投稿を求める →スッポン放送局がくいつく →バンブラの新作が発売される
  • by Anonymous Coward on 2019年01月23日 20時20分 (#3553293)

    多くの人の目にとまると思うし
    数字を操作しにくくなるので不正の抑止につながると思う

    でもこういうことを書くとソースクレクレコジキがーと言われるんだろうな

  • by Anonymous Coward on 2019年01月24日 18時46分 (#3554030)

    ふーむ。不適切な部分がないプログラムなんて存在するんだろうか?

  • by Anonymous Coward on 2019年01月24日 19時07分 (#3554050)

    意図としては都合のいい数字を作ろうとしてたんでしょ?
    事実は無視して。

    • by Anonymous Coward

      ですね。
      全数調査しないで誤魔化したという事実は変わらない
      おまけでプログラムにもミスがあったというだけで
      ソフトウェアに手を加えるほどの組織的犯行だったというだけで

    • by Anonymous Coward

      むしろ微増するでしょうね
      一般に大企業の方が給与水準が高いですから

      • by Anonymous Coward

        公務員の給料算出時の参考データとして使われるとしたら…

  • by Anonymous Coward on 2019年01月24日 19時46分 (#3554081)

    調査してないのにやたら簡単に昔の正しい数字が出てくるからどうなってんだろと不思議だったわ
    統計処理の計算がすっぽ抜けてるからそれをやれば本来の調査と同じ水準のデータにはなるのね

  • by Anonymous Coward on 2019年01月24日 20時14分 (#3554095)

    こういうときのために真理省を作っておけば...

  • by Anonymous Coward on 2019年01月24日 20時18分 (#3554096)

    PHPはPHPであるというだけで理由もなく叩くくせに
    https://developers.srad.jp/comment/3553273 [developers.srad.jp]

    • by Anonymous Coward

      JSON氏ね

    • by Anonymous Coward

      私を含め、COBOL一本でメシを食い家を建て家族を養ってきた者にとって
      好きも嫌いもない
      COBOLは人生そのものなのだ

  • 実際にはぜんぜん賃金伸びてないし実質マイナスなのに偽造データが人事院勧告の資料にされてるはずだから査定しなおさないとおかしいのでは?

typodupeerror

犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー

読み込み中...