Effective project management is essential in software development. Jira’s Epics provide a powerful solution for managing complex software projects, and understanding how to use them can make all the difference.
In this article, we’ll dive deep into the technical aspects of utilizing Epics in the Jira workflow, exploring the advanced features and Jira best practices that can streamline your software development process. So, let’s delve into the intricacies of agile project management in software development and take your workflow to the next level.
Example of an Epic
In essence, an Epic is a collection of user stories that groups them together into one valuable item. This helps the team, Project Managers, and Stakeholders see the bigger picture and the overall strategy of the project without needing to dive into the details.
Let’s say you run a general goods store. There are dozens of daily activities you need to keep tabs on: keeping the inventory in check, making sure new products are labeled properly on the shelves, cleaning the aisles, etc. These are your “stories.”
Putting all of them into one gargantuan to-do list doesn’t make a lot of sense as you’ll end up with a lot of checklist items of various value and complexity. This will make prioritization and even simple analysis of the workload way more challenging than it needs to be.
However, if you group them together using a common denominator, you’ll have a much more manageable list. In this case, related tasks like an inventory check, ordering a new delivery, and paying the vendor will become an Epic for your procurement process. You can then use the newly created Epics to prioritize your work based on the following factors:
- The impact an Epic has on your business.
- The effort or the amount of work you’ll need to complete the tasks.
- The risks that are associated with the Epic like, for example, the risk of not having full information, the risk of being a bad market fit, or the risk of not meeting regulations, etc.
- Any dependencies with other tasks or Epics.
An example that’s closer to software development can involve the addition of Augmented Reality functionality to a mobile app of a beauty product vendor. You’ll need the involvement of multiple people working on various tasks to accomplish your goal. Therefore it would make sense to group them together into an Epic.
What’s the right size for an Epic?
The appropriate size for an Epic is somewhat of a hot topic in the development community. You won’t find the “correct” answer in the Scrum Guide or in any other reference material.
I’ve heard arguments that one Epic should be doable in one Sprint, and I’ve also heard that Epics can take as long as several years. In both cases, the justification was something along the lines of, “Hey, it works for our team, therefore it is a good practice.”
In my experience, several years is a very long time to complete an Epic. This timeframe is closer to themes & initiatives in terms of volume and complexity.
A single Sprint time frame doesn’t make too much sense to me either. This is enough time to make a feature, and a feature is indeed composed of multiple stories, but I don’t believe Epics should be feature-sized.
- A theme is a multi-year endeavor
- Epics take from 6 months to a year
- Features take around 3 months
- And stories take one Sprint or less
That said, at the end of the day the “correct” size of an Epic is whatever works for you and your organization. The key is making sure that everyone, including the stakeholders, managers, and team members understand what an Epic is in your case.
Difference between Epics, User Stories, Themes, and Initiatives
By default, Jira has 3 elements to its hierarchy: Epics, Issues (Stories), and Subtasks. You can add additional layers to this functionality with Themes and Initiatives. The latter is only available for Jira Premium or third-party add-ons.
Initiatives are like epics for other epics, providing a strategic bird’s eye view for overseeing multiple company projects. For instance, an initiative could aim to boost a certain project’s market share in Spanish-speaking countries, such as an e-commerce store. This initiative would then be broken down into smaller projects like establishing connections with new vendors, investing more in advertising and marketing, or developing a mobile app for the store.
Themes are labels used to group work by categories in Jira. For example, a theme might involve adding a Spanish localization to reach a new market.
Epics serve as a project management tool to break down complex work, prioritize tasks, plan increments, and track progress among one or more teams working on the project.
Epics are commonly used by developers to define project features. For instance, when creating an e-commerce website, account management, shopping cart functionality, and PayPal integration could be considered Epics. Each task required to launch the website becomes an issue or story associated with these Epics. It’s important to note that an Epic does not necessarily represent the entire project as large projects are often divided into multiple Epics. For instance, filling website pages with content or improving SEO could be separate Epics in the e-commerce website example.
Issues refer to different types of tasks like Bugs or Stories, which form smaller features within an Epic. In this regard, a feature is the smallest element of your product that the customer can use or interact with to gain value. For instance, a customer logging into your product is a feature that can have multiple stories: login with email, login with social media, etc. whereas the login, password reset, and deleting an account would form an “Account Management” Epic together.
Pro tip: You can use a Jira Checklist to refine your requirements through a more detailed decomposition of tasks. They can be also helpful when you have some research items, as you will have a list of items that specifies the things you want to check.
Subtasks are a way to segment work and further breakdown issues in Jira. How to use Jira subtasks?If there’s a story for deleting an account, subtasks could include creating a confirmation screen, sending a verification email, performing background clean-up according to GDPR rules, and ensuring adequate test coverage.
How are Epics used in Agile?
The Agile approach to Project management encourages teams to break down their work into manageable segments or Sprints. This approach helps with prioritization and makes sure developers are lean enough to incorporate feedback and respond to change.
Epics are an element of the hierarchy that’s designed to organize the smallest pieces of work and track progress at a somewhat larger scale. Their role in Agile can be broken down into three parts:
- Break down the project to make the work more manageable
- Align the stakeholders with the product and your vision
- Highlight dependencies
These goals are achieved when Epics are visualized on a roadmap. This roadmap is similar to a Gantt chart but simpler. It offers a high-level overview of the scope by showing you the Epics (1), associated stories (2), and the time frame. You can also clearly see dependencies (3) on the roadmap. Check out this guide that’s dedicated to the Jira roadmap to learn more.
Jira extends your abilities for management and planning with a wide selection of accessible reports. The three that will help you with managing work and Epics are:
- Burnup report: This report shows the actual number of story points that were burned during a Sprint versus the scope of work that indicates the total number of story points that must be completed.
- Velocity report: The velocity report compares your commitment or the amount of work that was present when the work began VS the work that has been completed.
- Cumulative flow diagram: The Cumulative flow diagram shows you all of the tickets based on the workflow status. You can use this to learn more about potential bottlenecks in your processes, for example, if too many tickets are piling up with the ready for QA status, perhaps you need more quality assurance engineers, etc.
How to create a new Epic?
Creating a new Epic in Jira is actually quite easy. You need to open the Roadmaps interface in your Jira and click the create Epic button. You can then add new stories to your epic by clicking on the “+” button and using the drag-and-drop interface to adjust the time frame.
How to structure an Epic?
The tricky part is that most of the project planning work needs to be done before you even think about opening Jira.
Our team uses the BRIDGeS framework for multi-context analysis. This planning stage can take some time, and it will require involvement from the whole team, but the entire process can be broken down into 4 major elements:
- Problem Description: Conduct a brainstorming session to identify key subjects and their descriptors. Ensure that all team members have a thorough understanding of the context before moving forward.
- Prioritization Exercise: Prioritize benefits, risks, and issues to focus on the most important tasks during the Solution Stage. This will prevent time wastage on less critical tasks.
- Solution Variations: Generate potential high-level solutions that address the benefits, risks, and issues identified in the Problem Space.
- Solution Breakdown: Break down the high-level solution into smaller, manageable bodies of work. These will become your list of Epics that are already designed within a roadmap-like implementation plan. Translate this plan into Jira.
You can learn more about the framework in more detail from this guide to project management in Jira.
Tips and best practices for Jira Epics
Lastly, here are some handy tips for working with Epics and Roadmaps in Jira.
- Build Epics around OKRs or Objectives and Key Results. This way, the team will know what needs to be done and why.
- Define the completion of an Epic as well as the Definition of Done and Acceptance Criteria beforehand. You can also use checklist templates to help with automating this process.
- Don’t make your Epics too big. There is always the temptation of adding new tasks to an Epic simply because it’s already there.
- Close your Epics when they are actually done rather than when all of the tasks are closed. It is ok to leave open issues in an otherwise completed Epic if they’ve lost their relevance or have been deprioritized.
- Revise the roadmap on a regular basis. My team has a practice of revisiting the roadmap on a weekly basis. This helps us communicate and visualize blockers in a timely and efficient manner.
- Be realistic with your scope. Having more tasks than your team can realistically deliver will cause fast burnout, and it will make the working process much harder than it needs to be simply due to the need to juggle tasks.
- Clearly outline your dependencies. This will make prioritization much simpler, and the bigger picture will be more visible to the stakeholders.
- Take a clear look at issues without Epics during your backlog grooming sessions.
Would you like to learn more about using Jira effectively? Check out these articles:
- Sprint planning in Jira
- Gathering data with Jira Issue Collector
- What to do when you need a subtask of a subtask
- How to efficiently work with multiple subtasks
Everything is simpler when the process is well-documented and the progress is visible at a glance.