Flexible ticket hierarchies

Overview

Constructor lets you link tickets together into hierarchies via a flexible parent-child relationship, great for breaking down work into smaller pieces or tracking how individual tickets roll up to larger initiatives. There's no limit on the number of levels or what you choose to call them.
If you're coming to Constructor from another tool, you're probably familiar with terms like epics, milestones, themes, or projects. Read on to see how Constructor supports all of these structures – and more – in a generic and lightweight model.

Key concepts

Constructor takes a simple but powerful approach to modeling ticket hierarchies and parent-child relationships:
  • Ticket hierarchies are completely optional. Use it when it makes sense for your team and as your practices evolve.
  • Parent tickets and child tickets are not separate types of tickets. Any ticket can be the parent or child of any other, and you can remove or rearrange the relationship at any time.
  • A child ticket is just a ticket that's been linked as a checklist item on some other ticket, the parent. From the parent's perspective, a child ticket is just another item in a checklist to be completed, and the child's progress is depicted on the parent ticket.
  • You can create parent-child linkages between tickets on different boards. They don't have to be on the same board, though they can be if you want to.
  • Since a child ticket can be linked from multiple checklists, that means it can have multiple parents, not just one, which is optional but useful in some use cases.
Technically, Constructor allows tickets to form a directed acyclic graph. That means the only restriction is that you can't create parent-child linkages that introduce a cycle.
Learn more about checklists:

Use cases

Constructor's approach to ticket hierarchies is designed to let you quickly and flexibly model many common use cases. Below are a few examples.
You're not restricted to just these use cases or terms. Feel free to experiment and discover what works for your team as your practices evolve.

Epics

You'll often hear the term "epic" refer to a large piece of work, often a new product feature, that's broken down into smaller pieces to make it more manageable. The smaller pieces are typically worked on by different people and completed independently over time.
To model epics, we recommend creating a separate board to house them. That's because epics typically follow a different workflow (like Research, Design, Development, Rollout, Impact Review, and Done) versus the development work itself. An epic is just a ticket on that board that has child tickets on your other boards.
Sometimes a single development ticket, like a technical investment, supports or enables more than one epic. In that case, don't fret! Go ahead and make that ticket a child of both epics.

Milestones or Initiatives

A "milestone" or "initiative" is often described as a high-level business goal. Typically, achieving a milestone entails completing many epics or projects.
To model milestones, we recommend creating a separate board to house them. A milestone is just a ticket on that board linking to child tickets on your other boards. The child tickets could themselves have their own children (e.g., see "epics" above).

Sprints

A "sprint" is typically a one- or two-week time-boxed window during which a team focuses on completing a prescribed set of work. Meantime, a team manager identifies and prepares the work to be assigned to the next sprint or future sprints.
To model sprints, we recommend creating a separate board to house them. That's because sprints typically follow a different workflow (like Upcoming, In Progress, Retrospective, and Done) versus the development work itself. A sprint is just a ticket on that board that has child tickets on your other boards.

Step-by-step

Creating a parent ticket

In Constructor, any ticket can become a parent ticket at any time by creating a checklist and adding child tickets to it.
Learn more about checklists:

Attaching a child ticket

To attach a child ticket underneath a parent, visit the parent's page, create a new checklist or click into an existing checklist to open the input box, then type # to bring up a search popup where you can search for the child ticket by ID or text.

Detaching a child ticket

To detach a child ticket from a parent, visit the parent ticket's page, hover over the child ticket in the checklist where it appears, then click the x button in the floating palette. The child ticket itself will still exist, but it will no longer be a part of the parent's checklist.

Viewing progress of child tickets

If a ticket has child tickets, their progress is depicted on the parent ticket, making it easy to quickly visualize how the parent ticket as a whole is coming along:
  • While on the parent ticket's page: The child tickets are items in a checklist, and their background is rendered as a progress bar.
  • While on the board: The ticket's card includes a set of thin progress bars, one for each child ticket.
The progress bar for each child ticket reflects what stage it's in on its own board.
To navigate from a parent ticket to a child ticket, visit the parent ticket's page, find the checklist with the child ticket, and click on it.
To navigate from a child ticket to a parent, visit the child ticket's page, then click the parent ticket's title near the top of the central content area to the right of the ticket's ID.