トラブルが発生する典型的な原因とその対処法(2)

前回のつづきです。前回挙げさせていただいた例は説明のため非常に単純化していたので「ホントにそんなことあるのかな?」と感じた方もいらっしゃると思いますが、ある程度システム保守のご経験ある方であれば、なーんとなく「ありがち」と感じていただけたのではないかと思います。
それでは今回は当該トラブルの回避方法について私なりの考えをお話します。

たとえば、最初の、
 ユ「商品コードが10と33の場合は、2割引きにしてください。」
とのご要件に対し、以下のようなやり取りで詳細を確認します。
 担「商品コードが10の商品と33の商品、2割引きにする理由は同じですか?」
 ユ「いいえ、商品コードが10の商品は在庫がちょっと多いので2割引します。また33の商品はキャンペーンなので2割引きとします。」

このような情報をヒアリングできれば以下のような認識を持てるはずです。
・商品コードが10の商品と33の商品では割引く理由は違っており今回はたまたま同じタイミングで割引くことになったこと
・それぞれの商品を正規価格に戻すタイミングは恐らく一致しないこと

この認識のもとプログラムの修正を行うと以下のような修正方法になるのではないのでしょうか?

このような修正方法だと
 ユ「商品コードが33の場合、現状2割引きとなっていがこれを正規の価格に戻してほしい」
となっても、修正方法は以下のようになり、今回問題になったトラブルは発生しないことになります。

さて、このような対応ができるようにするにはどのような認識を持てばいいのでしょうか? その辺りについては次回じっくりお話ししたいと思います。

(つづく)

コメント

タイトルとURLをコピーしました