Software development is based on requirements - user expectations about future functionality. Requirements differ very much by their essence, content, form and quality. Therefore, it's very important to properly call and use requirements of different types.
In Devprom ALM, we designate three main requirement levels:
| Level of customer, user, or their representatives |
Primary requirements - issues, queries, change requests, wishlists. These are unstructured, incomplete, and even contradictory requirements which come from different sources. Such requirements are often formulated in free text, or written in the form of user stories. Fundamental difference of primary requirements from other requirements is that they contain not only functional requirements, but also functional modifications. In other words, it's very difficult to form a complete description of the entire system functionality based on the suite of primary requirements. |
| Level of analysis, design and modeling |
Business requirements and system requirements (function and non-functional) that describe business process and requirements to software system development integrally and consistently. These requirements have the top quality since they are prepared by specially trained people. System requirements can be divided into use cases, non-functional requirements, UML models, UI templates, etc. The following documenting formats are usually used: BRD (business requirements document), business case, SRS (system requirements specification), TS (technical specification), etc. |
| Level of developers, testers and technical writers | Tasks for requirements implementation (in whole, in parts or using whole documents) are called enhancements. An enhancement contains information about items to implement, modifications to make in the previously implemented requirement, assignees, deadlines, etc. Testers also use enhancements to verify requirements implementation. |
It's also important to distinguish a requirement type from the format of its documentation. For example, TS (technical specification) contains many requirements of different types and general information. Use cases can be written in the format offered by A. Cockburn or in the format offered in OpenUP process (Rational Unified Process). Some other popular options are also available. You must independently decide how exactly to document requirements in your projects efficiently.
Depending on subject area complexity, system complexity, and assignee qualification, the aforementioned levels of requirement can intersect with each other. For example, development team can also work efficiently with primary requirements.
Modern techniques for identification and collection of primary requirements are described below.