Many Assembla projects have moved beyond a simple list of tickets. Our users are organizing projects hierarchically with parent and child tickets. They are also working with agile methodologies that do planning at the Epic, Story, and Task levels. We have added a new field called "Plan Level" to Assembla tickets. This will help you add parent and child tickets at multiple levels - Epic, Story, and Subtask.
Story is the default type. Any ticket that you create will start as a story.
You can add Subtasks to a story on the planner, sidebar, or Related Tickets tab. Subtasks are steps to complete a story. They help you organize design, development, and bug fixes before the story release.
Epic is the top level. An Epic describes a big feature that you will implement over time, by releasing a series of stories.
Why are they different?
In previous versions of Assembla, you could add child tickets to any ticket. You did not need to worry about the "Plan Level". The new system has types with different behaviors. Most of it will work as you expect, by default. However, it is more complicated. Why do we need these new types?
When you move a Story to a new milestone, you move all of its tasks. Tasks are tightly attached to a Story. We assume that tasks are always finished at the same time as the parent story. You cannot move a task to an implementation milestone like "Current", without moving the parent story. You release a story, not the tasks.
If you have an Epic in your backlog, you can move its stories to the Current or implementation milestone one at a time, and release them one at a time. Stories are loosely attached to an Epic. So, you can finish Epics incrementally. You can "Implement feature 1" and then later "Implement improved feature 1".
Our users have posted many requests about child ticket behavior. Some people want stories. They want to attach a set of tasks, and have those tasks move to the Current milestone with the story, and then get closed when the story is released and closed. We implemented this behavior on the Planner. Some people want epics. They want to make an outline with a list of stories under an Epic or topic, and then move each story to implementation at the right time. We implemented this behavior on the Outline. To resolve the conflict between these two views of how child tickets should behave, we created the different plan levels. These plan levels match the different ideas of "Epic" and "Story" in most agile methodologies.
Setting the Plan Level
The default Plan Level is Story. If your Plan Level is empty, your ticket will act like a story. You can set the Plan Level to Epic or Story in the sidebar field. When you create child tickets of an Epic, you will create stories (loosely attached). When you create child tickets of a Story, you will create Tasks (tightly attached). It sounds complicated, but it will work by default. You can only create Tasks by adding them to a Story.
The Outline view will automatically create types at the correct level, with Epic at the top level.
Stories make your planning views smaller and easier to manage. They describe the important features that you want to release, and they hide extra details in subtasks.
It is a good practice to plan your backlog with stories. Then, when you move a story to the current sprint or milestone, you expand it with more detailed tasks. We show stories on the Planner. You can open a story and add Tasks in the Task tray under it. You can also track individual bugs that needs to be fixed before the release of a story, by adding them to the story as Tasks, using the sidebar or the Related Tickets on the Story ticket.
Traditionally, a story describes a complete function for a particular role, in the form "As <a role>, I want to <product functionality/action>, so that <benefit/goal>." For example, a story could say "As a Scrum iteration planner, I want to open a story in the planner, and add tasks to it, so that I can more clearly define and estimate the work in the current sprint." We wrote about stories in our draft ebook, here
Epics are a new feature to help you organize bigger backlogs. You can sort a list of 20 or 30 stories into a sorted backlog. After that, you will want to organize them by topic, or "Epic."
The child ticket in an Epic is a story. Stories are not strongly attached to their parent Epics. You can take stories from an Epic, one at a time, and move them into different implementation milestones.
Why use Epics?
- You can work with bigger backlogs. You will organize the stories in each Epic as a separate topic, without looking at the complete backlog.
- You can distribute planning work to more people, by assigning different Epics to different people.
- Epics help you to be more agile, because you can finish stories one at a time, and implement the Epic incrementally. You want to release frequently and incrementally.
- And, Epics help you see what is completed. You can see what stories are done, what stories are in progress, and what are in the backlog.
One of our Assembla teams created a special milestone called "Epics" for our Epics. We can select the Epics column into the Planner backlog column, and see the high level topics that we are working on. The Outline clearly shows your Epics in the left column. And, you can select the Epic type as part of a list filter.
Views of the Plan Level
On the ticket sidebar, you can set Plan Level to Story or Epic
The Related Tickets tab shows you child tickets
On a Story, the Related Tickets tab helps you add Subtasks.
On an Epic, the Related Tickets tab helps you add and manage and schedule Stories.
In List view, icons show the parent Epic in green, parent story in orange
Stories on the Planner - add or drop Subtasks
Epics on the Planner - see stories, and link to the related tickets page to edit
This is a tricky one. If we allow you to drag and drop stories, you will see them in two places - under their home milestone, and under their Epic.