Epics and Themes


User Stories are a not mandatory, but very recommended part of Scrum and eXtreme Programming methods. Most of people acquainted with agile software development feel comfortable with the requirements written in the form of “As a [user role] I want to [goal], so that [reason]”. Less people are acquainted with epics and themes usage.

Terms

Epics are just huge stories for capturing relatively low priority requirements that are often too complex to estimate right away and that are going to be detailed later. An epic for a car could be “As an environment conscious driver I want to be able to use both gas and hydrogene”. A theme on the other hand is a set of stories grouped around some functional area, user group or anything else that makes sense for the product owner. Themes are often confused with epics, because quite often the epic is split down into exactly one theme. A theme for a car could be a set of stories grouped around the building the hydrogen engine.

High level

Individual stories are good for prioritizing work between iterations and for negotiating during the iterations. However, for any non trivial project stories are likely to be somewhat too small and detailed for prioritizing on the high level – for preparing or rethinking the release plan. That is the point when epics and themes come into play. Both are for considering the project on the very high level. Your project might have 30 or 200 user stories of which 2-10 could be huge epics (possibly not all for the closest release) and the rest could be grouped into just 3-10 themes.

Epics and themes allow for the bird’s eye view of the project. The only real difference between epics and themes is in that epics are huge single stories often without a possibility for relevant estimates, while themes are the sets of stories (think rubber band of story cards as pictured above). Naturally, if the stories are grouped in such a way that part of a theme happens to be clearly less important, than the rest of it, after initial rough prioritization it might be needed to split a theme into several smaller sub-themes. Somesub-themes to go higher in the product backlog, some – lower.

Your experience

How do you use themes and epics? What do you find particularly useful or confusing about them?

Picture courtesy of hamed masoumi @ Flickr

8 thoughts on “Epics and Themes”

  1. I had used epics for describing large parts of the system that have lower priority.
    But I have also found epics to be useful when you want to write vision document about project. Because what the vision document in reality is if not the set of epics. When you think about your project and try to write down vision document, easiest way for readers to understand vision of project is to describe project with epics.

    I am aware of themes as a possibility to group similar user stories but so far I didn’t use them widely.

    Jan

  2. I agree, Jan. Epics are effective ways for abstracting the details out. Especially, when you don’t know the details yet 🙂
    I find themes most useful on the major prioritization session such as the release planning workshop. It helps to group similar small stories together and if PO wants to make only half a theme high priority – well, it is always easy to split the theme back into stories or sub-themes.

  3. Anyone from a Prince2 background will recognise themes as the Product Breakdown Structure. I think it boils down to whether you are making huge systems or modest incremental changes. In the huge sceanrio the epics and themes are essential to give you the ‘divide and conquer’ approach, great say for a team building a large desktop app. For smaller scenarios say a web team building the next bi-monthly release, the content is relatively small so they are less important.

  4. I agree. Themes are needed when you are lost in a sea of many small stories and you need to groups them into bigger packs for prioritization. I always tend to imagine a theme as a stack of story cards with a holding rubber band. It conveys both the idea of grouping and the idea of flexibility – if it happens that theme doesn’t make much sense anymore, it is very easy to split it into sub-themes or individual stories.

  5. “Epics” “Themes” “Stories” …

    It’s creating a technical language out of a metaphor, which muddies both the technical philosophy and the underlying language.

  6. Well, whenever you go into a new subject area whether it is technical or not, you have to learn a bit of a new lingo. IMHO, agile methods are quite lightweight in this regard.

    As for epics, stories and themes, lately I am trying to use the term “epic” more rarely and talk about “big fat stories” instead. Themes – well, they are just the pack of related stories that might not mean too much to the development team, but helps the customer prioritize his requests. The important thing is only to realize that themes are dynamic collections of whatever customer wants to see bundled together for convenience, while epics are just big stories.

  7. Hi
    This is how we use the terms Epic and Theme. We use the term theme to broadly describe functionality in the application such as “sell product”, “inventory management” and so on…

    Epics make up subset of themes; so for the theme “inventory management” there are epics such as “As a user I want to add product to my inventory so I know what I have to sell” Under the epic there are multiple user stories to give more detail. Early in our agile adoption we used Epics, now we call Epics parent user stories and have child user stories underneath them. For us it works.
    Pat

Leave a Reply

Your email address will not be published. Required fields are marked *