#software-development
#founders
#product
Opinion

Definition of done: the secret contract nobody writes

80% of contracts with external squads break before the first deploy. The reason is never technical — it’s the definition of done. Here’s why most teams skip this conversation and how to structure yours before signing.

https://images.prismic.io/revinsoftware/Z9XopjiBA97GihMR_victhor.jpeg?auto=format,compress

Por Victhor Araújo

Victhor Araújo

Every time an external squad contract breaks, someone points at the code. "Quality dropped", "they're shipping bugs", "it doesn't match what we asked for". Code is the symptom. The cause is almost always something else: the client and the squad were using the same word — "done" — to describe different things.

The definition of done is not in the SOW. Not in the MSA. Not in the squad’s playbook. It lives in each person’s head, and each head has its own version.

This article is for founders, CTOs, and managers about to hire an external squad — or who already hired one and feel something is always off.

Squad aligning what counts as “done” on a whiteboard before the sprint starts

Squad aligning what counts as “done” on a whiteboard before the sprint starts

🤝 The written contract vs. the real contract

The written contract covers scope, timeline, price, and termination clauses. Everyone reads, everyone signs, everyone files. Formality handled.

The real contract only shows up at the first delivery. That’s when the client discovers the squad called "done" what they expected as "first draft". And the squad finds out the client expected QA, deploy, and validation in the same deliverable.

The most common gaps:

  • Done by the dev: code merged, tests passing.
  • Done by the tech lead: code review, deploy to staging, smoke test.
  • Done by the PM: feature in production, metric moving, support team notified.
  • Done by the client: users actually using, no complaints, docs updated.

Each of the four states is "done". But the distance between the first and the last is where 80% of contracts die.

💥 5 symptoms of a broken definition of done

  • Recurring rework on features "already shipped" — because every review finds a new gap.
  • Sprints that end with 90% "done" and 10% "almost" — and "almost" always becomes next sprint.
  • Scope debates at every review — sign that nobody agreed on the expected level of finish.
  • Confusion over who tests what — squad QA, client QA, user in staging.
  • Bugs surfacing weeks later — because the definition stopped at "passed dev tests".

✅ The 4 levels of "done" every squad should have

The fix isn't a single definition of done. It's recognizing the layers exist — and contracting for the right one.

1. Feature complete

Code merged to main, unit tests passing, code review approved. The dev finished what they picked up.

2. Quality complete

QA validated happy paths and edge cases, regression on adjacent areas verified. Quality signed off.

3. Deploy complete

Feature in production (or a real staging mirror), feature flag wired, observability on, rollback plan documented.

4. Adoption complete

Adoption metric hitting target, docs updated, support team trained, common use cases not generating new tickets. Now the feature is actually "done" for the business.

The real contract is signed when both sides agree on what delivery looks like

The real contract is signed when both sides agree on what delivery looks like

📝 A definition of done template (steal it)

Before sprint one, sit down with the squad and answer explicitly:

  • What is the minimum level of done we expect per delivery? (1, 2, 3, or 4)
  • Who owns moving from level N to N+1? (dev, QA, devops, PM, client)
  • In what timeframe should the next level happen? (same sprint, next sprint, calendar week)
  • What happens if the expected level isn't hit? (rework, replan, override)
  • Where is this written and accessible? (Notion, Confluence, project README — not Slack)

📢 Want the template Revin uses internally? Talk to our specialists in a Diagnostic Sprint and we'll send our DoD playbook.

🎯 Conclusion: defining done is defining what you're buying

The right question before signing isn't "how much does it cost" — it's "what counts as delivered?". Without that answer, any price is expensive. With it, any price can fit.

Squads that insist on aligning DoD upfront look annoying. They’re also the ones who ship on time.

📢 About to hire a squad and want to avoid this trap? Check out our delivery model — DoD comes in the kit.

Ready to elevate your business

Schedule a meeting
Share
Link de compartilhamento LinkedinLink de compartilhamento XLink de compartilhamento WhatsappLink de compartilhamento Facebook