Historically, approaches to gathering requirements were considered linear: the analyst communicated with different stakeholders, formed lists of wishes, and formalized them into specifications. In reality, the larger the project, the more challenging it becomes to identify and track overlaps, duplications, and directly opposing tasks among the requirements from different groups of stakeholders.
In large-scale systems, the following often arise:
An error at the analysis stage can lead to conflicts during implementation, increased timelines, non-functional mechanisms, or an inability to integrate modules.
A professional system analyst is forced to use techniques such as:
Key features:
Is requirement prioritization a way to resolve contradictions?
No, prioritization is an arrangement of implementation order. Contradictions must be resolved before being placed in the backlog, through agreement, compromise, or revision of requirements.
Can all connections be identified only with automated tools?
No, automation (for example, traceability tools) helps, but embedded business meanings, process nuances, and hidden conflicts are documented only through discussions with real stakeholders.
Does overlapping requirements mean one of them is necessarily unnecessary?
No, requirements may overlap in wording but have different end goals. It's essential to check the meaning and look for opportunities for aggregation or clarification.
Negative case: In a banking CRM, two departments independently requested to implement a "quick client search." The requirements were implemented separately without identifying duplication, leading to the creation of two different searches with convoluted scenarios.
Advantages:
Disadvantages:
Positive case: The analyst organized workshops with key fragments of requirements, a dependency matrix, and iteratively coordinated scenarios with clients and executors.
Advantages:
Disadvantages: