Managing Epics in JIRA
A brief look at how I manage tickets in JIRA. This has implications for Git branches (when to use Ticket Branches vs. combining multiple tickets into a single Feature Branch).
I've seen a lot of folks create ALL the user stories to start for EVERY Epic, and I feel like it's just busy work for the Business Analyst. It makes the backlog harder to sort, it's annoying for the devs to provide estimates on things they aren't going to look at for quite a while (and the estimates end up being inaccurate anyway).
So instead of breaking everything out at the beginning, this is the approximate flow that I use (this is more or less described in Jeff Patton's User Story Mapping, so you don't need to take my word for it):
- Ideally kick off with a brainstorming session of everything you might want the system to do. Google "User Story Mapping" for articles. The book is decent, but mostly gives case studies, not a lot of extra "HOWTO" detail.
- Create Epics for the major areas of business value. These Epics should have a definition of done and be "closable". If they're a long running (sub)system, you should use categories / labels instead. For example: Photo Gallery is a closable Epic; "theming" is a long running label.
- In every Epic, import the details from your brainstorming session to include the "cheapest possible way to expose this business value" through to "future daydreaming". This will give you a really good sense of what you should scaffold if you were building for the future vs. what you might want to duct tape together for now, but plan to replace later. There's a great (short!) presentation about this. With one client we jokingly referred to these levels as "MVP", "MVP+", "MVP++". They weren't always developmentally sequential though. Sometimes MVP+ was technically a different solution. The Epic captured the range of what the client would be happy to see delivered, and allowed for great conversations about what we should do NOW vs. things that were "super very important for later" (yup, the client let me use that language; he was brilliant good fun to work with).
- One or two sprints before you're ready to start on the Epic, work with a developer to break the Epic into the likely stories / tasks needed to "expose the minimum work to provide the business value outlined in the Epic". This is where you start getting into details about the features and the estimation. I like Epics that can be closed within a couple of sprints, but / and the descriptions often have a LOT more in them. Aim to have the first round of stories completed within a couple of sprints. Then decide if the Epic should be closed, or if the next round of stories should be shaved off and worked on.
- Write up the individual User Stories (as separate JIRA items) for the Epic using the format of Card / Conversation / Confirmation. Card should include business value; Conversation should copy over relevant details from the Epic; Confirmation should include the steps you plan to have QA take to close out the ticket. (An alternate approach to ticket format that I helped to develop is described on the Drupalize.Me site.) This tells the devs exactly what you want them to build. The BA might write the tickets up at this point, but anyone who's been involved in the conversation should be able to (if they can't; there probably wasn't enough discussion at the Epic level). Ideally each User Story is equally weighted in terms of work, but not always. Once the devs start working, I don't worry too much if they combine things into one Feature branch instead of per-ticket branches. SO LONG AS they can get the Feature wrapped up in NOT MORE than one sprint. Very big branches are a PITA to code review and typically will have more issues with integration / merge conflicts than lots of small ones. In a Drupal build, the Epic might take several sprints to close as it could include custom dev work; site building / Features; theming; content migration; etc.
- Once the individual stories are written up; update the Epic description to include a bullet list of the Cards + link to the Epic. Yes, the list will also appear at the bottom of the description, but I liked putting it into the text as well.