21IS019 - AGILE SOFTWARE DEVELOPMENT
Unit IV & LP 15 – AGILE REQUIREMENTS ABSTRACTION
MODEL – REQUIREMENTS MANAGEMENT IN AGILE
ENVIRONMENT, AGILE REQUIREMENTS PRIORITIZATION
1. AGILE REQUIREMENTS ABSTRACTION MODEL
Agile methods are a family of software development processes Their aim is to deliver products
faster, with high quality, and satisfy customer needs through the application of the principles of
lean production to software development.
There are two different paths to follow in these phases, depending if the customer is traditional
or willing to be more Agile. Figure 1 shows a graphical representation of this process.
User Stories: In Agile methodologies, user stories serve as the primary abstraction model for
requirements. These user-centric narratives capture the desired functionality from the
perspective of end-users, focusing on the "who," "what," and "why" of a feature without
delving into technical details. User stories provide a lightweight and flexible way to
communicate requirements and prioritize development efforts.
Epics: Epics are larger, high-level user stories that represent broad features or functionalities.
They serve as placeholders for groups of related user stories and help to organize and prioritize
the product backlog. Epics provide a strategic view of the product's overall direction and allow
stakeholders to make informed decisions about feature prioritization and resource allocation.
Acceptance Criteria: Acceptance criteria accompany user stories and define the conditions that
must be met for a user story to be considered complete. They provide specific, measurable
criteria for validating that a feature meets stakeholders' expectations. Acceptance criteria help
to ensure a shared understanding of requirements between the development team and
stakeholders and serve as the basis for acceptance testing.
Definition of Ready (DoR) and Definition of Done (DoD): Agile teams establish criteria for
when a user story is "ready" for implementation (DoR) and when it is "done" and ready for
release (DoD). These definitions set clear expectations for what constitutes a complete and
actionable requirement and help to maintain consistency and quality throughout the
development process.
2. REQUIREMENTS MANAGEMENT IN AGILE ENVIRONMENT
Who maintains requirements in agile?
Product Owner: Ensures that the team is working on the most valuable features and represents
the interests of the client. When it comes to prioritizing requirements, the Product Owner is
essential. Scrum Master: Serves as a servant leader by encouraging Agile procedures and
assisting the team in getting things done.
Backlog Management: Agile teams maintain a prioritized product backlog containing all user
stories, epics, and other work items. The backlog serves as a dynamic repository of
requirements, allowing stakeholders to prioritize features based on value, risk, and
dependencies. Regular backlog grooming sessions ensure that the backlog remains up-to-date,
well-organized, and aligned with project goals.
Continuous Refinement: Agile methodologies emphasize continuous refinement and validation
of requirements throughout the project lifecycle. Requirements are refined iteratively based on
feedback from stakeholders, changes in market conditions, and emerging insights. Agile teams
collaborate closely with stakeholders to elicit, clarify, and prioritize requirements, ensuring that
the software meets evolving needs and expectations.
3. AGILE REQUIREMENTS PRIORITIZATION
Agile enables building and delivering high-quality products/solutions faster, catering to
customer demands which may keep changing very often.
Scrum teams pick the items to be developed from the team backlog/sprint backlog, which is a
subset of the Product Backlog.
Product Backlog can be the collection of requirements by the customer or solutions to
be built to cater to market demands. Product Backlog can have features, enhancements, bug
fixes, maintenance works, retrospective items, etc. The product backlog is very dynamic.
The Product Owner(PO) as the name suggests, is the owner of the backlog items in the
Product Backlog. PO prioritizes the list of items in the backlog as per the conversation with the
stakeholder.
3.1 FACTORS INFLUENCING BACKLOG PRIORITIZATION:
Business Value
Cost of Delay
Risk involved
Customer Satisfaction
Impact analysis
3.2 WHAT IS BACKLOG REFINEMENT?
Backlog refinement is the process of adding detail, estimates, and ordering the user
stories in the product backlog. It is an ongoing process that should happen throughout the
sprint. The product owner is responsible for refining the backlog, but the whole team should be
involved.
The goal of product backlog refinement is to ensure that the backlog items are ready to
be worked on by the development team. It means that the user stories should be clear, concise,
and have enough detail so that the team can estimate how long it will take to complete them.
The product owner should also ensure that the user stories are ordered in the backlog according
to priority.
This process typically includes
Discuss the User Stories and adding details
Establish the initial set of Acceptance criteria
Breaking down user stories into smaller pieces (called “tasks”),
Estimating the effort required to complete those tasks,
Identifying the dependencies and risks involved if any
Adding any additional information that will help the team complete the user story.
What is the Importance of Backlog Refinement?
First, take a look at some necessary goals of product backlog refinement.
1. Product backlog refinement aims to ensure that the product backlog is up to date and
contains all the necessary information for the development team to start work on the next
sprint.
2. It also ensures that the product backlog items are prioritized and that the development team
understands the business value of each item.
3. It also helps to identify any risks or dependencies that need to be addressed before work on
a sprint can begin.
4. Finally, product backlog refinement helps ensure the product backlog is ready for the next
sprint planning meeting.