What are Epics?
Epics are a theme of work that contains several issues, or sub-tasks. Epics are the best way to group related issues together into larger goals that span sprints (typically 2-6 weeks).
The concept stems from the agile principle that tasks should be broken down into small, manageable chunks; that way, you're able to ship impactful changes more often and ultimately gain more control over the release cycle. In agile development, a “user story” is the smallest unit of work, and an epic is essentially a “big” user story. We do this in Zenhub by creating an Epic to map out bigger goals, then adding related GitHub issues to flesh it out.
What's in an Epic?
Three main concepts work together to form an Epic. In agile, we know these as Epics, user stories and sub-tasks. In GitHub and Zenhub these concepts are reflected as Epics, GitHub issues, and markdown checklists.
Epics help bring together tasks to form a more powerful GitHub Issue management system. This helps you plan and execute your product backlog and sprint work more effectively.
But first, a note on Zenhub sprints and Zenhub Epics. While they seem similar at first glance, their purpose is different. In fact, they function best when used together!
You can also learn more about agile concepts in GitHub and Zenhub to master your Zenhub workflow.
Epic or GitHub issue?
Not sure whether a GitHub issue should become an Epic instead? First, consider its complexity and the time it takes to complete a task. If an issue is too complicated (if multiple tasks are required to finish it), it's probably better as an epic. Splitting tasks into easily completed pieces of work will help you ship valuable changes more often and reduce technical debt. Also, issues should be completed in the smallest amount of time possible. If an issue will take weeks or months to finish, it should probably be an epic.
The difference between Epics and Sprints
One of our most common questions is how do Sprints and Epics interact. Sometimes they're even confused for one another. Zenhub Sprints and Epics aren't interchangeable; in fact, they work best when used together!
In an agile framework, a Sprint is typically 2-4 weeks of work with a goal of shipping workable code by the end. These iterative changes are a cornerstone of agile development. Working in Sprints move teams toward a goal of shipping business value (features) to the user. Zenhub Sprints allow teams to automate their Sprint planning process. Learn more here.
Since Sprints are tied to short iterations of work, they contain issues related by time, and not necessarily related by subject. The scope of work is fixed once a Sprint begins.
In contrast, Epics contain issues related in subject, and the scope is flexible. Issues can be added or removed as teams discover more about the bigger goal.
Epics are intended to give you a broad understanding of larger initiatives. When paired with Zenhub Sprints, you’re able to work towards these bigger goals in manageable iterations. This means you deliver more business value (e.g. workable code) more frequently. Pairing Sprints with Epics gives you a granular way to plan and achieve your product backlog. It clarifies both the big picture and the minute details that make it up, providing everything necessary to ship better projects faster.
Creating Epics in Zenhub
To create a new Epic navigate to the roadmap and select the + plus icon, which can be found beside the Projects and Epics header. From there, select new Epic from the dropdown menu. You will then be prompted to give your Epic a title.
Adding issues to your Epic
Once you have created an Epic, the best way to add issues to your Epic is by:
1. Using multi-action on the board
To use multi-action, hover over the avatar for any issue card on the board to select the Issue. From here, you can select as many issues as you'd like and then perform updates to those issues at once. Choose the Set Epic option to quickly add these issues to your Epic:
2. Quickly creating new issues from the Epic page
Select to view the epic on the Board. You can select the + icon located below the progress bars to quickly capture scope requirements for the Epic:
Quickly creating new issues directly from the Epic page
When opening an Epic page from the board, you'll get a new list view that will show all stories and tasks within the Epic, which pipeline they are currently in, as well as associated information for these issues such as their estimate, assignees, and labels. From this page, you can quickly create new issues to capture new scope requirements that may have been surfaced. Select the + icon located below the progress bars to create issues:
When viewing an Epic you may also see a heading named Issues not in this Workspace. Issues that are a part of the Epic but not a part of a repo in the current workspace you are viewing will be listed here. Issues within the current workspace will continue to be listed under their respective pipeline name.
Setting and removing Epic dates
When viewing an epic from the roadmap, you'll have the option to set both a start date and an end date. You can also alter Epic dates using the calendar view:
This will automatically add the Epic progress bar and timeline to Zenhub roadmaps which provides an at-a-glance progress report for your Epics. Learn more about getting started with roadmaps here
You can also change the dates of an Epic by clicking and dragging the start or end of an individual Epic timeline bar on the roadmap. You can then see the start and end of an Epic change, under the Epic heading on the left hand side of the roadmap.
At the top of the Epic is also a progress bar. There are two bars: one for Issues completed and another for story points completed. Learn more about estimating issues with Zenhub here.
As you start to interact with Issues, complete work, and go about daily activities such as stand-up or daily to-do planning, you can leverage the board Epic filter to drill down on story or Project work that's been rolled-up into your newly created Epic:
Epic points vs. story points
Epic points are the sum of all estimated story points from all the Issues within the Epic, including any nested Epics. The Epic points completed status indicator summarizes all completed story points across the Project. (Learn more about story points and estimates here).
Epic points give a summary of complexity of all issue estimations that belong within a single Epic. At the top of the parent Epic, the Epic points completed represent the total story points of all issues within an Epic.