高い汎用性が求められるアプリケーションって、結局はOSとかプログラム言語、DBMSとかフレームワークに任せるべきで、SI屋が開発するモノに対して汎用性を求めすぎると、下手に抽象化した、イメージしにくいモノが出来上がるのが世の常。 汎用性を高めようとしたと思われる、とあるパッケージ製品でデータベースのカラム名が「value01」〜「value99」って並んでてぼっくりしたことがあった*1し、それは設計がクソですむけど、その要件で正規化しても「設定項目」だらけになったりして、全コードのうち半分が「設定項目の保守と整合性チェック」に使われていたり。直接的ではないコードはメンテナンスでも想像力を浪費する。 ユーザは欲しい機能が欲しいわけで、要らない機能はどっちでもよく、どっちでもいいものは簡単に「(できれば)作ってください」と言われるかも知れない。でもそのとき、それは将来必要になるのか、それはどん