2012年9月9日日曜日

“高リスク制約を抜き出して、そこだけは、設計を十分に行え。そうでない部分は変更可能性を保ち、アジャイルに進めるべし、ただし、高リスク制約は思ったよりも多くないぞよ。となる。”


データモデリングが高リスク制約だとしたら(そうであることは少なくないと思う)、しっかりデータモデリングをして『確定』させるべきという事になる。ちなみに私はこのことが『アジャイル』と相反する事とは思えない。データモデルがアプリケーション(機能)の土台なり骨格であるのであれば、それはイテレーション0でやるって事でどうだろう。ここは意見が分かれる所かもしれないが。各機能の作りこみに先立って設計すべきことはデータモデル以外にもいろいろある。
データモデル全体が『高リスク』であるかどうかはそのシステムによって色々だろう。リスクの高い部分も低い部分もあるはず。また、他システムとの共有や連携、パフォーマンス上の問題などの『制約』もあるはず。そういう分類もしておく必要がある。
いずれにしてもデータモデルの『変更可能性』を完全に排除する事は難しい。
データモデルの変更による影響を素早く導き出せる事と、実際にその手戻り作業を素早く行えるという事を目指すべきではないかと思う。
アジャイルの「ライトウィング」と「レフトウィング」:An Agile Way のライトウィングである技術的なプラクティスを実践していないのであれば、それを実践するだけでも相当変わるだろう。
また、永続化層に何を使うかによっても、結構手数に違いが出るところだと思う。
アジャイルであろうがなかろうが、足枷を外す、または錘の重量を軽くする工夫を常に考えていけばいい。