Hire Software Developers 7
Back to blogs

How to Run an Async Dev Team (Without 20-Page Specs)

Product manager handing a single plain-language task card to a focused engineer in an async dev workflow, a 20-page spec ignored beside them

Stop Writing Specs. Start Writing Tasks.

A PM I know spent three weeks on a spec. Twelve hundred lines, edge cases, sequence diagrams, the works. By the time it was "done," half of it was already wrong — a dependency had shipped, a stakeholder had changed their mind, an assumption had gone stale. And the feature still hadn't shipped a single line of code. The spec was the deliverable. That's the trap.

Here's the reframe: running async dev teams well isn't about writing a better spec. It's about writing a better task. The detailed up-front requirements document feels like control, but it's mostly waste. Requirements change, and a lot of what you carefully specify never gets touched — one oft-cited study found roughly 64% of software features are rarely or never used. (It's a small, dated study, so treat it as illustrative rather than law — but the direction rings true to anyone who's watched a feature ship to silence.) Worse, ambiguous and changing requirements are a top cause of project failure in the first place. The longer your spec, the more surface area there is to go stale before anyone builds it. The fix isn't more pages. It's a tighter loop.

Key takeaways

  • Async management is about writing tasks, not specs. Long requirements documents go stale before anyone builds them — requirements churn, and roughly 64% of software features are rarely or never used, so detailed up-front specs mostly bank waste.
  • Async gives builders the deep-work blocks engineering actually needs. Makers think in half-day units, and refocusing after an interruption takes about 23 minutes, so written-first work that protects long uninterrupted stretches is where good code comes from.
  • The loop is submit → ship → approve. You submit a task, the engineer ships the first one within about five business days, then settles into a steady three-day cycle with daily async updates and an approval gate before the next task starts.
  • A good task is problem + reproduce + "done" + constraints, in plain language. Describe the result, not the recipe: the outcome in one line, how to reproduce it, what "done" looks like, and any constraints.
  • You own the what and the done; the engineer owns the how. Closing the gap between a clear problem and working code is exactly what an AI-augmented engineer is fast at, so your job is the crisp definition, not the technical design.

What is asynchronous software development?

Asynchronous software development means engineers work in long focused blocks, communicate in writing, ship in small increments, and you review at gates — instead of pinging each other in real time. The team's source of truth is the written record, not a standup.

Why async is the right default for dev work

The difference matters because of how building software actually works. Async development is not a standup-driven, always-on team pinging each other in real time — it's writing-first, increment-by-increment work, and that design lines up with the way engineers actually produce good code.

Builders need long, uninterrupted stretches. Paul Graham's "Maker's Schedule" makes the case better than I can: makers think in half-day units, and "you can't write or program well in units of an hour." A single meeting dropped into the middle of an afternoon doesn't cost an hour — it blows the whole half-day, because it splits the time into pieces too small to hold a hard problem in.

And the modern workday is already shredded. Microsoft's Work Trend Index found knowledge workers get interrupted roughly every two minutes — about 275 times a day. Meetings pile into exactly the wrong windows: half of them land in the 9–11 and 1–3 peak-focus blocks, more than half are ad hoc, and nearly half of people describe their work as chaotic and fragmented. Once you're knocked out of focus, getting back in is slow. Attention spans on a screen now average about 47 seconds, and research by Gloria Mark found it takes around 23 minutes to refocus after an interruption. Do that math against a 275-interruption day and it's a wonder anything ships at all.

Written-first async work gives those blocks back. People contribute when they're actually "on" rather than when the calendar says so, and the writing itself becomes a durable record — a single source of truth you can read later instead of reconstructing from memory. It also removes the timezone tax: nobody has to be awake at the same moment for progress to happen. That's deep work by design — distraction-free concentration close to the cognitive limit, which is where good engineering actually comes from.

The loop: one task at a time

So what replaces the spec-then-wait model? A loop. You submit a task in plain language. The engineer ships the first one within about five business days, then you settle into a steady three-day cycle — daily async updates as they work, and an approval gate before the next task starts. That's the whole mechanic. It's the opposite of "write a spec, hand it off, and disappear for three months."

The reason small batches win isn't ideology, it's feedback. Short cycles catch a wrong turn after three days instead of after three months, when it's cheap to fix instead of catastrophic. DORA's research identifies working in small batches as a core capability that drives both speed and stability — you go faster and break less, at the same time. A three-day task is a three-day blast radius. A quarter-long spec is a quarter-long one. (More on why small batches beat big ones in our piece on batch size and predictable delivery.)

How do you write a good developer task?

A good developer task names the problem, not the solution. Describe the what and the done in plain language — the outcome in one line, how to reproduce it, what "done" looks like, and any constraints — then let the engineer own the how.

