Software requirements are the conditions that must be met for a release to be considered complete. Requirements specs are the documented descriptions of those conditions. The term requirement is often used interchangeably with:
- Acceptance criteria
- Specifications (aka specs)
A product manager or product owner is the person usually responsible for collecting and documenting requirements.
In his book Inspired, author and product leader Marty Cagan identified four areas that product teams should consider when collecting requirements:
- What requirements will customers find valuable?
- What user-interface will customers find usable?
- What technical solution will be feasible for the engineering team to develop?
- What requirements will be viable for the various aspects of the business?
Finding requirements that are valuable to customers means product teams need to validate the root causes of customer problems and potential solutions to those problems. Some methods to gather requirements from customers include:
- Problem framing exercises
- Opportunity solution trees
- Concept-validation interviews
In each case, requirements need to be validated through customers.
Ensuring that UI solutions are usable means that UX and product teams need to verify that the designs they created will work for the customer. Some methods to gather usability requirements include:
- Usability testing
- Contextual inquiry
- Card sorting
Organizations can often steam roll their development team by dictating how a solution should be built. Engineering teams should be given opportunities early and often to negotiate the feasibility of a solution.
A solution might be valuable and usable to the customer and technically feasible to the engineering team but it might not be feasible to the business. Product teams will need to work with internal stakeholders to ensure that requirements fit the business' vision and strategy.
If a potential solution fails to meet these requirements then it should not be built. The product discovery cycle should continue until the requirements check all of the boxes.