ほぼ自分向けのメモ。
アジャイル開発と設計
もともと、アジャイル開発(私の場合はスクラム)やるとき、データベース設計っていつやるんだろう?と思ったのがきっかけです。 データベース設計も、スプリントのたびに考えるのかなぁ、でもそれはさすがにやばそうだなぁという感触があって、実際のところ答えは無いけど今の見解、というか個人的な気持ちを書いてみた。 高リスク制約という考えがあるらしい。それによると、以下のようなことは「とりあえずやっておいて、あとから考えよう」とした場合に高くつくよ、ということ。
- 言語
- レイヤ分割
- ユーザビリティ
- セキュリティ
- スケーラビリティ
データモデリングは最初に考えておくべき。ただし、完全なデータベース設計というよりは、概念データモデルレベル。 エンティティと関連、多重度のモデリングすることで、対象ドメインの整理・理解を助けることにもなる。
スプリント0
で、スクラムではスプリントを開始する前に、準備期間としてスプリント0(ゼロ)という期間を設けて、上で述べたような意思決定をしたり、技術的な調査(スパイクという)をしたり、初期のプロダクトバックログを用意したりすることがプラクティスとして存在している。 スプリントゼロで明らかにすること、決めておくことはプロジェクト問わずある程度共通にできそうなので、リスト化しておくと良さそう。
余談。ER図作成ツールだと、そもそも論理モデルと物理モデルを分けることができないものが多く(私の使った事のある範囲では)、RDBMSの制約によって必要になる「関連テーブル」まで定義することになるので困る。