Getty Images/iStockphoto
Epics, features and user stories explained
Epics, features and user stories are all uniquely important work products in Agile product management. Learn the difference between them and how they work together to create value.
Epics, user stories and features are the building blocks of Agile development.
Although they are all expressions of functionality, they have distinctly different roles and uses in the way requirements are defined in Agile methodology.
Successful Agile project management is focused on the product roadmap, as it provides the highest-level plan for product development. From the product roadmap come the initiatives that set the overall direction. From the initiatives come themes, which set the high-level objectives on which the epics, features and user stories are based. Epics, features and user stories are the most detailed levels of the product planning hierarchy.
Since epics, features and user stories play key roles in the product management process, it is important to understand each of these elements, their respective purposes and how they interact to form a basis for the development of the product backlog.
Epics vs. features vs. user stories
Read on to learn how epics, features and user stories fit into Scrum backlog development and how they are used collectively to form a complete understanding of not only the requirements; but also, the end users, their needs and the business value generated through the development of the functionality.
What is an Agile epic?
An epic is a large body of related work items to be completed over multiple sprints. Epics elucidate the goal and describe desired features and requirements to meet that goal. Epics are broken down into lists of user stories that show how the goal will be met. Agile teams might include scope and timeframes in epics. Epics might be spread across Agile teams and usually take more than one sprint to complete.
In Agile and DevOps methodologies, epics are used for categorizing and managing a series of tasks or user stories.
Product owners use epics to organize product backlog items or the pieces of work that can be accomplished in one sprint. Epics provide a structure through which to manage the product backlog. Many Agile project management tools, such as Jira, offer out-of-box functionality for managing the product backlog using epics.
What is a feature?
Features are distinct components of functionality that meet specific user needs and, in that way, provide tangible business value. Agile teams create a benefit hypothesis that determines how the feature will benefit the user. An estimate of business value that usually includes the return on investment is an important part of feature development. Additionally, a description focused on user needs, along with acceptance criteria, ensures that features are testable independent of the user stories contained therein.
Features contain a set of related user stories which narrow the scope. Although the product owner provides the voice of the user as features are defined, the development team provides the technical aspects, especially as the features are broken down into user stories.
Teams often use features to define the scope of the minimal viable product (MVP). The MVP is usually based on the most critical features that make the product usable and valuable. Frequently, features are the basis of demonstrations that solicit feedback from stakeholders and generate interest from potential customers.
What are user stories?
User stories are the smallest and most detailed work products in Agile methodology. Although they can be written in different formats, they are most effectively written from the perspective of the user. User stories describe the user, the action that they need to take and why they need to take such action. This is usually expressed in the template: "As a (user), I want (action) so that (result)."
Acceptance criteria are a critical part of user stories as they describe the ways in which product owner, stakeholder or tester will know that the code as developed provides the desired functionality. In testing terms, the acceptance criteria provide the expected results.
User stories are the requirements from which the development teams create units of software; they are the basis of every sprint. They are flexible and small. Since their design is a collaboration of the product owner, developers and testers, they ensure alignment and clarify the details of the goals. User stories are meant to be completed within the sprint; scope creep is an indication that the user story needs to be split.
How epics, features and user stories work together
Epics are used to group features and user stories; they outline the goals of the release and help the development team focus on the features that will provide the highest business value. User stories further define the functionality required to build the features.
Business stakeholders use epics to illustrate strategic direction of their themes and Scrum masters use them to organize the product backlog items. Features are used to clarify, streamline and prioritize the scope of the strategic direction and user stories are used to further break down and outline the requirements of each feature.
Consider an example of how epics, features and user stories work together for a fictional retail website.
The MVP of a website that offers fashion clothing is currently under development. The epics for this website might include browsing and selecting items, and placing and paying for orders and order management. Features in the order management epic might include tracking orders, returns and exchanges. User stories for the return feature include selecting orders for return, entering return information, creating mailing labels and refunding payments. These user stories can be broken down further into tasks.
Individually, epics, features and user stories are all critical elements of the Agile development process. Together, they are particularly valuable in creating MVPs and sample application functionality for sales demonstrations. They organize, focus and provide all the information that development teams need to produce software, providing value to both the business and the end users.
Gerie Owen is a lead quality engineer at ZS. She is a conference presenter and author on technology and testing topics, and a certified Scrum master.