今日は客先出張。進捗の報告会に参加する。
 システムを利用するユーザーがほぼ決まりということで、システムの過不足を洗っているが、予想以上にギャップが激しいらしい。

 もともと「何でもできる」を目的としてDBを設計しているため、項目も多く、関連も複雑になっている。どの機能がどのテーブルを参照・更新しているかを仕様として整理出来ていないため、影響範囲を予測できず、テーブルへカラムを追加できない。結果としてテーブルが増えていくが、そのような理由で追加されたテーブルは当然正規化もされておらず、メンテナンス性はさらに悪化する。正直、手の施しようがない。
「設定を変更すれば対応できます」という売り文句は一見正しいように見えるが、プログラムを書かない限り、プログラムに出来ることと同等のことは実現できない。プログラムで実装すれば工数も抑えられ、メンテナンスも容易になるものを無理やり押し込めるのは下策なのかもしれない。と今回のプロジェクトで思った。