見出し画像

うるう年とバグの思い出

免許センターでシステム障害が発生したという、ニュースを見た。
内容的には、システムが「うるう日」に対応していないためにエラーが発生した、ということのようだった。


昔々、専門学校でプログラミングを勉強した際には、日付の入力を促すシステムには万年時計のような計算プログラムを入れ込んで、入力された日付が本当に正しいのかを確認するようにするということを学んでいた。


そのため、このニュースを見た時には「なんで?」と思ったし、素人が作ったのかなとか、テストを端折ったのかなとか、色々と考えてしまった。
また同時に、開発者がこのニュースを見て絶望の淵に立たされているかと思うと、気の毒に思った。

実は過去に仕事でプログラムミングをしていた時に、工場で実際に走らせたら半分の生産量で工場が止まってしまい、工場の隅で震えていた思い出がある。
バグ混入の要因は、仕様書をきちんと理解できないままプログラムをでっち上げてしまい、しかもルーチン毎に上司のチェックが入る筈だったのに、ルーチンの仕上げがギリギリアウトのタイミングだったので、バグがチェックをすり抜けてしまっていたことだった。

現場で当時の上司がPCを開き、数時間掛けてバグを修正して工場は無事に再稼働した。

当時はPCのOSと言えばグラフィカルなWindows……ではなくてテキストベースのMS-DOSで、画面の描画はテキストとグラフィクスをデザインして描画していたし、ネットワークも複数の規格が入り混じっていたし、データベースはソフトハウスの独自設計のものが多く、このシステムもその例に漏れなかった。
それで、データベースの位置情報を指す変数の計算が間違っていて、全体数の半分で生産終了と判断するようになってしまっていた。


今回のニュースで発生したバグも、納期の関係でチェックをすり抜けて、しかも何年も不具合なく動作していたので安心していたけれども、水面下に潜んでいたバグが唐突に発現した、ということだと思う。

忘れた頃に出るバグは、本当に怖い。

開発の時のドキュメントが行方不明になっているとか、当時の開発環境を再現できないとか、システムの詳細を知っている人が既に会社にいないとか、そんなこともある。

つまりは、忘れた頃に発現するバグは、本当に対処不能である可能性も出てくる。



その場合は、Oh……ご愁傷さま……としか言うことが出来ない。(;´∀`)



この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?