Jack Danger Canty 1

I call it “technical Coherence” because it drives toward a single, articulable system that implements the full product, can fit on a whiteboard, and improve security, correctness, performance, resilience, maintainability, and development speed.

Technical Coherence is an engineering organizational design pattern proposed by Jack Danger Canty1 to reduce operational overhead and cognitive load. It has three phases:

Process

  1. Identify the user experience domains the company must support for the products being built
  2. Identify the shared product domains that underpin multiple user experience
  3. Staff three layers of engineering teams: Two layers for the product domains, one layer for infrastructure

The first two steps help to define the shape of the product (suite) and system. This design must be one holistic system with interfaces owned by Engineering. During step one, product and design should continue take the lead. During step two, engineering should take the lead and seek to answer the question: “If our competitor were building this domain what is the bare minimum to end up the same”

Three Layers of Engineering in product-shipping company

  • Product Engineering - UX domains and user facing features
  • Domain Engineering - Shared, UX domain spanning features
  • Infrastructure Engineering - Company-agnostic infrastructure

This leads to an important middle layer within the three layers: “Everything that’s unique to a company’s feature but not unique to this company’s features but not unique to any one feature”. This middle layer is tough to hire for and suffers from the internal forces of Infrastructure Gravity vs. Feature lift.

Technical Coherence Staffing Strategy

In a crisis period, people will be staffed to work on the most critical thing. During stable times though we should build towards a sustainable structure, that strategy to achieve that structure is as follows1:

  1. Allocate the minimum number of infrastructure people to the infrastructure so that the team can succeed and rebase the company onto the current technologies. The minimum and the maximum are likely the same here.
  2. Add as many engineers as possible to the domain layer because the pool of engineers capable of working this layer is small.
  3. Everyone else is assigned to a feature team.

1. Danger, J. Executive Engineering: Practical Engineering Theory for Software Leaders. (The Technical Executive, 2024).