This blog post will answer questions and define terminology about requirements gathering and management.
What is requirements gathering?
Requirements gathering is the process of identifying and documenting the needs and expectations of stakeholders for a particular project or system. This process helps to ensure that the final product or solution meets the needs of all stakeholders and is aligned with the overall goals and objectives of the organisation. It involves a range of activities, such as conducting interviews and focus groups, analysing existing systems and processes, and creating user stories or functional requirements. The outcome of the requirements gathering process is a set of clear and well-defined requirements that can be used as the foundation for designing, building, and testing of the solution.
What are the two main types of project requirements?
Project requirements are typically divided into two groups:
- Business requirements: What the project should accomplish. These are also known as “functional requirements.”
- Technical requirements: How your project will meet organisational needs. These are also known as “nonfunctional requirements.”
What is a Requirements document?
What is required of the product is laid out in a requirements document. The product vision and the means by which it must be realised by the project’s conclusion are among the items it specifies. However, it makes no mention of how it will be supplied in detail. More emphasis should be placed on setting the product’s context, such as the necessity for the product or the issue it resolves. There are no specifics about how it will be implemented. Learn more in our other blog ‘How to Write a Software Requirements Document (SRD).’
What are entities in requirements gathering?
In the context of requirements gathering, entities refer to the objects, people, or concepts that the system being developed will interact with or represent. Examples of entities in a requirements document might include “customer,” “employee,” “product,” or “invoice.” Identifying and defining entities is an important step in understanding the scope of a project and determining the functional and non-functional requirements for the system.
What are the fields in an entity in requirements gathering?
In requirements gathering, fields are the specific characteristics or attributes of an entity that are relevant to the system being developed. Fields can also be called properties, data elements or columns. For example, in an entity called “customer,” fields might include “customer name,” “address,” “phone number,” and “email address.” In an entity called “product,” fields might include “product name,” “description,” “price,” and “quantity in stock.” Defining the fields for each entity helps to clarify the data that the system needs to collect, store, and manipulate in order to meet the requirements.
What are the actions for an entity in requirements gathering?
In requirements gathering, actions refer to the operations or functions which can be performed on an entity by the system being developed. Actions can also be called behaviours or methods. Examples of actions for an entity might include:
- Retrieving or displaying information about the entity (e.g. “View Customer Details”)
- Creating new instances of the entity (e.g. “Add new Product”)
- Updating or modifying existing instances of the entity (e.g. “Edit Customer Information”)
- Deleting instances of the entity (e.g. “Delete Product”)
- Performing calculations or other processing on the entity’s data (e.g. “Calculate total cost of all products in an Order”)
Defining the actions for each entity helps to clarify the functionality that the system needs to provide in order to meet the requirements.
What are usability requirements?
Usability requirements are a type of non-functional requirement which describe how user-friendly, efficient, and satisfying the system being developed should be for the end-users. These requirements are used to ensure that the system is easy to use, understand, and navigate. Usability requirements can include aspects such as:
- Ease of learning: New users should have little trouble picking up and using the system.
- Efficiency of use: The site should allow users to accomplish their tasks quickly and easily.
- Memorability: Users should be able to recall how to use the system even after not using it for a while, thus it should be constructed accordingly.
- Error recovery: When users make mistakes, the system product should give them the proper feedback and direction and should make it simple for them to correct their mistakes.
- Satisfaction: The system should be pleasant to use and should not cause frustration or dissatisfaction for the users.
The inclusion of usability requirements in the requirements gathering process is crucial to ensure that the end product is user-friendly and meets the needs and expectations of the users.
What are security requirements?
Security requirements are a type of non-functional requirement describing the measures which need to be taken to protect the system and its data from unauthorised access, use, disclosure, disruption, modification, or destruction. These requirements are used to ensure the confidentiality, integrity, and availability of the system and its data. Security requirements can include aspects such as:
- Authentication: Before allowing access to users, the system should be able to confirm their identity.
- Authorisation: To guarantee that users can only access the resources they are authorised to access, the site should be able to enforce access controls.
- Data encryption: The product should be able to encrypt sensitive data to protect it from unauthorised access or disclosure.
- Data integrity: The system should be able to detect and prevent unauthorised changes to data.
- Access control: The site should be able to restrict access to certain resources or functionality based on user roles or other attributes.
- Auditing and logging: For the sake of security and compliance, the system should be able to monitor and record user actions.
The inclusion of security requirements in the requirements gathering process is crucial to ensure that the end product is secure and meets the needs and expectations of the users and stakeholders.
What are performance requirements?
Performance requirements are a type of non-functional requirement which describe the required performance characteristics of the system, such as response time, throughput, capacity, scalability, and availability. These requirements are used to ensure that the system meets the performance expectations of the users and stakeholders. Performance requirements can include aspects such as:
- Response time: The time it takes for the system to respond to a user’s request.
- Throughput: The number of transactions or requests the system can handle in a given period of time.
- Capacity: The maximum number of users or amount of data the system can support.
- Scalability: The ability of the system to handle an increase in load or workload.
- Availability: The percentage of time the system is operational and available to users.
The inclusion of performance requirements in the requirements gathering process is crucial to ensure the end product meets the performance expectations and can handle the expected load.
What are reliability requirements?
Reliability requirements are a type of non-functional requirement which describe the required level of dependability and consistency of the system, such as its ability to function correctly and without failure over time. These requirements are used to ensure that the system meets the reliability expectations of the users and stakeholders.
What are supportability requirements?
Supportability requirements are a type of non-functional requirement which describe the necessary level of support and maintenance the system needs in order to be used effectively and efficiently. These requirements are used to ensure that the system can be supported, maintained and upgraded over time.
What are legal and regulatory requirements?
Legal and regulatory requirements are a type of non-functional requirement which describe the necessary compliance with laws, regulations, standards, and policies the system must abide by. These requirements are used to ensure the system meets the legal and regulatory requirements of the country, industry or sector it will be used in. Legal and regulatory requirements can include aspects such as:
- Data Privacy: Compliance with regulations such as General Data Protection Regulation (GDPR) and Health Insurance Portability and Accountability Act (HIPAA) to protect sensitive information
- Accessibility: Compliance with accessibility standards such as Web Content Accessibility Guidelines (WCAG) to ensure the system can be used by people with disabilities.
- Payment card industry data security standards (PCI-DSS) for systems handling credit card transactions
- Health Information Portability and Accountability Act (HIPAA) compliance for systems handling medical information
- Compliance with industry standards such as ISO 27001 for information security management systems.
The inclusion of legal and regulatory requirements in the requirements gathering process is crucial to ensure the end product meets the legal and regulatory requirements and can be used legally and ethically in the country it will be used in.
What are system requirements?
System requirements are a type of non-functional requirement. This is how the system will run on different platforms. Sometimes referred to as web browser support requirements, these refer to the necessary level of support and compatibility a web application or website needs in order to be used effectively and efficiently across different web browsers. These requirements are used to ensure that the application or website can be accessed and used by a wide range of users, regardless of which web browser they are using.
Why would you use software for requirements gathering process?
Using software for requirements gathering can benefit the process by improving discovery of requirements, standardising the process and improving its quality, creating more accurate and clear documentation, and facilitating collaboration among stakeholders. Software can be more flexible in the workflow of requirements gathering and provide features beyond simple templates. It can also ensure that a consistent and structured process is followed, making the organisation more resilient to staff changes and resulting in better quality requirements gathering. By having a clear and accurate document outlining the requirements of a project, stakeholders and the development team can reduce the chance of missing vital requirements, improving estimation, and reducing project overruns and potential failure. Read more on this in our other blog, ‘Why You Should Use Software for the Requirements Gathering Process.’