ソフトウェア技術者のためのバグ百科事典(16)青海青梅問題もビックリ、勘違いが原因のバグ:山浦恒央の“くみこみ”な話(137)(3/3 ページ)
ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第16回は、誰もが経験する「勘違い」に起因するバグを取り上げます。たかが勘違いといっても大事件につながる可能性もあるので要注意!
5.バグ発生の兆候
勘違いは全てのフェーズで発生するため、特定のフェーズに特化したバグではありませんが、以下に注意しましょう。
5.1 常に疑う
人の話を聞いていて、「怪しい」と思ったときは、勘違いかもしれません。即座に質問しましょう。特に、「普通は……」「これが当たり前」というワードが出ると危険です。
5.2 お互いの意見が違うとき
お互いの意見が異なる場合は、非常に注意してください。どちらかが強い口調で言ってしまうと、間違ったまま最後まで行く可能性があります。冷静にドキュメントや過去のメールを見ながら話しましょう。
5.3 変更箇所がある
変更箇所は当初の記憶のまま話している可能性があります。また、派生品の場合も、機種ごとの差分を混同している可能性があるでしょう。担当者が古い話をし始めたら要注意です。
6.対策
勘違いの対策は非常に困難ですが、以下を見直してみましょう。
6.1 よく話し合う
勘違いを防ぐには、人とのコミュニケーションが非常に大切です。ちょっとした会話からその人の勘違いが見つかるかもしれません。テレワークが増えている昨今、しっかりコミュニケーションをとることは難しいでしょうが、自分なりにできることから始めましょう。
6.2 根拠ベースで話をする
お互いの意見がかみ合わない場合は、必ず根拠を基に話をしましょう。例えば、ドキュメントや過去のメールです。しっかり見ながら話し合いましょう。
6.3 リフレッシュも忘れずに
自分の書いたコードでも、数日たつと他人のコードに見えるように、勘違いを起こしたとしても、数日後に見直すと、勘違いに気付くかもしれません。多忙な状態でも、休息をしっかり取ると勘違いに気付きます。
7.まとめ
日常生活でも勘違いが起こるように、ソフトウェアの開発でも、勘違いが原因で致命的なバグを作る場合が少なくありません。
今回は全てのバグの根源となる「勘違い」が原因のバグを紹介しました。ケーススタディーを見て、「こんなことは起きない」と思われた人もたくさんいるでしょう。実際に勘違いをすると、冷静な人からは考えられないことを起こします。皆さんもご注意ください。
山浦先生の新刊「ソフトウェア技術者のためのバグ検出テキスト」が発売!
本シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の新刊「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から発売されました。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しました。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「山浦恒央の“くみこみ”な話」バックナンバー
- ソフトウェア技術者のためのバグ百科事典(15)最大の試練、仕様変更で起きるバグ
ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第15回は、ソフトウェア開発で最も大きくて深刻な問題が発生する原因であり、エンジニアには厳しい試練となる、仕様変更で発生するバグを取り上げます。 - ソフトウェア技術者のためのバグ百科事典(14)地獄の作業と化すコーディングのバグ
ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第14回は、プログラマーの花形的なプロセスであるコーディングのバグを取り上げます。 - ソフトウェア技術者のためのバグ百科事典(13)デバッガとビルド構成のバグ
ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第13回は、「デバッガの使用方法」と「ビルド構成に関するバグ」を取り上げます。 - ソフトウェア技術者のためのバグ百科事典(12)デスマーチを呼ぶ処理時間のバグ
ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第12回は、開発のデスマーチを呼び起こしかねない、処理時間のバグを取り上げます。 - ソフトウェア技術者のためのバグ百科事典(11)「数値演算」のバグは奥が深い
ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第11回は、意外と奥が深い、数値演算のバグを取り上げます。