料金オブジェクトの例
書籍の料金オブジェクトの例はとてもわかりやすいですね。
2つのチームで同じ料金(Charge)を扱っていたが、先にできていた片方のチームの料金を別のチームが使うことをした結果、本当は「顧客料金」と「供給者料金」という別々の意味で料金を扱う必要があったのに、同じモデルを使ってしまっていたため、思いもよらないバグを生み出してしまったということでした。
モデルの整合性を維持する
ここでの教訓としては、
- それぞれのモデルが適用される境界について、明示的に合意が必要だった
- システム全体で統一されたモデルを持つことは苦労するが、得られるものは少ない
- 極めて重要な箇所を緊密に統一された状態に保てればよく、それが重要。
境界はどこに
こうしたモデルの分岐は至る所に現れます。政治的な断片化、経営上の優先順位、チーム編成、同じチーム内でも・・・
要するに、ここで何を統一し、何を統一しないかをはっきり決める方法が必要であるということ、それが次の節のテーマとなっています。