最近のジレンマ

アジャイル

アプリケーション開発における知識獲得(要件・仕様・利用技術)という意味で、

  • フィードバックの間隔を短くする
  • 変更しやすい

という方向性を中心においているアジャイル開発は優れていると思う。

DOA

一方で、基幹系のような大きなシステムにおいては統合されて整合性のある
データモデルが確立されていないとうまくいかない気がする。
(これは気がするなので前提がおかしいかもしれません)
となるとDOAのアプローチが優れていると思う。

データの状態遷移とアプリの関係

統合されて整合性のあるデータモデルは、業務に対する知識がないと作れない。
アジャイルに適している。

データモデルをアジャイルに構築するとデータの状態遷移とアプリケーションは
密接な関係があり、修正箇所が多くなりやすい。
アジャイルに向きにくい。

データの状態遷移が少なく、CRUD表のCRUDが少ない、あるいは変更するアプリケーションが
限られている場合などはアジャイルでいけると思うのですが、データの状態によって処理の仕様が
変わるケースをたくさん含まれている場合は何らかのプラクティスが必要だと思っています。

データベースリファクタリングも一つのプラクティスだと思うのですが、これはデータベースモデリング
柔軟性だと思っていて、アプリケーションとデータモデルの関係の柔軟性につながらない。

CRUD以外のアプリケーション・データモデルの関係を表す手法があればいいかもしれませんが、今のところ
見つけられずにいて、アジャイルDOAのアプローチのバランスや進め方に頭を悩ませています。