One of the most challenging parts of an agile project is being agile with
data. Typically this is where projects hit legacy systems and legacy
requirements. Many times working with data systems requires lengthy requests to
teams of specialists who are not used to the speed of an agile project and
insist on exact and complete specifications. Typically the database world will
be at odds with agile development. The agile framework seeks as much as possible
to remove these bottlenecks with techniques such as generative data models
making change fast. Models for data serve another purpose, often a change of one
table column can be a critical issue requiring months to rebuild all the
dependent applications.
An agile approach would try to encapsulate data
dependencies to go fast and allow change. But ultimately relational data issues
will be important for agile projects and are a common blockage point. As such
agile projects are best suited where projects don't contain big legacy
databases. It still isn't the end of the world because if you can build your
data dependencies to be agile regardless of legacy systems you will start to
prove the merit of the approach as all other systems go through tedious changes
to catch up with data changes while in the protected agile data system the
change would be trivial.