十数年前、あるお客様のプロジェクトマネージャー(PM)から、こんなことを言われたことがある。今でも、ときどき思い出す言葉だ。
あなたの会社は、100点をとる——もしくは、とろうとどこまでも頑張る会社ですね。そこには価値があるし、理想としては理解できます。ですが私は、合格点をとるほうを選びたいです。
100点をとるのか、合格点をとるのか。テスト(品質)をどこまでやるか、という話だ。先に断っておくと、私はこの記事で「自分が正しい」と言いたいわけではない。状況にもよるし、どちらの考えも正しいと思える。賛否が分かれるところだ。それを承知のうえで、あのときのことと、今の自分の考えを書いてみたい。
背景は、システムテスト中に見つかった一つのバグ
この会話が交わされたのは、システムテストの最中だった。あるプログラムにバグが見つかり、それを修正し、修正箇所をテストする——その段階で、「テストをどこまでやるか」をPMと協議していた。
そのプログラムは、複雑なうえに、重要な更新機能を備えた多機能なものだった。だから私は、ほぼロジックの全通過を想定したテストケース数と、それに見合う工数をPMに申請し、許可を得ようとした。バグを直したその一点だけでなく、プログラム全体をもう一度通して確かめておきたかったのだ。
それに対するPMの答えが、冒頭の「合格点をとりたい」だった。限られた時間とコストの中で、どこに線を引くか。立場が違えば、見える景色も違う。
当時の結論は、2段階だった
では、どう折り合いをつけたか。当時の結論は、2段階で進める、というものだった。
- 第一弾:まずバグの修正箇所だけを直し、その修正箇所を通過するテストを実施。これでシステムテスト全体は止めずに先へ進める
- 第二弾:それと並行して、ロジック全通過のテストを実施。もし問題が見つかれば、そのプログラムを通過するシステムテストのケースを、あらためて流し直す
進行を止めない「合格点」と、後追いで担保する「100点」を、両立させる形だ。ありがたいことに、このやり方を許可してもらえた。ただ、正直に書いておくと、この2段階方式にも賛否はある。「そこまでのコストをかけることを許してもらえるか、もらえないか」は、現場や責任者によって変わる。いつもこの形にできるわけではない。
今も、私の中にある「全部、通したい」
あれから十数年。今でも、似たような場面に出くわすし、似たような相談を受けることもある。そのときの状況や、責任者の判断によって、結論は変わる。
それでも、私自身の基本的な考えは、当時から変わっていない。時間がどれだけかかっても、ロジックの全通過をやり直したい。理由は、はっきりしている。自分が担当した機能に、責任を持ちたいからだ。テストがやり足りないと感じると、不安で不安で仕方がなくなる。
ただ、これを強く主張しすぎると、こう言われることもある。「それは自分よがりだ」「コストがいくらあっても足りない」と。そのお叱りも、もっともだ。だから、折り合いをつけることになる。どこまで歩み寄るか——そこはいつも、悩ましい。
「バグが出たら、そのとき対処する」と言われたら
十分なテストを実施しないまま、責任者から「バグが出たら、そのときに対処すればいい」と指示されることもある。もちろん、その指示には従う。
だが、ここで私が大事にしていることがある。その判断に自分が同意したのなら、責任者だけに責任を押し付けない、ということだ。「あの人がそう言ったから」で終わらせない。その判断に至った経緯や理由、そして判断そのものを、自分の責任として引き受ける。そのうえで、もしバグが出たときに備え、その後の作業にきちんと対処していく。
言うほど簡単なことではない。難しい判断だと、自分でも思う。以前、自分の落ち度について書いた記事でも触れたが、品質と責任は、いつも一緒に考えないといけないものだと思っている。
あなたなら、どう判断しますか
100点をとるのか、合格点をとるのか。どこまでテストをやり、どこで線を引くか。そして、その判断の責任を、どう引き受けるか。これは、SAPやテストに限った話ではないと思う。どんな仕事にも、品質とコストの折り合いをつける場面はあるはずだ。
みなさんは、こういうとき、どのように判断していますか。あるいは、判断するときに大事にしていることがあれば、ぜひ聞かせてほしい。正解が一つに決まらない問いだからこそ、いろんな人の考えを知りたいと思っている。
同じような現場に立つ方の、何かのヒントになれば嬉しい。記事へのご感想やご意見があれば、お問い合わせフォームからお寄せいただけると励みになる。
(このカテゴリでは、SAP運用保守の現場で実際に起きたこと・考えたことをお届けしています。)

コメント