10日〆は毎月10日に処理します。当日が休日のときは、直後の営業日に処理といったルールだと、機械的に決まります。(営業日カレンダ機能が必要となるケースもありますが)
しかし、10日前後の手薄な日などと曖昧な日のときは、手動で処理日を設定することになります。
そんなシステムで、月ごとに 日を入力を設定できるように、1がら月末日までの値が入力可能な項目を作り、処理日を設定できるようにしました。
その後、日の入力欄はカレンダ機能が欲しいと要求があり、カレンダPopUpに対応しました。
カレンダPopupは特定月だけでなく、月が移動し、年も移動ができるので、当月以外の月に変更して、入力できてしまいます。
4月の処理日の入力なのに、 カレンダーをPopup表示して、6月にカレンダーを進めて11日を指定したそうです。
プログラムは日の入力欄なので,4月11日と解釈します。
ところが、ユーザーは 6月のカレンダーで入力したので、6月の処理日を11日に指定したと解釈したようです。
特定月内の日の設定なので、他の月を入力できるのはおかしいと考えます。
ところが、顧客側の言い分は「OOPは変更に強いと言ったのは御社でしょ。カレンダは任意の月に変えられので、任意に月の処理日の設定に使えるべきでしょ。
変更に強いはずのOOPがこんな変更もできないなんて、看板に偽りありでしょ。」.....なんか変。
この誤解の問題はどこにあるのだろう.....
・日のみの入力欄でカレンダーPopupを実装したことが間違い。
・カレンダーコントロールが他の年月に移動できるのが間違い。
・そもそも日のみ入力欄にカレンダー連動させたのが間違い。
・特定日の入力でなく特定年月日の入力で設計すべき。
いずれも該当しそうですが、カレンダ機能を実装したのが間違いだと思います。
同時に、変更に強いという言葉も誤解をうみます。ペースに近い部分の変更につよいシステムは難しいでしょう。
OOPは変更に強いという誤解はなんともならないんでしょうかねぇ。