Dependencies, Risks, and Milestones in Jira: Making Hidden Work Visible

Capítulo 9

Estimated reading time: 9 minutes

+ Exercise

Why dependencies, risks, and milestones matter in Jira

Project work often fails in predictable ways: a team is waiting on another team, a decision is blocked, or a risk quietly becomes an incident. Jira can make this “hidden work” visible when you standardize how dependencies and risks are logged, linked, dated, and reviewed. The goal is not more tickets; the goal is shared clarity: what is blocked, what might derail delivery, and what dates/releases the work is aiming for.

(1) Define a dependency logging standard

What counts as a dependency

A dependency is any external condition required to complete an issue. In Jira, treat dependencies as first-class items by linking issues (or creating a dedicated dependency issue when needed) so that blockers appear in searches, boards, and reports.

  • Inter-team work dependency: Team A cannot finish until Team B delivers an API, environment, design, data, or approval.
  • Decision dependency: Work is blocked until a decision is made (e.g., security review outcome).
  • Sequence dependency: One Jira issue must be completed before another can start (even within the same team).

Standard fields to capture (minimum viable)

Use a consistent checklist so every dependency is comparable and reviewable. Capture these elements either in the issue description (template) or custom fields if your Jira admin supports them.

Dependency attributeWhat to recordExample
Dependency typeInter-team / decision / sequenceInter-team
Upstream ownerWho must deliver somethingPayments Team (assignee: Priya)
Downstream ownerWho is blockedCheckout Team (assignee: Marco)
DeliverableWhat is needed, in testable termsAPI endpoint POST /v2/authorize in staging
Target dateWhen the deliverable is needed2026-02-05
Impact if lateWhat slips or what scope changesCheckout release moves by 1 sprint
Status signalHow you’ll know it’s doneContract tests passing + documentation updated

Who owns the dependency record

Pick a single ownership rule and apply it everywhere. Two common patterns:

  • Downstream-owned (recommended for visibility): The team that is blocked owns logging and maintaining the dependency link and target date. They are responsible for escalation because they feel the impact first.
  • Upstream-owned: The delivering team owns the dependency issue and commits to dates. This works when upstream teams run a formal intake process.

Whichever you choose, define a “dependency steward” role per project (often the project manager or delivery lead) who ensures consistency and runs the review cadence.

Continue in our app.
  • Listen to the audio with the screen off.
  • Earn a certificate upon completion.
  • Over 5000 courses for you to explore!
Or continue reading below...
Download App

Download the app

Dependency description template

Use a copy/paste template in the issue description to reduce ambiguity:

Dependency summary: [What is needed from whom]  Target date: [YYYY-MM-DD]  Link type: blocks/is blocked by  Owners: Upstream [team/person], Downstream [team/person]  Deliverable definition: [testable outcome]  Impact if late: [schedule/scope]  Notes/updates: [latest status + next action]

(2) Create and review linked issues and due dates

Use issue linking to express “blocks / is blocked by”

Issue linking turns a vague “waiting on X” comment into a trackable relationship. The most common dependency links are:

  • blocks / is blocked by (hard dependency)
  • relates to (soft relationship; avoid using this for true blockers)

Step-by-step: create a dependency link

  1. Open the downstream issue (the one that cannot proceed).
  2. Find the Issue links section (often under “More” or in the right-side details panel, depending on Jira configuration).
  3. Select link type is blocked by.
  4. Search for the upstream issue key (e.g., PAY-241) and add it.
  5. In the downstream issue, add a short note in the description or a comment: what you need, by when, and how you’ll validate it.

Tip: If no upstream issue exists yet, create it first. If the upstream work is not clearly owned by a team backlog, create a dedicated dependency issue in a shared “Delivery/Program” project and link both sides to it.

Set and use due dates (target dates)

Dependencies and risks become actionable when they have target dates. Use Jira’s Due date field (or a custom “Target date”) consistently:

  • Dependencies: due date = when the upstream deliverable must be ready for the downstream team.
  • Risks: due date = next review date or mitigation deadline (not the “risk might happen” date).