This is the actual skill, so let's get specific. The core move: you describe the what and the done. The engineer owns the how. Atlassian puts it cleanly — good acceptance criteria "describe the result, not the recipe". You are not writing a technical design. You're writing a crisp definition of the problem and a checkable definition of finished.

A good plain-language task has four parts:

  1. The problem or outcome, in one line. "Users can't complete checkout on mobile." Not "implement a payment retry handler" — that's you guessing at the fix, which is the engineer's job.
  2. Where it happens / how to reproduce. For a bug, the steps to trigger it. For a feature, where the new thing lives.
  3. What "done" looks like. Acceptance criteria a non-engineer can check. "A user on iPhone Safari can buy one item end to end."
  4. Constraints and context. The repo or page, anything off-limits, the real deadline if there is one.

Now watch the difference on the same problem.

Bad task: "Fix the broken checkout."

No way to reproduce it, no definition of done, no scope. The engineer has to come back and ask three questions before starting, or guess and get it wrong. Every ambiguity is a round-trip you'll pay for later.

Good task:

Problem: Users can't complete checkout on mobile — they tap "Pay" and nothing happens. Reproduce: iPhone Safari, add any item, go to checkout, tap "Pay." On desktop Chrome it works. Done: A user on iPhone Safari can buy one item end to end and see the order confirmation. Context: Web checkout repo. Don't touch the desktop flow. We'd like this before Friday's promo.

Notice what you didn't do. You didn't write a line of pseudo-code. You didn't name a function, pick a library, or sketch a database table. You don't need to — closing the gap between "here's the problem" and "here's the working code" is exactly what an AI-augmented engineer is fast at. In one controlled study, developers using an AI assistant finished a task 55% faster than those without — about 1 hour 11 minutes versus 2 hours 41. The engineers running these tasks come with Claude Code and Copilot as standard kit. Your job is the crisp definition. Theirs is the technical design.

Staying in control without standups

"But how do I stay on top of it without a daily meeting?" You read. The daily async update replaces the standup — you get a written note on what moved and what's blocked, and you can read it in ninety seconds whenever it suits you. When there's a question, it gets answered in writing, so the answer is recorded instead of evaporating in a hallway. This is the heart of a healthy product manager developer workflow: the handoff lives in text, not in a meeting.

Your real control point is the approval gate. Nothing advances to the next task until you approve, which means the moment to weigh in is at the gate, not constantly. Day to day the rhythm is small: read the update, unblock with a quick written reply, approve or redirect when the task lands. Keep a thin layer of synchronous time for the genuinely ambiguous stuff — a fifteen-minute call to untangle a fuzzy requirement is fine. Async isn't a religion. It's a default you break on purpose.

When async is the wrong tool

Be honest about the limits, because async has them. It needs a definable "done." Open-ended discovery, "I'm not sure what I want yet," a live incident burning in production, or a high-conflict decision with real disagreement — those still want a conversation. Async strips tone and nonverbal cues, and it slows decisions when feedback comes in lagged bursts instead of a live back-and-forth. Forcing those moments through a task queue makes them worse, not better.

The rule of thumb: if you can't write the "done," it isn't a task yet — it's a conversation. Have the conversation, reach the clarity, then write the task. And right-size what you do queue. A task is a few days of work, not a quarter dressed up as a ticket. If it can't ship in a single short cycle, it's a spec wearing a task's clothes, and you're back in the trap.

Running it: your first two weeks

Here's the practical sequence. Start by building a small backlog of well-scoped tasks — three or four, each with a problem, a "done," and its constraints. You don't need fifty; you need enough to keep the loop fed.

Submit the first one and just learn the rhythm: the five-day first delivery, the three-day cycle after that, the gate. Give your feedback at the gate, not mid-task. Let the engineer get all the way to "done" before you react, because feedback on half-finished work usually just churns the work. Once you trust the loop — and it takes about a week to feel it — add a second parallel stream for work that can run alongside the first. One stream is one engineer; a second stream runs independent work in parallel without stepping on the first.

This rhythm is the case for a subscription model over hiring a full-timer or rolling the dice on a marketplace gig — you get a steady cadence and a known engineer without a headcount fight or a hiring cycle. (We compared those trade-offs here.)

The whole skill

Strip it all down and the PM's job when running async dev teams is three things: define the problem crisply, trust the how, review at the gate. That's most of what separates teams that ship from teams that spec. The teams stuck in spec-land aren't failing because their writing is bad — they're failing because they're writing the wrong document.

It's also, not by accident, exactly how Dev On Demand runs: one task, one developer, daily async updates, and you own 100% of the code, cancel anytime. The model is the method.

