ChibihamChibiham
Cognitive Technical Debt: If Teams Keep 'Aligning Every Time,' That's Debt
🏗️

Cognitive Technical Debt: If Teams Keep 'Aligning Every Time,' That's Debt

Is That Collaboration Leaving Assets Behind?

For three months, Teams A and B have been developing closely together. Weekly sync meetings, daily Slack exchanges, participating in each other's code reviews. The deliverables—code and features—are certainly moving forward.

But ask yourself this: In these three months, has a contract describing the boundary between the two teams been produced? Are there ADRs recording the design decisions? Is there a definition of shared vocabulary?

If the answer is "no," your teams are accumulating debt. This article calls it cognitive technical debt. Like ordinary technical debt, it accrues compound interest.

Why Is Cross-Team Alignment So Expensive?

First, let's look structurally at why cross-team collaboration is so exhausting. There are three causes.

First, opportunities for alignment are scarce. Within a team, you see each other daily, share code, and review each other's PRs. Between teams, regular meetings are limited to weekly or monthly, codebases are separated, and everyday touchpoints are structurally lacking.

Second, the direction of understanding differs. Members within a team share the same domain framework. Between teams, there are different Bounded Contexts—different meanings of "order," different assumptions. A difference in direction costs more to align than a mere difference in depth of knowledge.

Third, translation load is high. "This change affects your service"—to understand this single sentence accurately, you need to hold some model of the other team's service in your head. Without it, you can't estimate the scope or severity of the impact.

All three derive from the fact that human cognition has a capacity limit. That's why the difficulty of cross-team collaboration is not a problem of individual communication skills, but a structural problem to be addressed through design.

Protocol Converters: Moving Alignment into Devices

The key to addressing this is the protocol converter: a device that mechanically translates meaning between two Bounded Contexts. Concretely: API specifications, type definitions, shared vocabulary, ADRs.

What these have in common is that they handle cross-team translation without relying on human alignment. An API specification describes "send this to this endpoint, get that back," mechanizing the translation. Type definitions verify boundary consistency at compile time. ADRs preserve the reasoning behind "why the boundary was drawn here."

Transferring the cognitive process of alignment into the feedback function of a converter device—that is the essence of designing cross-team collaboration.

Rereading the Three Team Topologies Modes as Cost-Allocation Design

Rereading the three interaction modes from Team Topologies through the lens of "who bears how much alignment cost" organizes them remarkably well.

Collaboration: Temporarily Raising the Cost

Collaboration is the mode where two teams work closely together. It temporarily raises the alignment loop to a frequency comparable to that within a single team.

The cost allocation is clear: both teams bear the cost of understanding the other's framework on top of their normal work. Each member holds part of the other team's Context in their head in addition to their own Bounded Context. That's a major consumption of cognitive resources.

And here is the most important insight: Collaboration is unsustainable. The cost of both sides continuously holding the other's framework cannot last under the finiteness of cognition, because the cognitive resources available for one's actual work keep shrinking. Collaboration is therefore a means, not an end.

Then what is the end? Not writing code, not shipping features.

The deliverable of Collaboration is a protocol converter.

During Collaboration, the two sides align their understanding, build shared recognition of where the boundary lies, and crystallize it into contracts, types, ADRs, and shared vocabulary. Once the converter starts functioning, Collaboration is dissolved. So the question to ask when entering Collaboration is: "Which converter should we build to make this collaboration unnecessary?" The exit condition is the moment the converter starts working.

Cognitive Technical Debt as a Failure Mode

This brings us back to the opening. Collaboration without an exit—continuing to pay for alignment while no converter accumulates—is cognitive technical debt.

After three months of Collaboration, the deliverables are only code and features; no contract, no ADRs, no shared vocabulary remain. What happens when Collaboration is dissolved in this state? With no converter, cross-team exchanges fall back to human alignment—"what was that spec we discussed?", "who knows the behavior at this boundary?" Three months of cognitive cost failed to become a structural asset.

And this debt accrues interest. As time passes without a converter, the understanding shared during Collaboration decays in each person's memory. When the same boundary problem arises again, alignment starts over from scratch. The interest compounds. "Aligning every time" is not comfortable collaboration—it is unpaid debt.

X-as-a-Service: The Stable State That Doesn't Run Alignment

X-as-a-Service is the mode where one team provides a service and the other consumes it through a contract. It is designed on the premise that the alignment loop does not run.

Why can it avoid running? Because the contract, as an artifact, functions as a feedback device. Consumers understand how to use the service just by reading the contract, and usage that violates the contract returns an error—feedback that does not depend on human interpretation.

However, this depends entirely on the contract's "inferability"—the degree to which internal structure and intent can be inferred from the external specification. With a low-inferability contract, consumers have no choice but to ask the providing team directly, sliding back into Collaboration.

Facilitating: Transferring the Alignment Capability Itself

Facilitating is the mode where one team grows the capability of another. An Enabling Team shares its expertise so that a Stream-aligned Team can use the technology autonomously.

The cost allocation: the Enabling Team temporarily bears most of the cost to cultivate the other team's autonomous alignment capability. The differences from Collaboration are that the direction is one-way, and the deliverable is not a converter but the receiver's capability.

CollaborationFacilitating
DirectionBidirectionalMostly one-way
What changesBoth sides' understandingMostly the receiver's understanding
DeliverableProtocol converterReceiver's autonomous capability
ScalabilityLow (1-to-1)High (capability propagates)

Facilitating's advantage is scalability. Once the capability is transferred, the receiver can align autonomously. One Enabling Team facilitating multiple teams in sequence raises the capability of the whole organization.

Which Mode to Choose

The three modes are not mutually exclusive options; the relationship between the same two teams transitions over time. And in every pattern, X-as-a-Service is the stable state, with Collaboration and Facilitating as transitional modes on the way there—because X-as-a-Service has the lowest cognitive load.

The choice can be derived from three questions:

  1. Does a contract exist? If not, build one through Collaboration
  2. Is the contract's inferability sufficient? If so, operate as X-as-a-Service
  3. Is the insufficient inferability due to lack of knowledge, or contract design? If knowledge, use Facilitating; if design, redesign through Collaboration

Summary

In cross-team collaboration, the state of "aligning every time" is a sign of debt, not comfort. If you keep paying calibration costs while the artifacts that structurally reduce them—contracts, ADRs, shared vocabulary: the converters—do not accumulate, that is cognitive technical debt, and it compounds.

The deliverable of Collaboration is not code but a converter. Being conscious of this single point changes how you design collaboration. When entering a collaboration, ask "which converter should we build to make this collaboration unnecessary?" Then aim for X-as-a-Service, the stable state that runs without alignment. Not treating alignment as a virtue, but leaving behind devices that make alignment unnecessary—that is the design of cross-team collaboration.


This article is a standalone adaptation of Chapter 9 of the book Cognitive Feedback Design (Japanese), which reconstructs software development from the perspective of cognitive constraints and feedback design. If you're interested in how protocol converters and the unsustainability of Collaboration can be derived from the axiom of "the finiteness of retention load," please refer to the book.