In the world of software/web/app development there is no shortage of talk about ‘requirements’. Depending on the methodology you subscribe to (or don’t), you’ll have a point of view on topics such as how detailed ‘requirements’ should be at the various stages of the project or product life cycle, as well as the level of rigour that should be applied to managing them.
There are also many different approaches to eliciting requirements (i.e. workshops, interviews etc.) and similarly, there are many different ways of documenting requirements (i.e. use cases, process models etc.). Making these types of decisions will be based on things like the type of project, technology and customer you’re working with as well as your personal and team preferences based on what has worked (or hasn’t) in the past.
Prior to making these types of decisions for any given engagement, it’s often helpful to take a minute to define what exactly a requirement is, because like many things in life, it can mean different things to different people. Based on the International Institute of Business Analysis’ (IIBA) ‘A Guide to the Business Analyst Body of Knowledge (BABOK)’, version 2.0, a requirement is defined as follows:
- A condition or capability needed by a stakeholder to solve a problem or achieve an objective.
- A condition or capability that must be met or possessed by a solution or solution component to satisfy a contract, standard, specification, or other formally imposed documents.
- A documented representation of a condition or capability as in (1) or (2).
These definitions may be different from how you might be inclined to describe a requirement, but a good case can be made for taking the time to describe them. Another step that is helpful is to define and set expectations around the types of requirements that will be applicable on your project. The IIBA BABOK_v2.0 outlines the following classification scheme:
Business Requirements are higher-level statements of the goals, objectives, or needs of the enterprise. They describe the reasons why a project has been initiated, the objectives that the project will achieve, and the metrics that will be used to measure its success. Business requirements describe needs of the organization as a whole, and not groups or stakeholders within it. They are developed and defined through enterprise analysis.
Stakeholder Requirements are statements of the needs of a particular stakeholder or class of stakeholders. They describe the needs that a given stakeholder has and how that stakeholder will interact with a solution. Stakeholder requirements serve as a bridge between business requirements and the various classes of solution requirements. They are developed and defined through requirements analysis.
Solution Requirements describe the characteristics of a solution that meet business requirements and stakeholder requirements. They are developed and defined through requirements analysis. They are frequently divided into sub-categories, particularly when the requirements describe a software solution:
- Functional Requirements describe the behavior and information that the solution will manage. They describe capabilities the system will be able to perform in terms of behaviors or operations—specific information technology application actions or responses.
- Non-functional Requirements capture conditions that do not directly relate to the behavior or functionality of the solution, but rather describe environmental conditions under which the solution must remain effective or qualities that the systems must have. They are also known as quality or supplementary requirements. These can include requirements related to capacity, speed, security, availability and the information architecture and presentation of the user interface.
Transition Requirements describe capabilities that the solution must have in order to facilitate transition from the current state of the enterprise to a desired future state, but that will not be needed once that transition is complete. They are differentiated from other requirements types because they are always temporary in nature and because they cannot be developed until both an existing and new solution are defined. They typically cover data conversion from existing systems, skill gaps that must be addressed, and other related changes to reach the desired future state. They are developed and defined through solution assessment and validation. documentation and communication) tasks that can be performed in order to understand how a solution will deliver value to the sponsoring organization.
It’s important to note that – much like the ‘Project Management Body of Knowledge’ (PMBOK) in the Project Management world – the BABOK isn’t intended as prescriptive ‘how to’ for delivering projects but rather a framework for describing Business Analysis (including requirements elicitation, documentation and communication) tasks that can be performed in order to understand how a solution will deliver value to the sponsoring organization.
With this in mind, the exact definition and categories outlined in this post may not always work for all your projects. But be that as it may, the process of taking a bit of time at the outset of your projects – as a means to establish a common language with the teams and stakeholders – can help to get the project off on the right foot.
Source: A Guide to the Business Analyst Body of Knowledge (BABOK) – Version 2.0.
Image source: http://www.compulegal.eu/files/pm.htm