Skip to content

Ticket Etiquette

Posted on:October 17, 2024 at 6 min read

The anatomy of a good ticket

Defining a good ticket is more than just writing a helpful description. A ticket represents a piece of work someone will focus on in the next few hours/days. A well-defined structure helps any engineer on the team deliver high-quality results, build great products, and reduce cycle time.

ticket.png

Type

The type of ticket represents the output of the work. Specifying the correct type helps measure where the team is spending their efforts.

Here is the list of the common ticket types:

Labels

When creating a ticket, we should add labels describing the work category. It gives a granular and more meaningful context. In addition, we can use tools like Swarmia or Jira to get insights to support answering questions about the team’s work, such as:

Having such metrics can help detect anomalies in team productivity. For example, a high number of unplanned work can be a symptom of poor prioritisation.

The following labels must be mandatory when creating or refining tickets:

The content

What should be the minimum amount of information a ticket should have to provide enough context to complete it successfully?

The content must be clear and include the following sections:

Estimation

In a simplified manner, estimating a ticket consists of assigning a number representing the effort to complete it. For example, if the team estimates a “3” to ticket MRT-123 and a “1” to ticket MRT-134, then the latest should require less effort. It seems a simple process, but predicting the effort is challenging since people have different experience levels and whether they have done something similar.

When estimating a ticket, engineers must consider complexity and time (see matrix below). It is also recommended that the Fibonacci sequence be used to ensure the estimations have a gap. This is a good practice to avoid disagreement between small and large efforts. It also generates healthy discussions between engineers when their estimations are not aligned. If that happens, then, as a team, it’s the perfect moment to review the requirements and ensure everyone has the same context.

Estimating tickets is necessary for capacity planning (understanding how much work the team can commit to). In the agile world, the term velocity is the amount of work a team delivers on average per sprint. So, if the team, on average, completes 22 points, then there is no point in planning 28 points, knowing that it’s unlikely the team can’t finish the work. It’s important to set ambitious and achievable goals (not impossible) to avoid damaging the team’s motivation and overloading them.

Dev time required ↓ / Build Complexity →LowMediumHigh
Low135
Medium2813
High32134

PS: On average, teams take three months to find their velocity. This metric MUST not be used to compare teams since each team estimates effort differently.

Definition of Done

How does the team know when the ticket is complete? Defining the definition of done (DoD) as a team is essential to ensure everyone is aligned. Otherwise, the output of a ticket will be completely different depending on who works on it.

A typical DoD consist of the following tasks:


Template Example

Type: Story

Title: Propagate Payment References in Direct Debits UK

Labels: scaling-revenue risk_low service_connector_bacs_dd

Epic: Link the story to a respective epic.

Context

When a PSU makes a payment, the merchant wants to generate a dynamic reference to identify it, which must be shown in the PSU bank statement. The merchant support team uses this reference to help customers during troubleshooting issues.

Link: Product brief if it exists.

Approach

To propagate the E2E payment reference, we need to update the BACS direct debit contracts to include a new property payment_reference, which the PayIn team populates when creating a new direct debit payment. In the connector-bacs-dd, we need to update the SmarterPay HTTP client to push the new payment_reference field to the SmarterPay system.

Acceptance Criteria