A ticket is not a to-do item. It is a problem-solving process written down and made visible to other people. If the problem is not clear in your own mind, the ticket will betray that — and so will the work that follows from it.
I want to trace this through a single personal example: a Datadog monitoring ticket I worked on. At first glance it seemed simple — set up Datadog. But the process of getting that ticket right taught me more about problem-solving than any abstract framework could. Every section below picks up where the last left off, following the same ticket from vague instinct to something genuinely executable.
The Foundation: Problem = Reality vs Expectation
Everything begins with a deceptively simple equation, introduced in Vatico’s problem-solving training:1
Applied to the Datadog ticket, this forced two distinct sentences before anything else was written:
Reconciliation failures are currently silent. There is no alert or log surfaced to the team, so errors only come to light when an analyst reads a downstream report and notices the numbers don’t make sense.
When a COD reconciliation failure occurs, the team should know about it immediately — with enough context to investigate and resolve it.
Without writing both of these down, the ticket stays permanently vague. “Set up Datadog” is a solution, not a problem. The equation forces you to name the gap before you reach for the tool.
Before the Ticket: The Three Questions You Must Answer
Between naming the gap and writing the ticket, there is a thinking stage that should not be skipped. This is where interns — myself included — tend to reach for the keyboard too early. The Datadog ticket is a direct example of all three questions needing answers before a single field could be filled in honestly.
Think of COD reconciliation like comparing cash collected to items shipped.3 For this Datadog ticket, understanding the business flow meant knowing why we need to fix this: if payment checks break silently, finance numbers stop matching without anyone noticing. Knowing where this piece fits prevents us from building a fix in the wrong place.
Before building anything, you need a clear picture of the final result — just like drawing a plan before building a Lego model.2 For this ticket, “done” meant creating an alarm bell in Datadog that rings immediately when a job fails, telling us exactly which job broke and when. Having this clear target upfront ensures we know when the work is truly finished.
The problem-solving framework is about divide and conquer.4 When a task feels too big, you break it down into smaller, realistic sub-tasks and solve them step by step. Applying this tree-like breakdown is a good reminder for us to break down tasks first, especially if we notice the scope of a ticket getting too large.
Anatomy of a Good Ticket at Vatico
With the problem understood, the ticket becomes the container for communicating that understanding to everyone else who will touch the work.5 Here is what the Datadog ticket looked like before the thinking was done — and after.
Set up Datadog for the team.
COD reconciliation failures occur silently without any alerting mechanism, so errors only surface when an analyst reads a downstream report and notices the numbers don’t make sense.
Implement Datadog monitors on COD reconciliation jobs to surface failed reconciliation mappings in real time.
The remaining fields of the revised ticket each do a specific job:
The flow is strictly top-down. The background defines the objective. The objective defines the deliverable. The deliverable defines the action items. Each field earns its place by referring back to the one above it.
Where Tickets Go Wrong
First drafts often fail because of predictable shortcuts. Naming these 5 common anti-patterns makes them easier to avoid at a single glance:
Tickets should not be focused purely on solution writing. We write tickets to communicate the problem and desired outcome so clearly that the problem itself makes complete sense.
Listing downstream symptoms (like regulatory violations) is good practice and provides helpful context. The issue is stopping at symptoms alone without defining the root problem (e.g. reconciliation finance numbers don’t make sense).
Be detailed about the concrete outcome (e.g. sample output tables, exhaustive column specs) so the planned solution is fully clear before implementation begins.
Use action items as a checklist to flag required dependencies before execution such as data sources, file formats (JSON/CSV), datetime elements, and typecasting rules.
Always map the objective directly to the background gap. Without a clear problem anchor, reviewers cannot judge whether the proposed approach is justified.
None of these were failures of technical skill. They were all failures of thinking that happened before a single tool was opened. The ticket preserved the confusion rather than resolving it.
The Self-Check Before Submitting Any Ticket
Can a new team member read this ticket and understand why it exists, what done looks like, and how the solution connects to the problem — without asking anyone?
The first draft failed this test immediately. The revised version passed — a new intern could read the background, understand the gap, follow the objective back to it, picture the deliverable, and know exactly which action item to start with and which dependency to raise first.
What This Changes About How I Work
The Datadog ticket did not feel hard when I first wrote it. That was the problem. “Set up Datadog” felt complete because it was actionable — I could have started immediately. What it lacked was any proof that the right thing was being built, or that the scope had been considered, or that the people who needed to be involved had been identified.
Working through the revised version took longer upfront. Even though the ticket was ultimately backlogged and we did not work on it in the end, properly structuring it ensured that the problem, dependencies, and deliverables were completely clear. If it is ever picked back up, anyone can execute it without clarifying questions or mid-sprint redirects. The time spent thinking was not overhead — it was the cheapest possible moment to catch a mistake before any execution began.6
A ticket is a written-down problem-solving process. If you cannot write a good ticket, you have not yet fully understood the problem. The Datadog example made that concrete for me — not as a principle, but as something I had to work through myself, in the gap between a first draft that felt done and a revised version that actually was.
References
-
1
Is It Possible to Be a Data Analyst (DA) with a Non-Tech Background? https://vatico.vn/2022/08/27/is-it-possible-to-be-a-data-analyst-da-with-non-tech-background/
-
2
Journey to Complete First Transformation Job — Wireframing & Ticket Writing https://vatico.vn/2023/03/02/journey-to-complete-first-transformation-job/
-
3
Overall Operational and Data Workflows for Payment Reconsolidation https://vatico.vn/2023/03/03/overall-operational-and-data-workflows-for-payment-reconsolidation/
-
4
Reflection on Problem-Solving Process — Checking Attributes & MECE Framework https://vatico.vn/2023/06/29/reflection-on-problem-solving-process/
-
5
Process for Creating and Closing a New Data Model https://vatico.vn/2024/07/30/process-for-creating-and-close-a-new-data-model/
-
6
Order Fulfillment Workflows in Vatico https://vatico.vn/2023/01/25/order-fulfillment-workflows-in-vatico/