Step-by-step: enforce a “no date, no dependency” habit

  1. When adding a blocker link, set a due date on the upstream issue (or on the dependency issue if you use one).
  2. In the downstream issue, add a checklist item: “Confirm dependency due date and acceptance criteria.”
  3. During planning/refinement, reject dependencies without a date and owner (send back for completion).

Reviewing dependencies in Jira (what to look for)

In reviews, you are trying to answer: “What is blocked, for how long, and what is the next action?” Use these signals:

  • Downstream issue status stuck in “In Progress” with “is blocked by” links.
  • Upstream issue due date within the next 7–14 days.
  • Overdue upstream issues that block multiple downstream items.
  • Chains where one upstream issue blocks another upstream issue (multi-hop dependency).

Risk-as-issue patterns (make risks visible and discussable)

Choose a risk representation that fits your Jira setup

There are three practical ways to represent risks in Jira. Pick one and standardize it.

  • Option A: Risk as a standard issue type (best when you can add an issue type). Create a “Risk” issue type with fields like Probability, Impact, Exposure, Mitigation, Owner, Review date.
  • Option B: Risk as a label + component (works without admin changes). Use a standard label like risk and a component like Program-Risks.
  • Option C: Risk as a task in a dedicated “Risk Register” epic (simple, but less structured). Each risk is a task under an epic called “Risk Register”.

Minimum risk fields (what to capture)

Risk attributeMeaningExample
Risk statementIf X happens, then Y impact occursIf fraud rules change, checkout conversion may drop
OwnerSingle accountable personProduct Manager (Aisha)
ProbabilityLow/Med/High or 1–5Medium
ImpactLow/Med/High or 1–5High
MitigationWhat you will do nowRun A/B test + align with Legal
TriggerWhat indicates risk is materializingPolicy update published
Review dateNext time you will reassess2026-02-01

Link risks to the work they threaten

A risk becomes more useful when it is connected to scope. Link the risk issue to impacted epics/stories using:

  • blocks/is blocked by if the risk requires mitigation work before proceeding
  • relates to if it is informational but still relevant

Example: A “Risk” issue RISK-12 relates to Epic CHK-80 (New Checkout Flow). If mitigation is required before release, set RISK-12 to blocks the release readiness task.

(3) Set up a milestone/release approach using versions

Use Versions to represent milestones and releases

Jira Versions (sometimes called “Releases”) are a lightweight way to mark milestones such as “MVP”, “Beta”, “Release 1.2”, or “Go-live”. They work best when you consistently assign issues to a version and maintain target dates for that version.

Define your version naming and scope rules

Decide what a version means in your project:

  • Release versions: customer-facing releases (e.g., 2026.02, v1.8).
  • Milestone versions: internal checkpoints (e.g., M1-DesignComplete, M2-IntegrationReady).

Standardize naming so sorting is predictable. Examples:

  • Date-based: 2026-02 Checkout MVP
  • Semantic: v2.0, v2.1
  • Milestone-coded: M1, M2, M3 with a short descriptor

Step-by-step: create and schedule a version

  1. Go to your Jira project’s Releases (or Versions) page.
  2. Select Create version.
  3. Enter the version name and (if available) set a Release date (target milestone date).
  4. Optionally add a description that defines what “done” means for that milestone.

Assign issues to versions (Fix Version/s)

Use the Fix Version/s field on issues to indicate the milestone/release they belong to. Practical rules:

  • Every deliverable issue that is part of a release should have exactly one Fix Version (unless your process supports multi-release planning).
  • Dependency and risk issues can also be assigned to the same version to keep the milestone view complete.
  • If an issue slips, update its Fix Version as part of the decision—don’t leave it stale.

Use versions to drive milestone conversations

When versions are maintained, you can quickly answer:

  • What is planned for the milestone?
  • What is still open?
  • What is blocked by dependencies?
  • What risks threaten the milestone date?

