【日常感覚をプログラムに反映する事(3)】

こんにちは。テクニカルマネージャの杉野です。

日常感覚をプログラムに反映すること。今回のテーマは

「正直者は馬鹿を見る?」

です。
次のお話も実際のシステム開発現場で起きた体験談。まだ私が新入社員で研修を行っていたころ、OJTということで先輩方の指導のもと某Webサイト構築のプロジェクトに携わった時のことでした。まだ経験の浅い私は先輩方の実装からいろいろと学び取ることを目的として、テスト担当を任されました。日々、先輩方の書いた設計仕様を元にテスト内容を決めてテストを実施する作業を続けていました。そして不具合を見つけては原因追求して報告を繰り返していました。

そのWebサイトには「問い合わせ機能」が盛り込まれることになっていました。「問い合わせページ」で入力フォームに文章を入力し「送信」ボタンを押すとメールが送信されるという機能です。企業のサイトなどでよく見かける、あれですね。この「問い合わせ機能」をテストしている時にとある不具合にぶつかりました。不具合内容は次の通り。

「送信ボタンを押しても、メールが送信されない」

というわけで原因をつきとめる作業に入ります。先輩の書いたコードを1行ずつ実行して状態を確認しながら、何が悪いのかを確認。実行していくうちに入力フォームの内容をメール送信用のフォーマットに整形して、いざメールサーバに向かってメールを送信する処理のところに行き着きました。原因はなんだろう、、、しかし、ここで私は先輩方に意外な報告をすることになります。

「実装の内容見る限り、正しい動きをしています。」

確かに送信ボタンを押してもメールは届かないのに、正しいという報告。先輩方は怪訝な顔。理由を聞かれたので実演してみせます。私の席をかこい状況を見ていた先輩方は落胆を通りこして笑っておられました。何故か?それは送信処理を行っている部分の関数名でした。

「maybeSend」・・・「送る、かもしれない」

“かもしれない” ということなので送れないことも想定した動作ということです。「コードが意図通りに動いているか?」と問われるならば「意図通りである」です。(もちろん、使う人が期待する動作ではないのでテストとして期待値には含めませんでしたが。)

さて、いかがでしょうか?「なんともひどい話だな」「クオリティが低いな」そのように感じた方も多いかもしれません。私も最初はそう思いました。しかしこの「mwybeSend」を実装した先輩を私は憎めなくなります。それどころか、今でも尊敬する立派なシステムエンジニアです。私の師匠と言える存在です。

憎めなくなった、はたまた尊敬するようにまでなった理由とは?続きは次回書きたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です