ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

試して考えて正しい条件にたどり着く

既存のシステムに、ユーザーが3部署に分かれ、時期により3段階で表示する内容を変更するシステムがあります。

システムへのログイン画面に3部署の選択肢があり、どの部署を選んでもログインはできます。
選んだ選択肢によって、表示できる内容は異なっています。

検索機能があり、ログイン画面で選んだ部署以外のデータを対象に検索して表示することができます。
部署をまたいですべての部署のデータを対象に検索して表示することもできます。

f:id:AJYA:20170324154834j:plain
photo credit: ndpa / s. lundeen, archivist 28 the ON! System via photopin (license)

条件を満たす正しい仕様は?

今回、3部署中の1部署で表示する特定のデータが、「3段階目のみで表示する」という条件が追加されました。

当初は、時期が1段階目と2段階目であり、ログイン画面で選んだ部署が該当の1部署だったら表示しないという条件であればいいかと実装しました。
実装後、他の部署を選んで検索すると表示されず、条件が正しくないことに気がつきました。

それならと、選んだ部署を特定して検索すればいいと考え、実装しましたが、よく考えると、部署をまたいですべての部署のデータを対象に検索する場合を考慮していません。

考えをあらためて、ログインした部署や選んだ部署に関係なく、時期が1段階目と2段階目であれば、1部署の特定のデータを表示しないという仕様にしました。
この仕様なら間違いないはずです。

システムに上記条件を実装して、テストを行ったところ、想定どおりに表示されるようになりました。


考えて実装して試して、正しい/間違いを判断し、間違っていればまた考える。
毎日これの繰り返しです。
思い通りに動かず、間違いに気づくと悔しく、思い通りに動くと楽しい気持ちになります。