The analysis of requirements is the process of defining user expectations for a new or updated software product, which ensures that the requirements are understandable to all the stakeholders. It is also a thorough examination of the requirements with the purpose of finding errors, gaps and other shortcomings. In addition, the analysis includes prototyping, feasibility analysis and prioritization. The goal of the analysis is to describe qualitatively and in detail the requirements that allow managers to realistically evaluate all project costs, and technical personnel to start designing, configuring and testing the product under consideration.
Typically, individual requirements should be presented in several ways, for example, in text and graphical form. This will reveal their features and problems, imperceptible if the document is presented one way. It also helps all the stakeholders to reach consensus on the outcome of product development.
- Creation of context diagram. Context diagram is a high level process that shows the system being developed with a variety of external systems surrounding it. It defines the boundaries and interfaces between the system being developed and the entities external to the system, such as users, devices, and other information systems. Technical writing outsourcing lets customers create high quality technical documentation without paying much for the competent effort.
- Creation of a user interface and technical prototypes. If developers or users are not quite sure about the requirements, create a prototype – a partial, possible or preliminary version of the product that will make the concepts and capabilities more tangible. Evaluation of the prototype will help all the stakeholders to reach a common understanding on the problem being solved.
- Feasibility study (software requirements analysis). Analyze how much it is realistic to implement each requirement at a reasonable cost and with acceptable performance in the intended environment. Consider the risks associated with the implementation of each requirement, including conflicts with other requirements, dependence on external factors and technical obstacles.
- Prioritization of requirements. Use the analytical approach and determine the relative priorities for the implementation of product functions, tasks or individual requirements. Based on the priorities, determine which version will implement a particular function or set of requirements. Confirming the changes, distribute them all among specific versions and include in the release schedule for these versions the costs that are required to make changes. In the course of work on the project, periodically adjust priorities in accordance with customer needs, market conditions and business goals.