システム開発現場の間違い探しを表現するとこんな感じです。
問:左右の絵に違いはありません。
ペーパーの試験や既にバグが顕在化したシステムとは異なり、システム開発現場では間違いがあることが明らかではありません。
むしろ、「○○さんのレビューを通したからこの仕様は正しい」「カバレージを100%通したのでテスト結果は正しい」といった、先ほどの問題のような「左右の絵に違いはありません。」という情報で溢れています。
(ちなみに、先ほどの問題は、左手にデバイスを持っているかどうかの違いがあります。)
この業界では「動かなければバグ、動けば仕様」という言葉がありますが、異常終了で止まらない限り、「仕様なのかバグなのか」は誰かが判断する必要があります。
お客様から指摘される前にこれを判断するためには、「左右の絵に違いはありません。」という類の情報にも自分なりの視点で疑いの目を向ける必要があります。
このようにして開発者がバグを見つける気がなければ、お客様から指摘されるまでバグは発見されないことになります。
第三者から見ると「なぜこんな単純なバグが見つからないのか」と思えることが良くあります。
直近では、7payの件がそうでしょうか。
しかし、当事者にとっては決して「こんな単純なバグ」ではありません。お客様に実際に迷惑をかけるまで、「こんな単純なバグ」は「左右の絵に違いはありません。」です。
これを事前にバグとして見つけるためには、知識や経験が豊富で何が正しくて何が間違っているのかを自分で判断できる開発者が、システム全体を見渡せるポジションに立ち、チェック(レビューやテスト)を何重にも重ねて見つけるしかありません。
そのバグを上位者に伝え、修正する方向に持っていくコミュニケーション能力も必要になります。
私もいち開発者として、何が正しくて何が間違っているのかを自分で判断できるように、日々研鑽を重ねていきたいです。
---------------------
イラストはいらすとやの以下のページより引用しました。