Discovery is process of working with customer to understand their need, blueprint the solution, gather detailed requirements, design technical aspects and prepare for the implementation. Typically discovery contributes to 35-40% of the project duration and has critical influence on the success of the project.
In my point of view, based on the core subject of discussion, a typical discovery process for a software system involves the following 4 aspects – Business discovery, Functional discovery, Technical discovery, Content (data) discovery. Practically, all these have overlaps and happens in the overlaid fashion. However, an Architect has to keep all these 4 aspects in mind while driving the discovery phase.
Business discovery
Functional discovery
Technical discovery
- Designing system topology (Physical Architecture)
- Integration related questionnaire during requirements discovering
- Disaster recovery planning
- Disaster recovery strategies
Content (Data) discovery
Reference