僕が経験した
「バグ」のエピソードをご紹介します!

はじめまして、くつろぎです。システムエンジニア(SE)をやっています。
さて、SEにとって最も忌むべきもは「バグ」です。
プログラムは設計された仕様書通りに作れば良いのですが、人の手で作られるものである以上、どうしたってミスから逃れることは出来ません。

バグ (英: bug) とは、英語で「虫」の意である。コンピューター業界ではプログラムの誤りや欠陥を表す用語として使われる。
ソフトウェア・ハードウェア開発における契約文書など、法的な文書ではバグのことを「瑕疵」(かし)と記述する。原因や責任の所在などが不明なものを特定性の低い表現の「不具合」と呼ぶことがある。また、セキュリティ面に関わる脆弱性や欠陥は「セキュリティホール」などと呼ばれることもあり、バグはこれらの原因のひとつになりうる。

Wikipedia「バグ」より引用

小さなバグであればさほど問題になることはありませんが、中には致命的と言わざるを得ない、大クレームにも繋がるとんでもないバグも存在します。
今回は、僕が経験した「バグ」のエピソードをご紹介します!

バックアップデータ全削除未遂事件

以前働いていた会社に入社して3年目。すでに本番運用していたプロジェクトの保守メンバーに就いていました。
運用開始から何日かで見つかったバグへの対応は、「バックアップからデータを復元し、修正したプログラムを流す」という簡単な仕事でしたが、ふと「どれくらいの頻度でバックアップを取ってるんだっけ?」と気になりました。

何とはなしにバックアッププログラムを見てみると、「1月1日のバックアップ時に全データを削除する」という謎の記載があったのです。
慌てて上司に確認したところ、前任者のうっかりミスで削除すべき実行コマンドが削除されないままになっていたようです。
急いでそのコードを削除して、難を逃れることができました。
気づくのがあと1ヶ月遅ければそのコードが実行されて、大惨事になっていたはずです。

給与計算未払い事件

勤怠管理・給与計算のプロジェクトに参加した時のことです。
7~15時、15~22時、22~翌7時の時間帯で時給が変わるという珍しいシステムで、勤務時間を算出するのに複雑な計算をしていました。
ベテラン開発者によって、その複雑な計算プログラムは仕様通りに出来ていたのですが、なんと次のステップである、計算結果をプログラムに取り込むというフローが抜けていたのです。
その結果、納品後に、給与の未払いというとんでもない事態に発展してしまいました。
ベテラン開発者のうっかりミス。他の人によるダブルチェック漏れでした。
データのリカバリと徹底的な検証のやり直しで、チーム全員、2ヶ月以上必死で対応することになりました。

少しでもバグを無くすためには?

僕個人の意見としては、「バグの無いプログラムは無い」と言い切ってもいいくらい、バグを完全に潰すのは難しいことだと思っています。それをどこまで減らせるか、というのがSEの腕の見せ所です。
バグ対策として挙げられるのは、「集中力が切れる夕方以降には検証をしない」と「出来れば2人以上で検証を行う」の2点だと思っています。

【PR】


さいたまのホームページ制作運用定額プラン2x2(ツーバイツー)のご案内


長尺動画制作パッケージのご案内│新浦和映像