Requirements are the information that best communicates to an engineer what to build, and to a quality-assurance manager what to test.
A requirement has three functions:
* Defines what you are planning to create
* Identifies what a product needs to do and what it should look like
* Describes the product’s functionality and value
Requirements vary in complexity. They can be rough ideas sketched on a whiteboard or structured “shall” statements. They can be text, detailed mockups or models, and can be part of a hierarchy with high-level requirements broken down into sub-requirements. They may also be detailed specifications that include a set of functional requirements describing the behavior or components of a product.
High-level requirements are sometimes referred to simply as “needs” or “goals.” Software development practices might refer to requirements as “use cases,” “features” or “functional requirements.” Agile development methodologies often capture requirements as “epics” and “stories.” Regardless of the terminology, requirements are essential to the development of all products. Without clearly defining requirements, companies risk creating incomplete or defective products.
Throughout the process there can be many people involved in defining requirements. A stakeholder might request a feature that describes how the product will provide value in solving a problem. A designer might define a requirement based on how the final product should look or perform from a usability or user interface standpoint. A business analyst might create a system requirement that adheres to specific technical or organizational constraints.
Four Fundamentals of Requirements Management
Today’s sophisticated products and software applications often take hundreds or thousands of requirements to sufficiently define the scope of a project or a release. Teams must be able to access, collaborate, update and test each requirement through to completion because requirements naturally change and evolve over time during the development process. They must also understand the four fundamentals of requirements management:
1. Good Requirements
A good requirement should be valuable and actionable. It should provide a pathway to a solution, and everyone on the team should understand what it means. Good requirements need to be concise and specific, and should answer the question, “What do we need?” rather than, “How do we fulfill a need?” With accurate requirements, stakeholders can understand their part of the plan. If they lack this knowledge, and if requirements are unclear or vague, the final product could be defective or fail.
Learn more about writing high-quality requirements.
2. Collaboration and Buy-In
It’s difficult to get a company to agree on requirements, particularly for large projects with many stakeholders. In practice, it’s not necessary to achieve consensus through compromise. It’s more important to have team buy-in (before or after management approves the project) so the development process can move forward. With buy-in, the team backs the best solution, makes a smart decision and does what is necessary to move forward.
Team collaboration is key to establishing good requirements. Collaborative teams work hard to make sure everyone has a stake in the project and provides feedback. When there is a commitment and understanding of project goals, team members tend to support other’s decisions. It’s when developers, testers or other stakeholders feel “out of the loop” that communication issues arise, people get frustrated and projects get delayed.
Read more about connecting engineering and business teams for better products.
3. Traceability and Change Management
Requirements traceability is a way to keep everyone in the loop. It organizes, documents and keeps track of all requirements, from initial idea to testing. A simple metaphor for traceability is connecting the dots to identify the relationships between items within a project. The following figure shows an example of a common downstream flow.
Companies should be able to trace each requirement back to its original business objective throughout the development process, not merely after it’s complete. By tracing requirements, companies can identify the ripple effect changes have, see if they have completed a requirement and if they tested it properly. With traceability, and by managing changes effectively, managers gain the visibility to anticipate issues and ensure continuous quality.
Traceability also makes sure the product meets all the vital requirements that come from different stakeholders. By tracing requirements, all team members stay connected to each other and to all interdependencies. And by managing changes well, a company can avoid scope creep — unplanned changes that occur when requirements are not clearly captured, understood and communicated. The benefit of good requirements is a clear understanding of the product and the scope involved. This leads to a better development schedule and budget, which prevents delays and cost overruns.
Improve product development with five tips for traceability.
4. Quality Assurance
Getting requirements right the first time means better quality, faster development cycles and higher customer satisfaction with the product. Concise, specific requirements can help companies detect and solve problems earlier rather than later, when they are much more expensive to fix.
Research has shown that project teams can eliminate 50 percent to 80 percent of project defects by effectively managing requirements. In addition, according to Borland Software (now Micro Focus), it can cost up to 100 times more to correct a defect later in the development process, after it’s been coded, than when it’s still in written form.
By integrating requirements management into their quality assurance process, companies can help teams increase efficiency and eliminate rework. According to Carnegie Mellon Software Engineering Institute, 60 to 80 percent of the cost of software development is in rework. In other words, development teams are wasting the majority of their budgets on efforts they didn’t perform correctly the first time.
Requirements management can appear to be a complex topic, but at its core, it’s a simple concept. It helps teams answer the question: Does everyone — from business leaders to product managers and project leaders to developers, QA managers and testers — understand what is being built and why?
When everyone is collaborating and has full context and visibility into the discussions, decisions and changes involved in product development, they maintain high quality and almost always ensure success.
Go deeper into improving your products through better requirements with our webinar, “Best Practices for Writing Requirements.”