Requirements Basics for Business Analysts

What is Requirement?

It is a statement provided by a stakeholder about what they believe they need in order to solve a particular business problem or respond to a specific business need.

It is something a product must do or quality it must have.

What are the categories of Requirements?

Requirements can be broadly classified into 3 categories:

Functional Requirements

They are the key functions that a system or component must be able to perform.

They are the things the product must be able to do and the actions it should be able to perform.

The various types of requirements that could be classified as Functional Requirements are:

Scope of the project:

It defines the boundaries and connection to other projects/systems

You find out where the project fits and what exactly are you trying to tackle or solve

E.g: (Please refer to the example in this post)

Consider you have a project that deals with optimizing your current lead management system.

The project receives the leads from a web portal and sends it to a CRM system to convert it to a sale.

Hence, you can say that optimising the web portal code or techniques to maintain the sales records for future engagement with converted-leads lies outside the boundary of your current project.

Functional & Data requirements:

They define

The things (tasks/actions/functions) the system must do

The data manipulated by the functions the system performs

Some examples are:

1. Display a report of the leads sent to the CRM system.

2. Move a lead out of the system if it is not closed in a year.

Non-Functional Requirements

They determine the properties or quality of the system e.g security and reliability

They determine “how” the product will behave?

The various types of requirements that could be classified as Non-Functional Requirements are:

Look and feel requirements: Preferred appearance

E.g the system should follow the company brand color scheme

Usability requirements: Based on intended users’ technical proficiency, aptitude, and other preferences e.g the users are old and have never used a computer hence then the font should be large.

Performance requirements: How fast, secure, reliable, accurate, etc.

E.g the system should have 100% uptime; it should have 15 places decimal accuracy.

Operations requirement: Project’s preferred operating environment

E.g the system shall run on windows 10 machines.

Maintainability and Portability Requirements: How adaptable should the system be to a change

E.g the system should have plugin support to add features later; the system should be able to run from a different physical location.

Security requirements: Security, confidentiality, and integrity of the project

Cultural and political requirements: Human factors

Legal requirements: Conformance to applicable laws

E.g personal financial records of the end-users or customers cannot be stored in the system for  more than three months as per the applicable law

Constraints

They define the limitation or restriction of a possible solution. They are key things that need to be kept in mind while designing a solution e.g. project budget, time restrictions, and technical architecture decisions, etc.

They are global in nature i.e. they apply to the whole project/product

The various types of requirements that could be classified as Constraints are:

Purpose of the project: Primary reasons for the project e.g. Business Objectives, Business Problem, Expected ROI, etc

Stakeholders: people interacting with the system

Users: end-users of the system e.g if the end-users are old people then this requirement will impact your interface design decision

Naming conventions and definitions: the technical vocabulary of the system to maintain consistency in meaning and usage

Relevant facts: outside influences that make a difference to this project e.g. government guidelines

Assumptions: assumptions that developers and designers will make

Example:

The project budget must not exceed $70000.

The system shall run on the existing company computers

The system shall include the last 5 years of historical data

Why Do You Need Requirements?

Consider the following steps you employ, as a business analyst,  to solve a business problem:

Step 1: You identify a business problem that needs to be solved.

Step 2: You identify the requirements that dictate what needs to be done to solve the business problem.

Step 3: You devise a solution based on the identified requirements that will solve the business problem.

From the above steps, it is clear that:

  1. Requirements guide you to design the eventual solution
  2. If the requirement itself is incorrect then the solution devised from it would obviously be incorrect. The incorrect solution would not solve the business problem and the entire effort goes in vain.

Consider this fact:

60% of the projects fail due to poor or incorrect requirements.

If the project is a skyscraper then the requirements are definitely the base foundation.

Hence, requirements are needed as the success of the project greatly depends on it.

The post is  based on my notes and understanding from this BA tutorial