An epic in agile software development is a project-level initiative. They are a collection of user stories that all must be released together for the project to be considered complete. A user story is just an individual task that a developer can work on and may or may not be included in an epic.
Epics often represent new features, technical upgrades or other enablement work that serves as a high-level plan of record for the business. Similar to how a collection of ranked user stories makes up a backlog, a collection of ranked epics are what makes up a roadmap.
Example
Imagine that a product team planned to build a “save progress” feature in a streaming app. The objective would be to give users the ability to pick up where they left off in a video.
Some of the user stories within this epic might include things like storing each user’s progress points for each video they watch or adding a “resume” button for each video’s details page.
An epic typically starts out as just an idea or a bullet point on the roadmap. As the product discovery cycle evolves, the details of the epic take shape in the form of business requirements and UX designs (when designs are applicable to a solution).
Once the designs are validated and the development team has approved the feasibility of the solution, then user stories are created. From there they are ranked in the backlog and are ready for development to work on. After the last story in the epic is complete and all stories in the epic pass QA testing, it’s ready to release.