← Back to list

The Cost of the Unknown: What Integration Bugs Are Really Telling You

A pattern that keeps showing up across engineering teams.

Mux · 2026-07-14 14:40 · 0 claps · 3.6 min read
#software-engineering #engineering-leadership #engineering-culture #agile-development #integration-testing
Open on Medium ↗
Wiki topics: BIZ · Business Strategy CUL · Culture & Media 📋 · Product Management

The Cost of the Unknown: What Integration Bugs Are Really Telling You

A pattern that keeps showing up across engineering teams.

There’s a particular kind of bug that tends to surface right before a launch.

It’s not a logic error. It’s not a missing null check. It’s a bug that exists in the space between two teams—where one team assumed one thing and the other team assumed something slightly different, and nobody made those assumptions explicit until it was too late.

We’ve started calling it the cost of the unknown.

What usually happens

You’re integrating two services. Both teams are working in parallel. Communication happens—there are Slack threads, a Jira ticket, maybe a short call. Everyone walks away thinking they’re aligned.

Then comes the testing phase. Or worse, the production incident.

What you discover isn’t that someone made a mistake. It’s that two teams had different mental models of the same contract. Different expectations about edge cases. Different interpretations of what “null” means in a given context. Different assumptions about what happens when a field is missing.

The implementation on both sides was technically correct—given each team’s understanding. The gap was never in the code. It was in the conversation that never happened.

Why this is a QA problem, not just a dev problem

Quality engineers often get brought into integration work late. By the time QA is involved, both services are built. The contract is already implemented. The deadline is close.

At that point, the best you can do is find the mismatches. You can’t prevent them anymore.

What has worked better—in teams I’ve seen do this well—is involving QA during the design phase. Not just when there’s something to test, but when the API contract is being discussed. When the RFC is being written. When the assumptions are still fluid enough to be questioned.

QA’s value in that early phase isn’t to write test cases. It’s to ask the questions that developers are too close to the work to ask.

What happens if this field is null? What's the expected behavior when both services are mid-deploy? Is this behavior documented or just understood?

Those questions feel small in a design review. They feel very large in an incident review.

The misalignment isn’t always obvious

Here’s what makes this pattern difficult. The misalignment isn’t always visible in a code review, or even in unit tests.

Each service, tested in isolation, passes. The contract looks correct. The response shapes match. But somewhere in the actual interaction—in the sequence of calls, in the timing, in an edge case that only appears in production traffic—the assumption breaks.

This is where integration testing earns its place. Not as a checkbox, but as a genuine attempt to exercise the contract between systems under realistic conditions.

The challenge is that realistic conditions are hard to replicate. You’re often testing against mocks, stubs, or lower environments that don’t fully represent production behavior. The gap between what you tested and what actually runs in production is where a lot of integration bugs hide.

Timeline pressure makes it worse

Tight timelines have a particular effect on this kind of problem: they compress the communication that would have caught it.

When a sprint is short, teams tend to move faster and communicate less. Alignment meetings get skipped. Async messages go unread. The RFC gets a comment that nobody follows up on.

This isn’t a people failure. It’s a structural one. When capacity is tight, cross-team coordination is often the first thing that gets deprioritized, even though it’s usually the most important thing to protect.

What has helped: making cross-team sync a non-negotiable artifact of the process, not an optional meeting. Not a long sync — even a short written summary of assumptions shared between teams can surface a misalignment before it becomes a bug.

A few things that have helped

None of these are new. But they’re worth repeating because they work.

Shared definition of done for integration work. Both teams agree in writing on what “done” means, including behavior for error states, null responses, and edge cases.

QA as a reader, not just a tester, of the contract. Reading the API contract and API changes from a testing perspective, before implementation begins, tends to surface questions that don’t come up in code review.

A lightweight pre-launch checklist for cross-team integrations. Not long. Five to ten items that ask the teams to verify they’ve explicitly aligned on the things most likely to diverge.

Post-incident reviews that focus on the system, not the people. When the review focuses on where in the process the misalignment was allowed to persist, it tends to produce better improvements than when it focuses on who missed what.

The closing thought

Integration bugs are rarely about incompetence. They’re usually about two groups of smart people building toward a shared goal with slightly different pictures in their heads.

The fix isn’t to write more tests, though that helps. It’s to create more explicit moments of alignment earlier in the process—before the assumptions get baked into code.

The unknown has a cost. The good news is that it’s a cost you can reduce just by asking the right questions at the right time.

If your team has found other ways to catch integration mismatches early, I’m curious what’s worked. These patterns feel consistent enough across teams that I suspect there are approaches I haven’t seen yet.


메타데이터
post_id
d5f4ec0b0ea0
slug
the-cost-of-the-unknown-what-integration-bugs-are-really-telling-you-d5f4ec0b0ea0
url
https://medium.com/@muxsdn/the-cost-of-the-unknown-what-integration-bugs-are-really-telling-you-d5f4ec0b0ea0
canonical_url
https://medium.com/@muxsdn/the-cost-of-the-unknown-what-integration-bugs-are-really-telling-you-d5f4ec0b0ea0
author_url
https://medium.com/@muxsdn
status
ok
fetched_at
2026-07-28 00:11:24