ソフトウエアの改修ミスだった、って?

 
奇しくも、8月24日に更新したプログラムが2件、世間を騒がせた。

ひとつは、緊急地震速報が発信されてしまう事故。

もうひとつは、ゆうちょ銀のATMから送金できなくなってしまった。



約20倍の振幅・・・?
微妙な数値で、数値を送信する値にするとき、途中で変換ミスしてるか、
プログラムを複数の人が作っているはずだけど、
数値を符号つきで扱ってる人と、符号なしで扱ってる人がいて、
特定の組み合わせで、桁あふれ的な間違いが起こってるんでしょうね。
それがたまたま、約20倍って事でしょう。


まるるんは、たまたまその時間にFMを聞いてて、

ピロロロロ、ピロロロロ、ピロロロロ、「緊急地震速報・・・」

って流れて、吹っ飛び上がってしまいました。
関東地方の地震だと言われても、「きゃ~、え~と、え~と、落ち着かなくちゃ~~」と焦ってしまいました。


人騒がせだけど、震災の日の1週間前の予行演習がながれちゃったのか? 
などと首を傾げてしまったのでした~。



ATMの送金ができなくなってしまったのも、多分テスト不足でしょうね。



振幅のテストは、計測機から取り出した生のデータの代わりのデータを1刻みで作って、
送信データにどんな値を送るのか、ログを出力するなりして、テストしそうなものだけど・・・?


-----------------------------------------------------------------------------

以下、まるるんが勝手に呟いてますので、苦手なかたは、スルーしてくださいね~~



コンピュータに演算させたり、制御させたりするのは、
開発に携わらない人たちには、なんだか絶対的なものと思われそうだけど、
所詮、人間がやることだから、間違いはあります。バグ(虫)って奴です。


ただ、プログラムの作り方で、異常値を受け取った時や、
このケースだと、異常値を送信してしまうことになった時に、
開発中の時点で、簡単にバグに気がつけるようにできるんですが・・・

メンテナンスしつつ、長い間に複数のひとがテンでに更新してたりすると、
だんだん、振る舞いがおかしくなってしまうことがあるんですよ。


いまだに、スパゲティ・プログラムと呼ばれる、こんがらがってるプログラムを、
宥めすかしてメンテナンスしてることも、皆無ではないんですね。


景気が良いときには、5年くらいで、システムのリプレースもあります。
そうなれば、開発するためのツールも、手法も5年後にはそれなりに良くなってきてますから、
骨格部分を切り離して、汎用性や拡張性をもたせたり、
演算が主体の部分、ユーザの操作を扱う部分などなど、きれいにすっぱり分離しなおせます。

でも、景気が悪くなると、まず安くあげるのが前面にでてきてしまいます。
「今動いてるんだから」ということで、プログラムのソースファイルが1000行以上のものに、
さらに変更を加えていくという、大変な作業(まるるんだったら、確実に憂鬱になる)をやらざるを得ない。

それが、会社の方針だったら、よっぽど自信がある人でなければ、上司に意見をいえないですよ。


今回の地震誤報の件については、「修正の必要のない部分に、」
「間違った変更を入れたプログラムを」、「担当者が勝手に差し替えてしまった」と発表してます。
本当のところは・・・ どうなのかなあ???