So don't open a blank spec template. Write the task you'd want to receive — one line of problem, a checkable "done," the constraints that matter. Then send it.

Frequently asked questions

What is asynchronous software development? Asynchronous software development means engineers work in long focused blocks, communicate in writing, ship in small increments, and you review at gates instead of pinging each other in real time. The source of truth is the written record, not a standup.

How do you write a good developer task? Write the problem, not the solution: the outcome in one line, how to reproduce it, what "done" looks like, and any constraints — all in plain language. You define the what and the done; the engineer owns the how.

How do you manage developers without daily standups? A daily async update replaces the standup — a short written note on what moved and what's blocked that you can read in under two minutes. Your real control point is the approval gate: nothing advances to the next task until you approve.

When is async the wrong approach? Async needs a definable "done." Open-ended discovery, ambiguous "I'm not sure what I want yet" work, live production incidents, and high-conflict decisions all still want a real-time conversation, because async strips tone and slows decisions when feedback arrives in lagged bursts.

Does writing plain-language tasks instead of specs actually work? Yes — small batches give you fast feedback and AI-augmented engineers close the gap between a clear problem and working code quickly, so you don't need to specify the implementation. The trick is to describe the result, not the recipe.

Sources

  1. GitLab — async lets people contribute when they're "on"; the handbook is the single source of truth — https://about.gitlab.com/blog/agile-for-remote-work/
  2. Doist — async = work on your own timeline, protect deep-focus hours, measure outcomes not hours (Business of Software) — https://businessofsoftware.org/2025/08/how-amir-salihefendic-scaled-doist-with-asynchronous-work/
  3. Microsoft Work Trend Index 2025 — interrupted ~every 2 minutes (~275/day) — https://www.microsoft.com/en-us/worklab/work-trend-index/breaking-down-infinite-workday
  4. Microsoft Work Trend Index 2025 — 50% of meetings in peak windows; 57% ad-hoc; 48% of employees call work "chaotic and fragmented" — https://www.microsoft.com/en-us/worklab/work-trend-index/breaking-down-infinite-workday
  5. Gloria Mark, via APA "Speaking of Psychology" — average screen attention ~47s (median 40s) — https://www.apa.org/news/podcasts/speaking-of-psychology/attention-spans
  6. Gloria Mark, Gudith & Klocke, "The Cost of Interrupted Work" (ACM CHI 2008) — ~23 min (23m 15s) to return to a task after an interruption — https://ics.uci.edu/~gmark/chi08-mark.pdf
  7. Paul Graham — "Maker's Schedule, Manager's Schedule" (half-day units; a meeting blows half a day) — https://paulgraham.com/makersschedule.html
  8. Cal Newport — Deep Work (2016): distraction-free concentration at the cognitive limit — https://calnewport.com/deep-work-rules-for-focused-success-in-a-distracted-world/
  9. DORA (Google) — "Working in small batches" capability — https://dora.dev/capabilities/working-in-small-batches/
  10. Standish Group / Jim Johnson (XP 2002) — ~64% of features rarely or never used (illustrative; from 4 internal apps) (via Mountain Goat Software) — https://www.mountaingoatsoftware.com/blog/are-64-of-features-really-rarely-or-never-used
  11. Standish CHAOS — incomplete & changing requirements / lack of user involvement among top project-failure factors (Project Smart summary) — https://www.projectsmart.co.uk/it-project-management/the-curious-case-of-the-chaos-report-2009.php
  12. Atlassian — acceptance criteria "describe the result, not the recipe" — https://www.atlassian.com/work-management/project-management/acceptance-criteria
  13. GitHub — controlled study: developers with the AI assistant finished 55% faster (1h11m vs 2h41m; P=.0017) — https://github.blog/news-insights/research/research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/
  14. FlexJobs — trade-offs of asynchronous vs synchronous communication — https://www.flexjobs.com/employer-blog/asynchronous-vs-synchronous-communication-remote-work-teams
  15. YouSource — Dev On Demand (first-party product page): 5-business-day first task, 3-day cycle, task-by-task approval gates, daily async updates, async-first, Claude Code + Copilot, own 100% of code, cancel anytime, 5-day replacement guarantee — https://www.you-source.com/dev-on-demand
back to top

Related Articles

Book 30 min with Albert
Smiling man with short dark hair and glasses wearing a black suit, white shirt, and black tie against blue background.
Tell Albert what you're shipping.
He'll read this before joining the call. Phone number comes next, on the calendar step.
↳ info@you-source.com
↳ 4-hour response
Please wait while we retrieve meeting schedules.
Oops! There's a problem with your request. We're working on fixing it. Please try again later.