Defining User Focused Requirements
Requirements should provide all information necessary to develop a feature as the envisioned by the author to ensure team's deliver the desired result. In order to achieve this, at a minimum requirements should include a user story, acceptance criteria and technical requirements, and where appropriate, out of scope items, final designs and copy, and any other relevant documentation or linked tickets.
To ensure the requirements effectively capture user value, they should follow the INVEST criteria:
Typically written in the format of "As a user, I want {action}, so that {outcome}" (also known as role-feature-reason), a user story frames the requirements from the user's perspective of a scenario. If a scenario cannot be framed from the perspective of providing value to a user, that should be a trigger to consider whether the story is appropriate and ready to be defined.
领英推荐
Acceptance criteria define the user interactions related to the requirements and serve as the basis for testing. Like a user story, it uses the formula of describing the precondition, action and outcome, typically using the syntax "given {precondition}, when I {action}, then I {outcome}" (also known as gherkin syntax). When defining the interaction, it's important to describe what is being done without being prescriptive to how it should be done.
Technical requirements detail implementation details, such as required libraries and target versions, database schemas, and API contracts or contracts between application layers. Although defining contracts seems to oppose negotiability, contracts themselves should be independent and negotiable, and can serve as the basis of the unit tests written as part of development, which is especially important when employing test driven development.
Out of scope, further information, designs and copy are all optional dependent on the scope and needs of the requirement, but in a general sense should be any additional information required to build out the requirement as envisioned, and serve as or link to the source of truth for what is being built.
Thoroughly defining the requirements of a feature is essential to accurately and efficiently building a product. By following these guidelines, development teams can accurately prioritise and plan work while ensuring that the end product meets the user's needs and expectations.