- Blog Categories
- Project Management
- Agile Management
- IT Service Management
- Cloud Computing
- Business Management
- Business Intelligence
- Quality Engineer
- Cyber Security
- Career
- Big Data
- Programming
- Most Popular Blogs
- PMP Exam Schedule for 2024: Check PMP Exam Date
- Top 60+ PMP Exam Questions and Answers for 2024
- PMP Cheat Sheet and PMP Formulas To Use in 2024
- What is PMP Process? A Complete List of 49 Processes of PMP
- Top 15+ Project Management Case Studies with Examples 2024
- Top Picks by Authors
- Top 170 Project Management Research Topics
- What is Effective Communication: Definition
- How to Create a Project Plan in Excel in 2024?
- PMP Certification Exam Eligibility in 2024 [A Complete Checklist]
- PMP Certification Fees - All Aspects of PMP Certification Fee
- Most Popular Blogs
- CSM vs PSM: Which Certification to Choose in 2024?
- How Much Does Scrum Master Certification Cost in 2024?
- CSPO vs PSPO Certification: What to Choose in 2024?
- 8 Best Scrum Master Certifications to Pursue in 2024
- Safe Agilist Exam: A Complete Study Guide 2024
- Top Picks by Authors
- SAFe vs Agile: Difference Between Scaled Agile and Agile
- Top 21 Scrum Best Practices for Efficient Agile Workflow
- 30 User Story Examples and Templates to Use in 2024
- State of Agile: Things You Need to Know
- Top 24 Career Benefits of a Certifed Scrum Master
- Most Popular Blogs
- ITIL Certification Cost in 2024 [Exam Fee & Other Expenses]
- Top 17 Required Skills for System Administrator in 2024
- How Effective Is Itil Certification for a Job Switch?
- IT Service Management (ITSM) Role and Responsibilities
- Top 25 Service Based Companies in India in 2024
- Top Picks by Authors
- What is Escalation Matrix & How Does It Work? [Types, Process]
- ITIL Service Operation: Phases, Functions, Best Practices
- 10 Best Facility Management Software in 2024
- What is Service Request Management in ITIL? Example, Steps, Tips
- An Introduction To ITIL® Exam
- Most Popular Blogs
- A Complete AWS Cheat Sheet: Important Topics Covered
- Top AWS Solution Architect Projects in 2024
- 15 Best Azure Certifications 2024: Which one to Choose?
- Top 22 Cloud Computing Project Ideas in 2024 [Source Code]
- How to Become an Azure Data Engineer? 2024 Roadmap
- Top Picks by Authors
- Top 40 IoT Project Ideas and Topics in 2024 [Source Code]
- The Future of AWS: Top Trends & Predictions in 2024
- AWS Solutions Architect vs AWS Developer [Key Differences]
- Top 20 Azure Data Engineering Projects in 2024 [Source Code]
- 25 Best Cloud Computing Tools in 2024
- Most Popular Blogs
- Company Analysis Report: Examples, Templates, Components
- 400 Trending Business Management Research Topics
- Business Analysis Body of Knowledge (BABOK): Guide
- ECBA Certification: Is it Worth it?
- How to Become Business Analyst in 2024? Step-by-Step
- Top Picks by Authors
- Top 20 Business Analytics Project in 2024 [With Source Code]
- ECBA Certification Cost Across Countries
- Top 9 Free Business Requirements Document (BRD) Templates
- Business Analyst Job Description in 2024 [Key Responsibility]
- Business Analysis Framework: Elements, Process, Techniques
- Most Popular Blogs
- Best Career options after BA [2024]
- Top Career Options after BCom to Know in 2024
- Top 10 Power Bi Books of 2024 [Beginners to Experienced]
- Power BI Skills in Demand: How to Stand Out in the Job Market
- Top 15 Power BI Project Ideas
- Top Picks by Authors
- 10 Limitations of Power BI: You Must Know in 2024
- Top 45 Career Options After BBA in 2024 [With Salary]
- Top Power BI Dashboard Templates of 2024
- What is Power BI Used For - Practical Applications Of Power BI
- SSRS Vs Power BI - What are the Key Differences?
- Most Popular Blogs
- Data Collection Plan For Six Sigma: How to Create One?
- Quality Engineer Resume for 2024 [Examples + Tips]
- 20 Best Quality Management Certifications That Pay Well in 2024
- Six Sigma in Operations Management [A Brief Introduction]
- Top Picks by Authors
- Six Sigma Green Belt vs PMP: What's the Difference
- Quality Management: Definition, Importance, Components
- Adding Green Belt Certifications to Your Resume
- Six Sigma Green Belt in Healthcare: Concepts, Benefits and Examples
- Most Popular Blogs
- Latest CISSP Exam Dumps of 2024 [Free CISSP Dumps]
- CISSP vs Security+ Certifications: Which is Best in 2024?
- Best CISSP Study Guides for 2024 + CISSP Study Plan
- How to Become an Ethical Hacker in 2024?
- Top Picks by Authors
- CISSP vs Master's Degree: Which One to Choose in 2024?
- CISSP Endorsement Process: Requirements & Example
- OSCP vs CISSP | Top Cybersecurity Certifications
- How to Pass the CISSP Exam on Your 1st Attempt in 2024?
- Most Popular Blogs
- Best Career options after BA [2024]
- Top Picks by Authors
- Top Career Options & Courses After 12th Commerce in 2024
- Recommended Blogs
- 30 Best Answers for Your 'Reason for Job Change' in 2024
- Recommended Blogs
- Time Management Skills: How it Affects your Career
- Most Popular Blogs
- Top 28 Big Data Companies to Know in 2024
- Top Picks by Authors
- Top Big Data Tools You Need to Know in 2024
- Most Popular Blogs
- Web Development Using PHP And MySQL
- Top Picks by Authors
- Top 30 Software Engineering Projects in 2024 [Source Code]
- More
- Tutorials
- Practise Tests
- Interview Questions
- Free Courses
- Agile & PMP Practice Tests
- Agile Testing
- Agile Scrum Practice Exam
- CAPM Practice Test
- PRINCE2 Foundation Exam
- PMP Practice Exam
- Cloud Related Practice Test
- Azure Infrastructure Solutions
- AWS Solutions Architect
- AWS Developer Associate
- IT Related Pratice Test
- ITIL Practice Test
- Devops Practice Test
- TOGAF® Practice Test
- Other Practice Test
- Oracle Primavera P6 V8
- MS Project Practice Test
- Project Management & Agile
- Project Management Interview Questions
- Release Train Engineer Interview Questions
- Agile Coach Interview Questions
- Scrum Interview Questions
- IT Project Manager Interview Questions
- Cloud & Data
- Azure Databricks Interview Questions
- AWS architect Interview Questions
- Cloud Computing Interview Questions
- AWS Interview Questions
- Kubernetes Interview Questions
- Web Development
- CSS3 Free Course with Certificates
- Basics of Spring Core and MVC
- Javascript Free Course with Certificate
- React Free Course with Certificate
- Node JS Free Certification Course
- Data Science
- Python Machine Learning Course
- Python for Data Science Free Course
- NLP Free Course with Certificate
- Data Analysis Using SQL
Non-Functional Requirements: Types, Examples & Best Practices
Updated on 01 February, 2021
13.18K+ views
• 7 min read
Table of Contents
- What is a Non-Functional Requirement?
- How to Elicit Non-Functional Requirements?
- Non- Functional Requirements Constrain Backlogs
- Types of Non- Functional Requirements
- Non-Functional Requirements in Agile
- Examples of Non-functional requirements
- Functional vs Non-Functional Requirements
- The Problem with Mixing Non-Functional Requirements and Agile
- The Three Steps to Capture NFRs in Sprint Planning
- The Impact of NFRs on Solution Development
- Best Practices for Writing Non-Functional Requirements
- Implementation Approaches
- Conclusion
Being a certified project management professional, I wanted to share through this article on non-functional requirements in Agile. Before getting into the topic let me explain the difference between Function and Non-functional requirements, Basic difference is Functional Requirements focus on “What” and Non-functional Requirements focuses on “How”. Let us look on to the table below to see the similarities and differences between functional and non-functional requirements.
Understand the concepts of non-functional requirements through a few examples, Being a certified project management professional, I wanted to share through this article on non-functional requirements in Agile. Before getting into the topic let me explain the difference between Function and Non-functional requirements, Basic difference is Functional Requirements focus on “What” and Non-functional Requirements focuses on “How”. Let us look on to the table below to see the similarities and differences between functional and non-functional requirements.
Understand the concepts of non-functional requirements through a few examples, acceptance criteria, their impact in solution development and user stories examples, and more.
Characteristics | Functional Requirements | Non-Functional Requirements |
Source | Scope Document, Stakeholders, end users, Bonds, Agreements etc | Technical Teams, Support Teams, etc |
Ownership | Product Owner, Key Account manager, Product Manager | Project lead, technical lead, Architect |
Format | Features, User stories | User Stories, Technical Specification |
Examples | Examples: specifications of what the system must do, business rules that must be met, steps that the system must take in authentication | availability, reliability, recoverability, maintainability, serviceability, security, regulatory, manageability, environmental, data integrity, usability, interoperability |
What is a Non-Functional Requirement?
I would also like to give you the professional-level definition of the non-functional requirements as backlog constraints on an Agile project and managed as part of both product and scrum backlog/system qualities that guide the design of the solution and often serve as constraints across the relevant backlogs.
Also, NFR in Agile should be bounded, independent, negotiable, and testable.
Non-functional requirements are used to specify various system qualities and attributes such as
Performance | How fast a system should respond to request |
Scalability | How well a system can handle an increase in users or workload |
Security | How well a system protects against unauthorized access and data breaches |
Usability | How easy a system is to use |
Maintainability | How easy it is to update and modify the system |
If non-functional requirements such as user stories are not addressed properly, the results can include:
- Users, clients, and developers are unsatisfied.
- Inconsistent software.
- Time and cost overrun to fix the software which was prepared without keeping NFRs in mind.
To summarize, NFRs are those product qualities or attributes that cannot be used as a feature, but without them, you cannot use the feature.
How to Elicit Non-Functional Requirements?
When the business analysts elicit requirements from the stakeholders on the functional aspects of the system, they also should understand from the stakeholder what attributes the system should provide in order to meet their business goals. For example, the website must be able to load within 0.5 seconds.
Eliciting a non-functional requirement is more challenging than the functional requirement, as the stakeholders/users are good at articulating the functional requirements well; while they may not be aware of, or good at explicitly stating non-functional requirements. Business analysts will have to get these requirements from stakeholders by asking the right questions.
NFRs are implicit by nature, meaning that people assume them to exist without being asked.
Some of the questions to be prompted that may help the business analyst to ask stakeholders how they want their system to function include the following aspects:
- Performance – speed of the system e.g., response time, throughput, etc
- Availability – what is the impact if the system is not available for the customer?
- Security – ensuring unauthorized access to the system
- Data Retention - how long should the data be retained in the system for reference? This could be a regulation from the government/country.
- Usability – easy access for the customer/user while using the system
- Stability – code/system stability when dynamic changes apply due to business needs
- Compliance – understanding compliance needs by local laws/regulations
- Reliability – the probability of system performing without failure
- Recoverability – the ability of the system to recover from failure
- Serviceability – ease of system service when necessary
- Data integrity – accuracy and correctness of data maintained in the system
- Scalability – the ability of the system to scale when more resources are added
- Capacity – how much the system can store information
- Accessibility - how easily people with the widest range of capabilities can use the system.
Non- Functional Requirements Constrain Backlogs
Let me elaborate on Non-Functional Requirements Constrain Backlogs, Non- Non-Functional Requirements are associated with backlogs at the same time they are not backlog items. Non-functional requirements in Agile are persistent constraints on the design and development of the system whereas backlog items come and go as they are implemented.
Figure 1. NFRs modelled as backlog constraints
Types of Non- Functional Requirements
An interesting fact that I have come across is that non-functional requirements in scrum or Agile have two types of system qualities and Design Constraints. For in-depth understanding I would suggest Agile courses online
1. System Qualities
System qualities are more critical among those that pass through the backlog, Figure 2 shows the list of non-functional requirements sources to consider for development.
- Performance: System performance is the most important quality in non-functional requirements and affects almost all the other preceding ones.
- Security: Security refers to essential aspects that assure a solution and its components will be protected against unauthorized access or malware attacks.
- Availability: The amount of time the system is running, the time it takes to repair a fault, and the time between lapses.
- Usability: Requirements about how difficult it will be to learn and operate the system. The requirements are often expressed in learning time or similar metrics.
- Portability: The effort required to move the software to a different target platform. The measurement is most commonly person-months or % of modules that need changing.
- Scalability: Assesses the highest workloads under which the system will still meet the performance requirements.
- Maintainability: The time required for a solution or its component to be fixed, changed to increase performance or other qualities, or adapted to a changing environment.
- Reliability: How dependable the system is.
- Localization: Is the system compatible with local specifics?
- Compatibility: A system can coexist with another system in the same environment. For instance, software installed on an operating system must be compatible with its firewall or antivirus protection.
2. Design Constraints
If I put a limit for choosing the design options, then it can be termed as Design constraints.
some requirements may severely restrict the design. For example, security or safety requirements may reflect directly into design such as the need to
- Keep certain functions in separate modules
- Permit only limited communication between some areas of the program
- Check data integrity for critical variables.
The project manager can make informed decisions about the system’s design by understanding both Non- Functional Requirements and design constraints.
Non-Functional Requirements in Agile
A common challenge for an Agile team is dealing with capturing non-functional requirements in a user story. The non-functional requirements can be written as a user story and made available in the product backlog or sprint backlog.
For example, “As an e-commerce website user, I want the website to be available for 99.99999%, so that I purchase products whenever I feel like”
NFR can also be included as Acceptance Criteria in a user story.
For example, for the following user story, “As an e-commerce website user, I want to search for products, so that I can purchase them”. NFR as acceptance criteria would be “application responds to search request within 5 seconds from the time request is received”.
Unleash your potential with our PMP certificate course. Enhance your project management skills and soar to new career heights!
Examples of Non-functional requirements
For your better understanding I will compare the examples between functional requirements and non-functional requirements. A company called X got a job to do for Company B – Job is to build a website. B has provided various requirements to X for developing the website which includes functional and non-functional requirements. Let us look on to the list below.
- Performance – funds transfer transaction should not take more than 0.5 seconds
- Availability – the system should be available for the users to use the system anytime of the week they need
- Security – payroll data is not visible to all the employees in the organization. Only the authorized personnel should have access to the data
- Data Retention – all healthcare data should reside in the system for 7 years. Older data can be archived and should be accessible when required
- Usability – the system navigation is easy for the end user and provides a seamless journey while accessing the system
- Stability – the code/system is stable when new changes are applied due to dynamic business needs
- Compliance – HIPAA compliance should be adhered when dealing with patients’ data in USA
- Reliability – website users should be able to access the system 99% of the time without any failure
- Recoverability – In case of any major failures, the system should be restored within 48 hours
- Serviceability – the system should be serviceable immediately when there is a failure
- Data integrity – the system should not allow phone number to be entered in the data field
- Capacity – the system should be able to store 1 million records of basic customer information
- Scalability – the system should be scalable to support unlimited growth of the employees
- Accessibility - The system shall be accessible to people with disabilities in accordance with the Americans with Disabilities Act
- Confidentiality – The system shall not display the bank account number in full. It should display only the last 4 digits of the account number while others can be masked
- Efficiency – The interface between the system and user should not take more than 2 seconds
- Portability – The system shall be developed for both windows and Mac operating systems platforms
Functional vs Non-Functional Requirements
Functional |
Non-Functional |
---|---|
Defines ‘What’ of the customer requirements | Defines ‘How’ of the customer requirements |
Elicited by business analysts, specified by the customer | Defined by technical team like architects, developers etc |
Documented as the requirements document by the business analyst | Documented as the technical document by the team |
Defines the functionality in the system | Defines quality attribute in the system |
Captured as a user story in agile | Captured either as a story or part of acceptance criteria of a user story |
Customer tests and validates the functionality as specified by them | Customers cannot test these quality attributes, however, can experience while using the system |
Customers find it easy to define these | It is hard to define by the customer |
Defines the product features | Defines the product properties |
The Problem with Mixing Non-Functional Requirements and Agile
I truly believe that Agile is a wonderful framework to work on a project and the acceptance criteria for the end user are meeting “definition of done”. How ever non-functional requests cannot meet this criterion. Yet we cannot ignore NFRs, why? Let me give easy explanation!
Your overall health: Non-functional requirement
Weight loss: Functional requirement
If you lose 30 kg in 5 months and you eat mostly red meat including all junk foods, will you consider this as achievement?
If we (project manager) focus only on Functional requirement and not on non-functional requirements, then we might end up not meeting the business objective. Hence a perfect blend is required when it comes to non-functional requirements in scrum
The Three Steps to Capture NFRs in Sprint Planning
Non-functional requirements are like faith God, it’s difficult to see and sometimes to define. If the faith gets affected it might affect the entire peace of our family. Non-functional requirements in scrum are the same for a project without them fundamental objectives will be missed in the project.
Three-step approaches to determine NFRs in sprint planning are 1) Prioritize the non-functional requirements 2) Break the NFR Down 3) Include NFRs in sprint planning. For better understanding of the approach KnowledgeHut Agile courses online
1. Prioritize the non-functional requirements.
I would like to emphasize that this step is the most important among the three because here we capture the Voice of customers (stakeholders) and understand their requirements for the product.
2. Break the NFR Down
In this second step we will be focusing on identifying the most appropriate non-functional requirements as user stories and then break it down into several actions to address the needs.
Example: Let us take, we need to increase productivity by 10% every quarter. We can achieve this by increasing the speed and by increasing the resources. If we decide to go ahead with increasing the speed. Next process will be to break down further and determine the at what speed rate each stage will run.
3. Include NFRs in Sprint Planning
In this final phase we decided to increase the speed to achieve the non-functional requirements to increase productivity now user stories will be created around the individual steps and include them in sprints. In the same way if the NFR Agile is performance then the user story we can create to increase the speed of the software.
The Impact of NFRs on Solution Development
The business analyst and the project development team understand the customer requirements and expectations well and they are comfortable in converting the requirements into a finished product. The customer also validates the functional part of the requirements and signs off on successful implementation. However, the project's success is dependent on the non-functional requirements as they define the quality attributes of a system.
Some or all of the types of non-functional requirements that is described above contribute towards the successful implementation of the system. For example, the system should be available all the time with minimal or negligible downtime, security is not compromised, maintaining confidential data/information, not allowing unauthorized users, scalable while the customer business is growing, having enough capacity to maintain product data considering future growth etc. Failure of any of these quality attributes will leave the customer unsatisfied.
Best Practices for Writing Non-Functional Requirements
- Understand the Voice of Customer - Understanding the end user’s or customer’s functional and non-functional requirements clearly. This will help us to identify the right approach, saving time rather than spending on reworks and results in improving the performance of the product/services.
- Kaizen in Products / Features - We all know KAIZEN means continuous improvement, which is also applicable for products (hardware, software, services, automobiles etc), which emphasis on keep upgrading your product with new/unique features that increase the product's compatibility.
- Setting measurable targets -We should always aim to set measurable goals that help in identifying problems and subsequently the potential solutions.
- Prioritize expectations of the end user – Understanding the requirements is important at the same time prioritizing over others is also equally important which will result in customer satisfaction.
- Learn from your existing and previous products/process – Based on the learnings from the existing available product or similar products we can learn what kind of non-functional requirements are implemented.
Implementation Approaches
In general, the focus of the project team is to provide the functionality that the user has given. The non-functional requirements are looked into towards the end of the project after the customer UAT is complete. The team then focuses on the non-functional quality attributes, and sometimes may not be able to fulfill them as the design of the system may not accommodate the respective implementation.
It is good to see the trade-off between the quality attributes during the requirements and early in the design stage of the project. Defining the non-functional requirements needs thorough analysis and creativity in the early stages. It is recommended to consider this during the development life cycle of the software development, rather than leaving this to be discussed at the later stage of the project.
As seen earlier, the elicitation of the non-functional requirements can be carried out by the business analyst by using the prompt list and added as part of the requirements document in traditional project management. These requirements can be specified either as a user story or part of the acceptance criteria of a user story, which enables the team not to miss any of these during the development stage, without leaving it to the end of the project life cycle.
Examine the top trending Agile Category Courses
Conclusion
Let me try to summarize the topic of non-functional requirements in Agile here, for any project let it be mechanical, software or electronic, etc., fundamental requirements are the requirements from the customer where the definition of done (DoD) is defined. DoD includes both functional requirements and non-functional requirements, which results in the successful completion of a project or product or service.
Frequently Asked Questions (FAQs)
1. Why are non-functional requirements important in Agile Development?
NFR Agile is important in Agile because if those requirements are not captured and met it can lead to the failure of the project which results in rejection or claims from customers.
2. How do you measure and validate non-functional requirements in Agile?
Measure: Response time, availability, error rate, or customer satisfaction as metrics for performance, reliability, or usability NFRs. Specify the methods and tools that will help to collect and analyze the data for the metrics, such as surveys, logs, tests, or reports
Metric examples:
- Time
- Transactions/sec
- Response time
- Time to complete an operation
- Reliability
- Mean time to failure
- Downtime probability
- Failure rate
- Availability
3. What challenges might a team face when dealing with non-functional requirements in an Agile environment?
Measuring and testing NFRs are challenging, such as defining and prioritizing the NFRs with stakeholders and users.