Trying to identify all the functionality is an overwhelming task, and is not possible in a single go; so rather than trying to get everything, we start with a workshop that enables us to capture a high-level view of the domain. This is about understanding the business of the client and how they operate so that we understand the context within which the end solution has to work.
We start with a workshop to capture the following in a high level specification:
Domain overview
Users of the system
Object model
Key relationships between objects
Relationship diagram
Feature overview
Site map
The client and domain experts walk us through the entire project. Even though we may have a requirements document, drafted the project brief, and been through the planning workshop, it's still important to get the client to take us through the domain. When they talk about the domain, we glean information that we may not already have in particular...