システム開発の現場、それ本当にバグってますか?

技術と人のあいだ|大阪のシステム開発会社ヨドックの技術コラム

なにげなく使われる「バグ」

「システムがおかしい。バグっているのでは?」

システムを利用しているお客様から、こんな言葉を聞くとシステム保守担当に緊張が走ります。「バグ」という単語も、もともと専門用語だったものがゲームの普及などで一般にも浸透しているようです。最近では「民主主義のバグ」などという表現がニュース記事で使われることもあります。

システム開発やシステム保守の現場で使われる、似た用語は多々ありますが、普段からはっきりとした違いを意識できている方は意外と少ないかもしれません。

用語の違い

「バグ」は、プログラムの設計や実装に誤りがあり、想定と異なる動作をする状態を指します。たとえば計算ロジックのミスにより、正しい結果が出ないようなケースです。

「不具合」は、もう少し広い概念です。システムの動作が仕様どおりでない、あるいは期待と異なる状態を広く指します。原因がプログラムミスとは限らず、設定ミスや環境差異、データの問題なども含まれます。

「障害」は、システムが業務として利用できない、または大きな影響が出ている状態を表す言葉です。サーバ停止やログイン不能など、業務が止まるレベルの問題で使われることが多いでしょう。

「エラー」は、システムが何らかの異常を検知した状態を指します。エラーメッセージが表示される場合もあれば、ログにだけ記録される場合もあります。ただしエラーが出たからといって、必ずしもバグとは限りません。

このように整理してみると、お客様の言う「バグ」という一言の中に、実はいくつもの解釈が考えられます。
システム開発担当者としては、聞き取った内容を咀嚼しなおして、正確な用語で認識する必要があります。

視点のギャップ

プログラムを習いだして日が浅いエンジニアや、日々システム開発を主に担当するエンジニアは、「エラー」や「例外」に過敏に反応し、それを排除するためにどうしたらよいかに注力しがちです。
しかし、お客様が求めているのは必ずしもそこではありません。

例えば、システム運用中にトラブルが起きたとき、お客様が求めているのは「障害」から復旧して出荷業務を止めない事であったり、サイトでの決済を正常化して機会損失を減らす事かもしれません。
1週間かかって100点の対応をするよりも、1時間以内に60点の対応をする事が評価される場合もあるでしょう。(大阪のお客様はせっかちな方が多いですね・・・)

エンジニアが目指す「原因を完全に解明すること」と、ユーザーが求める「業務を止めないこと」は、必ずしも同じではないのです。

大阪でシステム開発に関わっていると、こうした認識のズレに出会う場面は少なくありません。システムを使う人と作る人では、同じ出来事でも見え方が変わります。
時には細かい言葉の違いに注意してみることで気づけることがありそうです。

関連記事

  

※本コラム『技術と人のあいだ』では、日々の業務で、お客様への提案や若手エンジニアへの説明をする機会が多くあります。大阪でシステム開発の仕事に向き合う日々の中で、限られた時間では伝えきれないことや、「これも知っておいてほしいな」「前にも同じ話をしたな」と感じることを、ここに少しずつ書き留めていきます。

お問い合わせ

CONTACT

業務システムに関するお困りごと、WEBサイトの制作など、
まずはお気軽にお問い合わせください。

会員サイト
CONTACT
06-6305-2278
採用サイトはこちらRECRUIT