Requirement definition is one of the processes in software development that defines what users can do with the software and how the software should behave. • In this process, the development team gathers opinions from stakeholders, analyzes business circumstances, discusses priorities and details, and documents them. • In Agile, a Product Owner is responsible for requirements, while the entire team collaborates on the work.
1. The first reason is to avoid developing unnecessary features. 2. The second reason is for accurate estimation. 3. The third reason is that subsequent processes, such as technical design, coding, and testing, will be determined based on the requirements.
Owner The Product Owner takes the final responsibility for requirements. Developers The Product Owner can ask the Developer for help defining requirements while remaining responsible. Scrum Master The Scrum Master usually doesn't define requirements, but if the Product Owner and Developers are inexperienced, she offers to coach.
Backlog refinement is an unofficial meeting where the development team can define requirements. • During the meeting, participants can discuss not only requirements but also prioritization, estimation, development approaches, and business background, as well as anything related to refining the Product Backlog. • Anyone on the team can propose to hold the meeting, and it can be held anytime during a Sprint. • Participants depend on the project and requirements and may include anyone who needs to join the discussion.
presents another opportunity to define requirements. • Sprint planning is an official meeting that should occur at the beginning of the Sprint and be time-boxed to a maximum of eight hours for a one-month sprint. • Based on the outcome of the requirement definition, the development team determines which Product Backlog Items will be completed by the end of the Sprint.
Story? A User Story is a one-liner sentence to describe what user want to do with a product. Structure As a <who>, I want to <what> so that <why> Example As a user, I want to send marketing emails to clients of our product so that I can promote new products.
Criteria Acceptance criteria are detailed requirements that support the User Story, and the development team must meet them upon completing development. Gherkin Syntax Gherkin syntax is the best practice for writing Acceptance Criteria, consisting of Given, When, and Then. Description “Given” describes the initial context or state before the user takes any action. “When” describes the action taken by the user. “Then” describes the expected outcome or result of the action taken by the user. Example Given: I am on the client management page. When: I check several clients to whom I want to send the marketing email and click the “send” button. Then: The email is sent and clients receive a marketing email.
such as wireframes, prototypes, or designs, help people understand what to build. • Although not explicitly mentioned in Agile or Scrum, visual images are highly recommended for creating a shared understanding. • They prevent misunderstandings and enhance communication, as humans are highly visually-oriented.
should be independent from others. Negotiable The Product Owner and Developers can negotiate. Valuable User Story must be valuable for users. Estimable User Story can be estimated. Small User Story can be completed within a Sprint. Testable User Story are testable through Acceptance Criteria.