業務要件とセキュリティー対策

システム開発においては、業務要件を全て実装することすら難しいことはある。そりゃもう要件定義がおかしい訳だけど、実装をイメージして要件定義を出来ない人がこっち側にもあっち側にもいたりするともう悲惨なものである。
金もらっちゃっている以上、最大限業務要件を実現するための努力をしなければならない。

まあこんな話は常にあるわけじゃないけど、こんな話自体がシステムの脆弱性だよな。

んで、「アプリケーションを正しく動かすための処理」と「セキュリティー対策」は違っていて、前者で賄えるような話をセキュリティー対策と呼ぶなボケみたいな話があるんだけど、それもちょっと大げさだなーと思ってたりする。
っていうのは、「アプリケーションが正しく動く」という文言には正常系の話しか含まれていないと思っている人が結構いるから。システム屋の感覚でお話をするとなんだかありえない話の方向性に行ってしまうことは客と話しているとよくある。バリデーションは業務要件としては必要最低限しか定義されなかったりするけど、それ以外の「正しく動かす」ための処理は暗黙で要件に含まれていると判断すべきだし、それを紙に起こすときはセキュリティー対策の項ぐらいが妥当だったりもするし。むしろ、実際にはセキュリティー対策というのは大げさな話であっても、そこにしっかり載せることで「この機能なくてもいいんじゃない?もっと安くならない?」という発想を回避することは可能なんじゃないかと思ったりする。

定義が厳密性を持たないことで範囲や内容がいいかげんになってしまう、というデメリットもあるし、違う勘違いも生まれる。でも、セキュリティーはタダじゃないよ、ということは強調しておかないとシステムがわからない人にとっては判断できない話になっちゃいがちだからなあ。