Q. スクラムではデータベースのテーブル設計はいつ行いますか?

よく聞かれる質問に次のようなものがあります。

プロダクトバックログアイテム単位で随時テーブル設計を行うと、テーブルにカラムがツギハギのように追加されていって、おかしくなりそうな気がします。ある程度システム全体の機能を考えて事前に決めたほうが良くないですか?

しかし、このように考えて事前にすべてのテーブル設計を行おうとするのはよくありません。

スクラムで扱うのは複雑な問題の解決です。 先のことまで考えたところで、最初の時点で最終形態を見出すことはできません。 なんとかひねり出したところで、それが合っている可能性が低いとも言えます。 最適なデータモデルはその都度出現します。 したがって、テーブルの設計やカラムの設計などは漸進的にやっていくことになります。

データベースをコードで定義、変更できるようなデータベースマイグレーションツールは多々あるので、実際のところ開発しながら漸進的にテーブル構造を見直すのはそこまでのコストでもありません。 たとえば、Ruby on Railsではマイグレーションの機能が内包されていて、日常的に利用するのが普通です。