In any iterative/agile environment, analysis and design of architecture and domain model is continuous process. The basic assumptions are that in the beginning of the project, you have only basic ideas of what the software should do. And that over time, feedback from users, stakeholders and developers will change (sometimes drastically) how domain should be represented. Idea that domain can be modeled as first thing in the project and that this model doesn't change is irrational at best.
To achieve this, you should focus not on modeling the domain, but on making changes to the domain simple and painless. For example, in non-iterative development, there is an idea, that document describing the model is first created (ERD) from which the code implementing it is created. So any change to the model must be done twice, once for the document and second for the code. This makes such change more expensive to do. This is part of Agile Manifesto as "Working software, over comprehensive documentation". It is also part of Domain Driven Design, where the domain is modeled not in document, but in code.
All of this is idea of evolutionary architecture. Which is an ideology that architecture is not created at once, but evolves over time. And embracing this ideology allows creation of architectures that are better suited for their purpose. And it is again agile thinking that embraces change instead of trying to predict it.