Back to Home

How Asana Cleared 5 Years of Code Work in 2 Weeks with Codex

Here is a number that should make every engineering leader sit up: Asana just finished a software migration that its own estimates said would take five years and cost around six million dollars. It did the work in two calendar weeks for roughly $12,000. The tool that made the impossible possible? OpenAI's Codex coding agent.

This is not a benchmark on a toy repository. It is a real, production-scale migration at a company with millions of users, and it doubles as one of the clearest blueprints yet for how an enterprise team should actually deploy AI agents. If you have been waiting for a case study you can copy rather than just admire, this is it.

The problem hiding in plain sight

Asana's engineers were dragging around a legacy test framework called Enzyme. The tool had fallen out of active maintenance, and it had become a genuine blocker: every time the team wanted to modernize its frontend stack, Enzyme was in the way. Yet removing it by hand looked like a multi-year slog.

The old plan was to assign engineers to the migration in the ordinary way. That approach carried a five-year timeline and a staffing price tag in the ballpark of $6 million. Not the kind of project most teams volunteer for. And that is exactly the kind of problem Codex was built to attack.

The five-part recipe Asana used

The team did not hand the whole migration to a single agent and walk away. The setup was deliberately simple, and that simplicity is the whole lesson. Here is the practical checklist Asana followed:

  • Start from a short prompt: Asana gave Codex a five-sentence task description, not a sprawling specification document.
  • Parallelize across copies: up to four coding agents worked at once, each in its own separate copy of the codebase so they never collided.
  • Keep instructions simple: the team found that simpler instructions outperformed a more elaborate, over-engineered setup.
  • Check in twice a day: an engineer reviewed progress twice daily rather than babysitting the agents in real time.
  • Review every change: no proposed change shipped without a human looking at it first.

That rhythm took about 1.5 weeks of actual engineering effort spread across two calendar weeks. When the dust cleared, Enzyme was fully removed and the fresh cost ledger read about $12,000 in model and infrastructure spend.

The lessons you can actually steal

Strip away the impressive totals and the takeaway is quietly radical: this is a workflow almost any team can reproduce this week. The ingredients are a capable agent, a clearly scoped task, and a modest human checkpoint structure.

  • Scope the task tightly. A five-sentence prompt worked because the objective was crisp: remove Enzyme, keep the code working.
  • Let agents run in parallel, but isolate them. Separate copies prevent the classic failure mode of agents stepping on each other's edits.
  • Budget your review time, not your prompt size. Two check-ins a day beat a giant prompt and constant hovering.
  • Measure cost, not just speed. A $12,000 spend against a $6 million baseline is the real headline here.

Asana's CTO Amritansh Raghav put it well: not every years-long project will collapse into weeks, but agents can give engineers more room for craft and make once-impossible work worth attempting.

That last sentence is the one to hold onto. The reason this story matters is not that Asana saved a specific amount of money; it is that the company's engineers now look at their backlog of migrations, rewrites, and performance problems through a completely different lens. Work that was once filed under "someday, maybe" has moved to "let's try a two-week sprint."

If your team has a dreaded legacy migration sitting in the backlog, the practical move is clear: pick one well-scoped slice, write a short prompt, spawn a few isolated parallel agents, and review the results twice a day. You might not finish in two weeks, but you probably will not need five years either.

Comments

No comments yet. Be the first to share your thoughts!