Free — no signup required

The Cognitive Load Tax: Why Abstraction Quality Directly Affects Delivery Speed

2 min read

Every decision a developer has to make that isn't about their application's business logic is a cognitive load tax. It consumes mental energy, introduces risk, and slows delivery.

Cognitive load in software development comes in three forms:

  • Intrinsic load: The inherent complexity of the problem being solved (e.g., implementing a payment processing algorithm). This is unavoidable and valuable — it's the actual work.
  • Extraneous load: Complexity imposed by the environment or tools (e.g., figuring out which Kubernetes API version to use, or why the CI pipeline is failing due to a misconfigured service account). This is waste.
  • Germane load: The mental effort of building mental models and learning. This is valuable when it's about the domain, not the infrastructure.

A platform's job is to eliminate extraneous cognitive load so developers can direct their full attention to intrinsic and germane load — the work that actually creates value.

Measuring Cognitive Load in Practice

You can't directly measure cognitive load, but you can measure its symptoms:

Symptom What it signals
Developers frequently ask "how do I deploy X?" The deployment abstraction is too complex or undiscoverable
High volume of platform support tickets Abstractions are leaking without escape hatches
Teams building their own tooling that duplicates platform features The platform API doesn't match developer mental models
Long onboarding time for new engineers Too much infrastructure knowledge required before being productive
Developers copy-pasting YAML from other repos No Golden Path; tribal knowledge is the abstraction

The Team Topologies Connection

The concept of cognitive load as a design constraint is central to Team Topologies (Skelton & Pais, 2019), which argues that team structure and platform design should be explicitly optimized to keep cognitive load within manageable bounds for each team. A stream-aligned team (one focused on delivering a product or service) should not carry the cognitive load of platform operations. That load belongs to the platform team — and the platform's abstractions are the mechanism for transferring it.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free