The difference between themes versus epics are a common sticking point for many teams first diving in to user stories. Not only can descriptions of both topics often be vague, but the difference is often muddled further by many project management tools that use the two terms interchangeably. However, the difference doesn't have to be so hard.
Themes are a group of related user stories. Often these stories can be comprised of tasks that may have been too big to fit into a single user story, so they were split into multiples. An example may be a set of stories dedicated to improve the performance of an app…
- As a customer, I want to view my last 100 transactions in under 2 seconds, so I can quickly spot inconsistencies.
- As a loan officer, I want to retrieve a candidate's credit history in under 30 seconds, so I can discuss lending discussions while the candidate is still in my office.
Epics are a group of related user stories, which all contribute to a common goal. In nearly all cases these underlying user stories have all been split out of the original epic to allow the team to tackle them over multiple sprints. As an example, imagine that we've broken the process which allows a customer to analyze the spending trends in their checking account into several stories all comprising the same epic of “As a customer, I'd like to view my spending trends, so I can make smarter decisions.” The underlying stories may look like this…
- As a customer, I want to import transactions into my checking account, so they can be analyzed for spending trends.
- As a customer, I want to view the categorical spending trends from my checking account, so I can see where I tend to spend the most money.
At first glance, the stories that make up the epic may seem very similar to those in the theme. Each are clearly defined, bite-sized chunks of work. Each contribute to a larger goal of the system. However, there's one crucial difference.
While the stories that comprise the theme are not interrelated and could easily be delivered independently from one another, the stories that comprise the epic provide no value until all are delivered.
Each of the performance tuning stories in our theme are valuable, and either would likely be appreciated by our users. However, we could easily deliver the story to improve the performance of viewing recent transactions in one release, and the story to reduce the time to retrieve a candidate's credit score in another. The stories, while related, have no dependency on one another and could easily be delivered independently and in any order.
Contrast this, however, to the stories focused on importing and analyzing transactions from a customer's checking account. In this case, ordering is important as we will not be able to view a customer's spending trends until we've imported the transactions from their checking account. However, the ability to simply import transactions provides no real value to a user by itself. This means that we cannot truly release this story until the second story, to view categorical trends, is completed as well.
The stories that comprise a theme can easily be delivered independent of one another, while the stories that comprise an epic provide no real value until the overarching epic is delivered in its entirety.
Want to learn even more ways to slice your user stories so your team can start working with them immediately? Check out my course, Creating Effective User Stories, for easy techniques that will have you writing better user stories today.
Don't have a Pluralsight membership yet? Try the entire Pluralsight course catalog free for 10 days here.