ManagementJunior

Epics, Features, Tasks

Epics, features and tasks are the layers of a work hierarchy, and they exist because different people make decisions on different time horizons. An epic is a bet a leader makes for a quarter; a task is a step an engineer takes today. This page covers what each level is for, how many you actually need, and why the same five words mean different things in Jira, Azure DevOps and SAFe.

Epic
Weeks to a quarter
Story
Days, one iteration
Task
Hours to a day

Levels are about horizons

Every tracker ships a hierarchy — epic, feature, story, task — and most teams learn it as a filing rule: big things go in epics, small things go in tasks. That description is true and useless, because it does not tell you where to draw the line, and "big" is not a property anyone can check.

The useful rule is that each level answers a question for a different person over a different horizon. If a level is not answering anyone's question, it is overhead — and a team with four levels where two would do spends its refinement sessions maintaining a tree instead of understanding the work.

An initiative spans two to four quarters and is decided by leadership. An epic covers a quarter and is owned by the Product Owner. A feature takes two to six weeks. A story fits one sprint and is owned by the team. A task takes hours and is the engineer own next step. The levels exist because the horizon and the decision-maker change, not because a tracker offers them.

What each level is for

LevelAnswersHorizonDecided by
Initiative / ThemeWhat outcome are we pursuing?2–4 quartersLeadership
EpicWhat big capability serves it?1 quarterProduct Owner
FeatureWhat part of it ships together?2–6 weeksPO with the team
StoryWhat can a user do now?Days, 1 sprintThe team
TaskWhat is my next step?HoursThe engineer

Read the right-hand column downward. The decision moves from leadership to one engineer, and the horizon shrinks from quarters to hours. That is the whole logic of the hierarchy — and it explains why an epic owned by a developer, or a task tracked by a director, is a sign that a level has lost its purpose.

The same word, three different sizes

There is no standard behind these names. They come from tools and from SAFe, and each defines them differently — which is why two people can agree that something "is an epic" and be picturing work that differs by a factor of ten. Before arguing about a level, check whose vocabulary the other person is using.

SourceLevels it definesWhere it surprises people
Jira (classic)Epic → Story / Task / Bug → Sub-taskThere is no feature level, so an epic absorbs everything between a quarter and a sprint. Anything larger needs a plugin.
Azure DevOpsEpic → Feature → User Story / PBI → TaskA feature is a first-class level here, so an "epic" is deliberately bigger than a Jira epic.
SAFeEpic → Capability → Feature → StoryAn epic is a portfolio-level investment needing a business case and approval — far larger than either tool means.

One distinction from SAFe is worth borrowing regardless of the vocabulary you use: business versus enabler. A business item delivers value a user can see. An enabler builds the thing that makes future business items possible — infrastructure, an architectural change, compliance work, or research. Naming enablers explicitly is what stops technical work being disguised as a user story, and gives it a legitimate way to compete for capacity instead of hiding inside estimates.

How many levels do you need?

  • One team

    Two levels: story and task. An epic adds nothing when one Product Owner holds the whole picture in their head.

  • A few teams

    Three: epic, story, task. The epic is where teams see that they are working on the same thing.

  • A programme

    Four or five, with a portfolio level. Only add one when a real audience is asking a question the level below cannot answer.

The default should be fewer. Every level costs refinement time, needs its status kept honest, and creates one more place where the same work can be described twice and drift out of sync. The test for adding one is not "would this be tidier?" but "who is asking a question today that they cannot answer, and would this level answer it?".

Where the boundaries actually fall

Two practical tests settle most arguments about which level something belongs to.

  • The release test

    If shipping it alone would make sense to a user, it is a story. If it only makes sense once several pieces are out, it is a feature or epic.

  • The audience test

    If nobody outside the team will ever read it, it is a task. Tasks are the team's working notes, not a reporting layer.

A useful consequence of the audience test: tasks do not need estimating, grooming or a polished description. Time spent making the task level presentable is time taken from the levels someone actually reads.

An epic needs a hypothesis and an exit

An epic is a bet, and a bet you cannot lose is not a bet. Writing one properly takes two sentences: what you believe will happen, stated so that it could turn out false, and the condition under which the epic is closed. "We believe letting customers save a basket will raise week-2 return visits from 18% to 25%; we will close this epic when saved baskets are live for all users and we have four weeks of data, whatever the data says."

The second half is what prevents the eternal epic. Without a stated closing condition an epic has no way to end, so anything vaguely related gets filed under it and it survives three reorganisations. With one, the leftovers at closing time have to justify themselves as a new bet — which most of them cannot.

Why rolled-up estimates mislead

Trackers will happily sum the points of every story under an epic and show you a number. The number is real arithmetic on unreal inputs, and it is worth understanding why before anyone plans a quarter on it.

The stories that exist today are the ones someone has already thought of. On a real epic, refinement keeps discovering more — so the total grows through the quarter even when nothing goes wrong, and the growth is largest exactly where the work was least understood. A rolled-up total therefore reads as a forecast while behaving as a lower bound.

The honest alternatives are both simple. Forecast from the count of completed items and how long they historically took, which at least uses measured data. Or size the epic directly at its own level — "roughly a quarter for one team" — and treat that as the bet it is, rather than laundering a guess through a sum that looks precise.

How this shows up in real delivery

The clearest symptom of a broken hierarchy is the eternal epic — one that has been open for three quarters, collects anything vaguely related, and has no definition of finished. It is no longer a bet with a horizon; it has become a folder. The fix is not better hygiene, it is to give the epic a closing condition and let the leftovers become their own bet.

The second symptom is quieter: a hierarchy that is perfectly maintained and that nobody reads. If the epic list has not changed a single decision in a quarter — no reprioritisation, no cancellation, no conversation — then the levels are being kept for their own sake, and the refinement hours spent on them bought nothing.

Where it degrades

  • Epics with no closing condition, which turn into permanent folders.
  • A level added because the tool offers it rather than because someone asked a question.
  • Two groups using the word "epic" at different scales without noticing.
  • Stories that are really tasks, so the sprint fills with work no user will notice.
  • Technical work disguised as user stories instead of being named as enablers and prioritised openly.
  • Estimating at every level, which multiplies the cost of being wrong without improving the forecast.

When to use it

Use it when

  • Several people plan over genuinely different horizons and need a shared vocabulary.
  • Work must roll up so leadership can see progress without reading every ticket.
  • More than one team contributes to the same capability.
  • You are deliberately choosing the fewest levels that answer real questions.

Avoid it when

  • One small team with one Product Owner — two levels are enough.
  • The hierarchy would exist to produce a report nobody acts on.
  • Adding a level to organise a backlog that is really just too long — order it instead.
  • The team would spend more time maintaining the tree than discussing the work.

Found this useful?

Share it with someone who is working on the same problem.