ArticlesProject Management

Breaking Initiatives Into Tasks That Actually Get Done

Vague tasks never end, so we break initiatives into clear, trackable tasks, each with an owner and a definition of done.

In this article

The ticket said "build notifications system." Three weeks later it's still in progress, nobody knows how much is left, the engineer keeps finding new edge cases, and every standup brings the same update, "still working on it."

This is what poor task breakdown looks like, with vague tasks that never end and work that has to be redone because assumptions were wrong. Then there are the surprises in the final week that should have surfaced on day one, and three people working on the same thing because ownership was unclear.

That notifications ticket dragged on because the breakdown was botched.

Starting off right

Task breakdown presupposes you've already done the hard work of defining where you are with brutal honesty and where you're going with obsessive clarity on the "why." If you skip this, the tasks will be wrong because the inputs are wrong, however clever your task management is.

If you haven't nailed these down yet, check out my post on ABDiff, and come back when you have a clear starting point and destination.

Deriving the tasks

From initiative to reviewable task

Initiative Make contract preparation dependable.

Select the right documents for one job.

Input
Municipality, flood zone, and job type.
Observable result
The matching documents are selected for staff review.
Completion check
Try a normal job and the named exceptions.
Illustrative task breakdown. A task should have a result someone can inspect.

Once you're clear on where you're at and where you're going, the task list writes itself, because this part is mechanical.

The level of detail depends on who's consuming the breakdown, so a director's task list looks different from a tech lead's. Tasks should be at the granularity the next layer down needs to execute without ambiguity.

This can feel slow. An hour spent here saves weeks of confusion later. The initiative that drags on forever usually skipped defining tasks with clarity.

Here's what works well for us.

Steps for breaking down projects into tasks

  1. Work backwards from the destination. What's the last step, and what comes before that? Keep asking until you reach where you are today.
  2. Define "done". Each ticket should have a clear set of criteria to know whether it is officially completed. Don't mark a ticket done while it still needs testing or approval, because that throws off progress tracking and lets key quality checks fall through the cracks.
  3. Build the tickets to make progress tracking easy. How will you know it's moving? Where do you check? Structure the work so progress is visible without status meetings, and so leadership can look at the sub-tasks and know what's left.
  4. Identify dependencies and blockers. What has to be true before other work can start? Surface these early.
  5. Timebox uncertainty. If you don't know how long something takes, that's a spike with a fixed timebox, and its only output is a decision, an estimate, and sometimes more tasks.
  6. Make tasks independently shippable. Each task delivers something complete and creates natural checkpoints. This also prevents the project from being perpetually half broken.
  7. Assign owners. Each task has one person responsible for its completion, and any task without a single named owner falls to you.
  8. Run a pre-mortem. Imagine the project failed and ask what went wrong. Then turn each failure mode into a task that de-risks it early, while problems are still cheap and before they can make a fool of you.
  9. Be painfully thorough. Your backlog should always be comprehensive of the work needed to complete the project.

Example ticket template

The goal is to set up the implementer for success without drowning them in process, which means including enough that they can start with confidence and finish on their own.

The litmus test is whether a person without as much experience or context as you could pick this up and know both what success looks like and why it matters. If they couldn't, keep writing.

Always err on the side of greater clarity. If you don't put in effort here, you'll end up spending more time clarifying later and cleaning up the mess caused by your ambiguity.

Here's a template that works for us, which you can use as a starting point for one that works for you.

## [Brief title]

**Owner:** [Name]

### Why this matters
[One or two sentences on why we're doing this. Gives the implementer 
context to make tradeoffs without escalating.]

### What "done" looks like
[Describe the outcome as observable behavior. "User sees confirmation 
message after submitting" beats "function returns true on success."]

### Context
- [Link to design doc]
- [Link to related ticket]

### Gotchas
- [The legacy system that can't handle nulls]
- [The vendor API that rate limits aggressively]
- [The edge case that broke production last time]

Find what works for your team

Whether it's Scrum, Kanban, Shape Up, or something homegrown, they all work if you do the fundamentals right and stay disciplined.

What matters is that work gets done and problems surface early. If your current process achieves that, great, and if it doesn't, change it. Don't waste time arguing over ticket templates or sprint lengths or estimation techniques, because those debates are rarely productive.

Try something, see if it helps you ship and catch problems sooner, and retrospect often so you can keep what works and drop what doesn't.

The task list is the easy part

An initiative balloons when nobody has agreed on where it starts or where it's going, so do the hard work of defining both clearly before anyone writes a task.

Original article image
Scattered colorful sticky notes.