← All posts
·4 min read

What happens to product knowledge when the contract ends?

When an outsourcing engagement wraps up, product knowledge walks out the door. A living product contract keeps it in the codebase — not in someone's head.

product-behavior-contractproduct-developmentproduct-intelligenceoutsourcing

You hired a team to build your product. They shipped it. The demo looked great. Everyone signed off.

Then the contract ended — and the knowledge left with them.

Six months later, a new team picks up the codebase. They open the repo and find code that works, but no record of why it works the way it does. No explanation of which behaviors are intentional product decisions and which are leftover workarounds. No way to tell what was confirmed by the client and what the previous team assumed.

This is the outsourcing handoff problem. And it costs more than most teams realize.

The knowledge gap no one budgets for

When you outsource product development, you're paying for two things: the code and the knowledge behind it.

You get the code. You almost never get the knowledge.

That's because product knowledge — the business rules, edge cases, design decisions, and "why we did it this way" context — lives in the previous team's heads. Some of it lands in Jira tickets or Confluence pages, but those go stale fast. Most of it never gets written down at all.

The result:

Why documentation doesn't solve this

The standard answer is "better documentation." Write more specs. Keep the wiki updated. Add comments to the code.

But documentation written from intent doesn't stay in sync with what's actually running. The team writes a spec before they build. Then they build something slightly different because of technical constraints. Then the spec never gets updated. Six months later, the spec says one thing, the code does another, and the client has no idea which is correct.

This is the fundamental problem: documentation describes what someone intended. It doesn't describe what the product actually does.

What a product contract changes

A product contract flips this around. Instead of starting from intent, it starts from the code.

Here's how it works in practice:

1. Analyze the codebase. Stewie reads your repository (read-only) and extracts candidate product behaviors — the business rules, policies, and logic that actually run in production. Each behavior comes with a confidence score and links to the source files that support it.

2. Confirm what's true. The client and the development team review the candidates together. "Is the 14-day refund window a confirmed policy?" "Does every API route enforce workspace tenancy?" Anyone can answer — no code knowledge required. You confirm what's right, reject what's wrong, and flag what's still undecided.

3. Produce a living spec. Confirmed behaviors become a product contract — plain Markdown files versioned in the repo. Every behavior links back to the code that supports it. When the code changes, you know exactly which product decisions are affected.

The key difference: this isn't documentation someone wrote and forgot about. It's a verified record of what the product does, confirmed by the people who care about it, and always in sync with the codebase.

Both sides win

For the client:

For the outsourcing team:

For the new team picking up the project:

The real cost of the handoff problem

Most teams budget for the vendor transition itself — the ramp-up time, the overlap period, the knowledge transfer sessions.

What they don't budget for is the ongoing cost of lost product knowledge. The bugs that happen because the new team didn't know about an edge case. The features that get rebuilt because nobody realized they already existed. The business rules that silently drift because there's no record of what was agreed.

A product contract doesn't eliminate the cost of switching teams. But it makes the transition a handoff instead of a restart.

The contract lives in the repo

One more thing that matters for outsourcing engagements: the product contract isn't trapped in another tool. It's plain Markdown files in your codebase — .pbc.md files that any team can read, any editor can open, and any future vendor can pick up.

The PBC spec is open source. Your product contract belongs to you, not to the tool that created it.


If you're managing an outsourced product and want to see what a product contract looks like for your codebase, request early access to Stewie.

Related posts

Stewie reads your codebase and helps you author a living product behavior spec. We're onboarding a small group of product and engineering teams before public launch. Request early access →