In practice, this becomes a shared language across teams: “Is this in 2026-02 Checkout MVP or not?”

(4) Exercise: build a dependency chain and a risk register view

Exercise A: Create a dependency chain (multi-team)

Scenario: The Checkout Team cannot release until the Payments Team delivers an API change, and the Payments Team cannot deliver until the Platform Team provisions a new environment.

  1. Create or identify three issues (one per team):
    • PLAT-10 “Provision staging environment for Payments v2”
    • PAY-241 “Implement authorization endpoint v2”
    • CHK-80 “Integrate authorization endpoint into checkout”
  2. Link the chain:
    • PAY-241 is blocked by PLAT-10
    • CHK-80 is blocked by PAY-241
  3. Add due dates:
    • PLAT-10 due date = date environment must be ready
    • PAY-241 due date = date API must be ready for integration
  4. Assign a version (milestone): set Fix Version/s on all three issues to 2026-02 Checkout MVP.
  5. Write acceptance criteria on each upstream issue so downstream teams can verify completion without meetings.

Check: Open CHK-80 and confirm Jira shows the blocker link. Your goal is that anyone can open the downstream issue and immediately see what is blocking it and who owns the upstream work.

Exercise B: Create a “Risk Register” view using filters

Create a saved filter that acts like a risk register. Choose the representation you use (Risk issue type, label, or epic-based). Examples below use common JQL patterns; adjust field names to match your Jira configuration.

Option 1: Risk as an issue type

project = CHK AND issuetype = Risk ORDER BY duedate ASC, priority DESC

Option 2: Risk as a label

project = CHK AND labels = risk ORDER BY duedate ASC, priority DESC

Option 3: Risks tied to a specific version (milestone risk register)

project = CHK AND (issuetype = Risk OR labels = risk) AND fixVersion = "2026-02 Checkout MVP" ORDER BY duedate ASC

Add a dependency-focused filter (what is blocked right now)

If your Jira supports linked-issue JQL (some instances require add-ons; if unavailable, use manual review via issue link panels), try:

project = CHK AND issueFunction in linkedIssuesOf("project = CHK", "is blocked by")

If linked-issue JQL is not available, use a practical workaround:

  • Require a label like blocked when an issue has an active blocker, and remove it when unblocked.
  • Then filter: project = CHK AND labels = blocked ORDER BY duedate ASC

Define a review cadence (make it operational)

Visibility only helps if you review it regularly. Define a cadence with clear owners and an agenda.

CeremonyFrequencyInputs (Jira views)Outputs
Dependency review2x per week (15–30 min)Blocked issues list, upcoming due dates, version scopeUpdated due dates, escalations, clarified acceptance criteria
Risk reviewWeekly (15–30 min)Risk register filter sorted by review dateUpdated probability/impact, mitigation tasks created/linked
Milestone/release checkWeeklyVersion view + open issues in Fix VersionScope decisions, version date updates, release readiness actions

Operational rule: every review must result in at least one Jira update (date, owner, link, status, or mitigation task). If the meeting produces no Jira changes, the system will drift and hidden work will return.

Now answer the exercise about the content:

When reviewing dependencies in Jira, which combination best helps answer “What is blocked, for how long, and what is the next action?”

You are right! Congratulations, now go to the next page

You missed! Try again.

Effective dependency reviews use blocker links and dates: downstream issues with “is blocked by”, upstream due dates (upcoming or overdue), and chains where blockers themselves are blocked. This clarifies what’s blocked, timing, and next actions.

Next chapter

Essential Jira Reports for Project Managers: Interpreting Progress and Predictability

Arrow Right Icon
Free Ebook cover Jira for Project Managers: Setting Up Projects, Boards, and Reporting
75%

Jira for Project Managers: Setting Up Projects, Boards, and Reporting

New course

12 pages

Download the app to earn free Certification and listen to the courses in the background, even with the screen off.