The engineering org design decision record: why the org design you chose determines your team autonomy ceiling and your coordination overhead floor

Engineering org design decisions are not decisions about what to call the teams or how many direct reports each manager should have. They are a set of founding decisions about how to draw the boundaries between teams so that the most frequent work requires the least cross-boundary coordination, how to assign ownership of shared infrastructure so that the components most critical to system reliability have a team accountable for their quality, how to staff the enabling functions so that the teams doing product delivery are not blocked waiting on centralized support, and how to design the communication structure so that the coordination overhead required to ship a feature is proportional to its cross-cutting complexity rather than to the accidental structure of the org chart. The consequences are invisible when the engineering organization is small enough that everyone can coordinate informally; they become visible when informal coordination has been replaced by meeting overhead and the delivery velocity metric is declining not because the engineers are slower but because the structure is requiring them to spend an increasing proportion of their time coordinating rather than shipping.

An 18-person startup building a developer tools product had organized its engineering function by discipline when the team was five people: two frontend engineers, two backend engineers, and one infrastructure engineer, each contributing to whatever was being built in the current sprint. As the team grew to eighteen, the structure had evolved naturally: three frontend engineers, seven backend engineers, two data engineers, two infrastructure engineers, and four people in a platform/DevOps function. The product had grown correspondingly, and most features now required coordination across the frontend, backend, and infrastructure functions before any code was written.

A new CTO joined and spent her first four weeks mapping the org's actual coordination patterns. She asked every engineer to track, for two weeks, how many hours per week they spent in meetings or async discussions whose primary purpose was coordinating with engineers outside their own functional group — aligning on an API contract, getting infrastructure sign-off on a deployment approach, waiting for a frontend review of a backend data model change. The aggregated result: across the eighteen engineers, an average of 11.4 hours per week — roughly 28% of a 40-hour week — was spent on inter-functional coordination for normal feature delivery. For the three most senior backend engineers, who had the broadest system context and were therefore the most sought-after coordination partners, the number was closer to 19 hours per week.

The CTO's diagnosis was structural rather than behavioral. The functional org had been appropriate when the team was five people and features were small enough to be designed in a single conversation between one person from each function. At eighteen people, the features were complex enough that the coordination was not a single conversation but a sequence of handoffs: the product manager would finalize requirements, the backend lead would design the data model, the frontend lead would map the UI components against the data model and surface questions, the backend lead would answer them and revise the model, the infrastructure engineer would review the deployment requirements the backend design implied, the backend lead would adjust the design to accommodate the infrastructure constraints. Every feature of any complexity required at least four rounds of this cycle before a line of code was committed. The functional structure had set a coordination overhead floor that was not a function of how well the engineers communicated — they communicated well — but of the fact that every feature required sign-off from three separate ownership domains before implementation could begin. The structure was producing the overhead, not the people.

A 45-person B2B SaaS had reorganized its engineering function eighteen months earlier from a functional structure into product-vertical teams after a consultant's assessment identified the same cross-functional coordination overhead the startup CTO had discovered. The reorganization produced three product teams: a core product team of twelve engineers owning the primary user-facing surface, an integrations team of eight engineers owning third-party connectors and API partners, and an admin and billing team of six engineers owning the customer management and subscription surfaces. Each product team had its own frontend, backend, and infrastructure engineers, eliminating the need for cross-functional coordination on most feature work.

The reorganization reduced the inter-team coordination overhead for feature delivery as intended. What it did not address was the ownership of the shared infrastructure layer — the authentication service, the event bus, the background job queue, the caching layer, the monitoring and alerting configuration — that all three product teams depended on. Before the reorganization, the infrastructure function had owned this layer. After the reorganization, the infrastructure engineers had been distributed across the three product teams and the shared layer was left as a collectively managed resource, with no team assigned ownership of any particular component. The assumption was that the teams would coordinate ownership organically.

Eighteen months after the reorganization, a new VP of Engineering conducted an incident post-mortem review across the previous year and mapped each incident to the component that had failed. The finding: 71% of the high-severity incidents traced to the shared infrastructure layer — the authentication service, the event bus, and the background job queue accounting for the majority. The core product team, the integrations team, and the admin and billing team each had clean incident records in their owned components. The shared layer had an incident rate four times higher than any product team's owned components. Investigation of each incident found a common structural pattern: the component that failed had been modified by engineers from two or three different product teams in the preceding six weeks, each team making changes that were individually reasonable but collectively inconsistent — different error handling strategies layered on top of each other, configuration changes that made sense from each team's perspective but interacted in ways no single team had reason to anticipate, monitoring coverage that each team had assumed another team was responsible for. The collective ownership had produced collective neglect.

A 75-person enterprise SaaS had implemented a team topology model based on stream-aligned teams and platform teams after their VP of Engineering attended a software architecture conference and found the framework matched the problems they were experiencing. The implementation produced six stream-aligned product teams — each owning a distinct customer-facing surface with full-stack ownership of its components — and a single shared platform team of eight engineers responsible for the developer platform: the CI/CD infrastructure, the infrastructure-as-code library, the observability stack, the secret management service, and the deployment tooling. The model was implemented carefully, with the platform team trained on the enabling team model and chartered to maximize stream team autonomy rather than to control the platform.

The VP of Engineering who had implemented the model left eighteen months later. Her successor conducted a throughput review in his first month. The finding: the platform team's average ticket backlog was 47 open requests, with a median wait time of nine business days between a stream team's request and the platform team beginning work on it. The six stream teams collectively reported that platform team dependency was the second most frequent cause of sprint delays, cited in 34% of delayed sprint items in the retrospective notes the VP reviewed. The platform team's own engineers reported being consistently overloaded, frequently context-switching between multiple stream teams' requests in a single day, and unable to make progress on the self-service infrastructure improvements they had been chartered to build because the volume of inbound requests from the stream teams consumed their entire sprint capacity.

The structural cause was not a failure of the model but a failure of the staffing assumption embedded in the implementation. The model had been designed for a 60-person org with five stream teams. By the time the VP's successor joined, the org had grown to 75 people with six stream teams — teams that had spent eighteen months developing progressively more autonomous delivery patterns and were now generating infrastructure requests at a higher per-team rate than they had been at the model's launch, because each team had become more capable and was attempting more complex infrastructure changes than it had been eighteen months earlier. The platform team's charter required it to respond to those requests while also building self-service tooling — but the volume of inbound requests was sufficient to consume the team's entire capacity without any self-service investment, and the self-service surface that was supposed to reduce inbound request volume had not been built because there had never been capacity to build it. The model had been right; the staffing projection had been wrong; the two failure modes had compounded into a platform team that was simultaneously the most burdened team in the organization and the team that was accumulating the most technical debt, because it had no capacity to improve its own systems while responding to six teams' requests.

Structural properties set by the engineering org design decision

Two structural properties are determined by the founding decisions about team boundary placement, ownership assignment, enabling function staffing, and decision rights delegation. Both are invisible when the engineering organization is small enough that everyone can coordinate informally and the cost of cross-team dependencies is absorbed by individual relationships; both become visible when the organization has grown large enough that informal coordination has been replaced by meeting overhead and the structure is requiring an increasing proportion of engineering time to be spent on coordination rather than delivery.

Property 1: Team autonomy ceiling. The team autonomy ceiling is the maximum fraction of features a team can ship without requiring negotiation or sign-off from another team — bounded by three factors. First, boundary definition model: whether the team boundaries are drawn so that the most frequently requested product capabilities fall within a single team's ownership, or whether frequent capabilities require cross-boundary coordination because the components they depend on are owned by different teams. The first story's functional org is the canonical boundary failure: every user-facing feature requires contribution from all three functional teams, so no team can ship any feature unilaterally. The boundary placement creates a hard cap on team autonomy before any work begins, because autonomy is a function of whether a team owns everything required to implement its most common work items — the backend API, the frontend component that calls it, and the infrastructure configuration that deploys it. A team that owns only one of these three for its most common features has an autonomy ceiling of zero for those features regardless of how capable its engineers are. Connect this to the engineering team charter decision record: the team charter specifies the team's ownership scope and the boundaries of its authority; the org design is the decision that determines whether those boundaries are drawn to maximize the team's ability to ship its most common features unilaterally or to require multi-team coordination for most of its work. The charter cannot compensate for a boundary placement that requires multi-team coordination; the charter can only document the coordination requirements that the boundary placement has created. Second, ownership assignment model: whether the shared services and infrastructure components that teams depend on are owned by an accountable team or are the collective responsibility of everyone who uses them, which is equivalent to the responsibility of no one. The second story's post-reorganization shared layer is the canonical ownership gap: the component exists, engineers from multiple teams make changes to it, and no team is accountable for its quality, reliability, or coherent evolution. Components with collective ownership accumulate debt at the rate all teams introduce shortcuts and are improved at the rate none, because improving a shared component costs a team capacity that produces no improvement in that team's own delivery metrics and is invisible in the team's contribution to the org's OKRs. The ownership model determines whether the shared components that sit on the critical path for multiple teams get better or worse over time independently of anything the product teams decide to prioritize. Third, decision rights model: whether the teams doing product delivery have the authority to make the architectural and operational decisions required to ship their features without escalating to a central review body, or whether the org design routes those decisions through a shared approval process that introduces scheduling overhead for every change that crosses the approval threshold. A team whose architectural decisions above a complexity threshold require a monthly architecture review board approval has an autonomy ceiling defined not by its technical capability but by its ability to schedule work so that it completes before the next review cycle; features that require architectural decisions in the middle of a sprint will be delayed by however long it takes to reach the next review date. Connect this to the cross-functional team structure decision record: the cross-functional structure determines which disciplines are represented within a single team's boundary; the org design decision determines whether those disciplines are co-owned within the team or whether the team must coordinate with separate functional teams to access each discipline's capacity and approval.

Property 2: Coordination overhead floor. The coordination overhead floor is the minimum fraction of engineering time spent on inter-team negotiation, alignment, and dependency management rather than on feature delivery — bounded by three factors. First, team boundary alignment model: the degree to which the org chart's boundaries correspond to the natural seams in the system's architecture. When team boundaries cut across architectural seams — when a single service is co-owned by two teams, or when a team's owned services are tightly coupled to services owned by a different team — every change that touches the coupling point requires coordination with the other team. The coordination overhead is not a function of how well the teams communicate; it is a structural property of the boundary placement, and it floors at the frequency of changes that touch the coupling point times the cost of each coordination round. An org design that places boundaries at architectural seams produces low coordination overhead as a structural property; an org design that ignores architectural seams and draws boundaries along product or business lines produces coordination overhead that is proportional to how often the product lines cross the system's architectural seams, which is a function of how well the product lines were designed to correspond to the system's architecture rather than of how well the teams were designed to coordinate. Second, enabling function model: whether the centralized functions that support product delivery — security review, infrastructure provisioning, architecture guidance — are staffed and structured to enable autonomous delivery at the team level, or structured to be the single point of approval that all teams must pass through. The third story's platform team failure illustrates the enabling function bottleneck: the model was correct, the staffing was wrong, and the bottleneck was a structural consequence of growing past the capacity assumption rather than a failure of the enabling team model. An enabling function that is correctly staffed at the time of the org design becomes a bottleneck when the number of teams it supports grows past its throughput capacity; the org design must include a staffing scaling model — a trigger or formula for growing the enabling function's capacity in proportion to the growth of the teams it supports — or the enabling function will become a bottleneck at a predictable scale point. Connect this to the engineering team growth decision record: the team growth model specifies how the engineering org expands as the product and customer base grow; the org design must be co-designed with the team growth model so that the enabling functions' staffing projections account for the planned growth rate rather than being sized for the current org and left to be caught by surprise when the growth crosses the throughput threshold. Third, interface standardization model: whether the org design produces stable, versioned interfaces between teams' ownership boundaries so that one team can evolve its internal implementation without requiring the other team to change its behavior, or whether the interfaces are informal and subject to change whenever either team's requirements change. Informal interfaces require ongoing bilateral coordination to maintain compatibility: when team A changes its service's behavior in a way that affects team B, team A must notify team B, team B must update its dependent code, and both teams must coordinate the deployment sequence. Stable, versioned interfaces decouple the teams' delivery cadences — team A can evolve its v2 interface while team B continues using the v1 interface until it is ready to migrate — reducing the coordination overhead from bilateral dependency to periodic boundary agreement at version transition points. The interface standardization model is not a technical decision but an org design decision: it requires an agreed commitment between teams about what constitutes a breaking change, what the notification and deprecation process is for breaking changes, and how much advance notice each team receives before a breaking interface change becomes mandatory. Connect this to the engineering technical strategy decision record: the technical strategy specifies the architectural commitments that constrain which interface models are available — if the strategy commits to a specific API versioning standard or a specific event contract format, those commitments should be reflected in the org design's interface standardization model rather than left as a separately negotiated bilateral agreement between each pair of teams whose ownership domains share an interface.

The engineering org design ADR: five sections

Section 1: Boundary definition model. The boundary definition model specifies how team ownership lines are drawn, what criteria determine which components belong to which team, and how ownership is assigned for components that span multiple product surfaces or architectural layers. The boundary definition should begin from the architecture rather than from the business structure: map the system's natural seams — where components have stable, well-defined interfaces and where the internal implementation of each component is independent of the other — and draw the team boundaries to correspond with those seams. When the architecture's seams and the business structure's divisions coincide, the boundary placement is straightforward: the team that owns the billing surface in the product owns the billing service in the system architecture. When they do not coincide — when a single architectural layer serves multiple product surfaces, or when a single product surface spans multiple architectural layers — the boundary placement requires an explicit trade-off between product alignment and architectural alignment, and the decision should be made by measuring which cross-boundary coordination is more frequent and more expensive. The boundary definition should also specify the ownership model for shared components: any component that serves more than one team must have a single owning team — the team with the most stake in its reliability and the most context on its failure modes — rather than collective ownership, which produces the second story's incident pattern. The owning team's charter should include explicit accountability for the shared component's reliability, with the maintenance cost reflected in that team's capacity allocation rather than treated as overhead that falls outside the team's delivery commitments. The boundary model should be reviewed at the team growth trigger defined in the team growth decision record: when the number of teams changes, the boundary placement assumptions should be re-evaluated because the coordination cost of a given boundary placement is a function of the number of teams that share that boundary, and a boundary placement that produces acceptable coordination overhead at six teams may produce unacceptable overhead at ten.

Section 2: Ownership assignment and accountability model. The ownership assignment model specifies which team is accountable for each component in the system, what accountability means in operational terms, and what happens when a component's ownership is ambiguous or contested. The accountability model should define three levels of ownership responsibility for each component: delivery accountability (which team is responsible for new features and changes to the component), operational accountability (which team is responsible for the component's reliability, incident response, and on-call coverage), and quality accountability (which team is responsible for the component's debt level, its test coverage, and its compliance with the engineering organization's standards). These three levels often coincide — the team that builds the features also operates and maintains the component — but they can diverge when components are stable and rarely changed, when teams are reorganized and components are transferred, or when components are shared. The assignment model should specify the process for transferring ownership when teams are reorganized, including the minimum documentation and runbook requirements that must be met before ownership transfer is complete, the handoff period during which both teams are co-responsible, and the escalation path when the receiving team identifies reliability issues that the transferring team did not disclose. The ownership model should also specify the decision rights each team has over its owned components: the authority to make architectural changes within the component without external review, the conditions under which an external review is required, and the process for resolving disputes between a component's owning team and the teams that depend on it when a proposed change to the component breaks a dependent team's assumptions. The accountability model produces the org's RACI in practice, but a RACI without the accountability model's criteria for assigning responsibility produces exactly the ambiguity the second story illustrates: a shared component that everyone is notionally responsible for and no one is specifically accountable for.

Section 3: Enabling function staffing and throughput model. The enabling function staffing model specifies how the centralized support functions — platform engineering, security, data infrastructure, architecture review — are staffed relative to the delivery teams they support, and what the throughput capacity of each enabling function is at the planned org scale. The enabling function model should distinguish between two types of enabling function output: artifacts (tools, platforms, documentation, libraries that the delivery teams consume without requiring ongoing enabling function involvement) and services (reviews, approvals, provisioning operations that the delivery teams request and the enabling function performs). The enabling function's goal should be to shift its output mix toward artifacts over time, because artifacts scale independently of the enabling function's headcount — a well-designed infrastructure-as-code library supports ten stream teams as well as it supports five — while services scale linearly with the number of requests, which grows with the number of teams and the teams' delivery velocity. The staffing model should include a throughput measurement for each enabling function's service output — requests handled per sprint per engineer — and a demand projection for each planned growth stage, so that the team can identify at what scale point each enabling function's service throughput will become a bottleneck without the artifact investment the third story describes. The throughput model should specify the artifact investment required to prevent that bottleneck: what self-service capabilities must be built before the team reaches the scale at which service throughput would otherwise fail. The staffing model should also include the scaling trigger: the demand threshold at which the enabling function's headcount is increased, its scope is narrowed, or the artifact investment is accelerated, whichever is most appropriate given the current bottleneck cause. A scaling trigger that is not defined in advance will be discovered reactively when the bottleneck has already materialized — as in the third story — rather than proactively when there is still sprint capacity to make the structural change before the stream teams are already waiting.

Section 4: Decision rights and escalation model. The decision rights model specifies which decisions each team has authority to make without external review or approval, which decisions require cross-team alignment before implementation, and which decisions require a central body's approval. The decision rights model should be calibrated to minimize the escalation overhead for the categories of decisions that teams make most frequently, and to concentrate the review requirement on decisions whose consequences are broad enough that the teams directly affected cannot represent all the affected stakeholders. A useful framing: decisions whose consequences are entirely contained within a single team's ownership boundary require no external review; decisions whose consequences affect other teams' interfaces or operational characteristics require alignment with the affected teams but not central approval; decisions that change the shared architectural foundations used by all teams require central architecture review. The third level should be as narrow as possible — only decisions that genuinely affect all teams' implementation or that cannot be made correctly without input from a central body with system-wide context — to prevent the architecture review from becoming the first story's functional-org coordination bottleneck in a different form. The escalation model should specify the process for each level: for team-level decisions, the team's own charter and code review process; for cross-team decisions, a lightweight alignment protocol (async review with a defined response window, a focused synchronous meeting for high-complexity cases) rather than a formal RFC process with a multi-week minimum review period; for architecture-level decisions, a centralized review with a defined scope statement that teams can use to determine whether their proposed change crosses the architecture-level threshold before beginning the review process. The decision rights model should also specify what happens when a team makes a decision that should have been escalated — the learning and correction process — and what the team's liability is for the consequences of a decision made below the appropriate escalation level. Without a consequence model, the escalation thresholds will be treated as advisory and teams will consistently route decisions below the threshold they would actually warrant, producing the second story's pattern of shared-component changes made by individual teams without the cross-team alignment that the changes' scope required.

Section 5: Org design health model and redesign trigger. The org design health model specifies how the org design is measured and what conditions trigger a structural review. An org design that is not measured against coordination overhead and autonomy rate will only be re-examined after it has visibly failed — after the platform team bottleneck has been active for three months, after the shared component's incident rate has been elevated for a year, after delivery velocity has declined for two quarters without an obvious feature-delivery cause. Three measurement dimensions for a healthy org design. Coordination overhead rate: the fraction of engineering time spent on inter-team coordination versus feature delivery, measured by sampling or survey rather than calendar analysis — a quarterly five-minute per-engineer survey asking how many hours of the previous week were spent primarily on inter-team coordination is sufficient to track the trend. The absolute number matters less than the trend: a stable coordination overhead rate at 25% may be acceptable; a coordination overhead rate that is increasing by two percentage points per quarter is a structural signal that the boundary placement is becoming less aligned with the actual work pattern as the product evolves. Enabling function wait time: the median time between a delivery team's request to each enabling function and the beginning of work on that request. This metric should be tracked per enabling function, not averaged across functions, because different enabling functions will reach their throughput ceiling at different times depending on their staffing level and their artifact-to-service output mix. An enabling function whose wait time is increasing quarter-over-quarter should trigger a review of whether the artifact investment is sufficient or whether the staffing scaling trigger should be activated. Ownership gap rate: the fraction of production incidents that trace to components with ambiguous or contested ownership — components that were modified by engineers from multiple teams in the preceding change window without any single team holding explicit operational accountability. A non-zero ownership gap rate is not necessarily a problem — complex multi-component incidents frequently touch components owned by different teams — but an increasing ownership gap rate, or an ownership gap rate concentrated in a specific architectural layer, is evidence that the ownership assignment model has coverage gaps that are accumulating operational risk. The org design should be reviewed when any of these three metrics crosses a defined threshold — not on a fixed calendar schedule, because an org design that is working correctly at 50 people may not be working correctly at 80 people, and the redesign trigger should be defined by the metric rather than by the calendar.

FAQ

What is the difference between an org chart and an org design decision record?

An org chart shows the current reporting structure; an org design decision record shows the reasoning that produced that structure — specifically, the boundary definition model that determined where team ownership lines were drawn, the ownership assignment model that determined which team is accountable for each shared component, the decision rights model that determined which teams have authority to make which categories of decisions without escalation, and the enabling function staffing model that determined how the centralized support functions are sized relative to the demand they will receive. The org chart is a snapshot; the decision record is the analysis that makes the snapshot interpretable. An org chart without a decision record leaves the next engineering leader who inherits the org unable to answer the three questions that matter most for deciding whether to change it: what coordination overhead is this structure producing and is it proportional to the actual cross-cutting complexity of the work; which shared components are unowned or under-owned and what production cost is that creating; and which decisions are being routed through an approval process that could be devolved to the team level without increasing risk. Without those answers, reorganizations tend to address the visible symptom — the team that is blocked waiting on another team — while preserving the structural property that produced the symptom, which is why engineering organizations that have been reorganized once tend to have a new set of the same coordination problems six months later.

How do you decide whether to organize engineering teams by function or by product area?

The decision should be made by mapping the most frequent work items against the team boundary options and measuring the cross-boundary coordination each option requires for that work. Functional organization — frontend team, backend team, infrastructure team — minimizes within-discipline coordination and maximizes cross-discipline coordination overhead for every user-facing feature. Product area organization — team per product surface or customer segment — minimizes cross-feature coordination overhead and maximizes cross-discipline coordination within each team's own delivery. The decision is therefore not a question of which structure is better in the abstract but which category of coordination is more frequent and more expensive in your specific product and org. For a product with high feature variety and low shared infrastructure complexity, product area organization minimizes the more frequent coordination cost. For a product with low feature variety and high infrastructure shared across all surfaces, functional or platform-centric organization minimizes the more frequent coordination cost. The failure mode is applying a structure designed for a different product type: most startup engineering teams begin with a functional structure because it maps naturally to small teams where everyone contributes to everything, and they carry it forward into the growth stage where cross-functional feature delivery has become the dominant work pattern — at which point the functional structure is generating coordination overhead in the category of work the org does most frequently, and the coordination overhead is not visible as a structural problem but as a collection of individual "communication issues" that no amount of better interpersonal communication will resolve.

How do you prevent platform teams from becoming bottlenecks in a stream-aligned model?

Three mechanisms in combination, each addressing a different cause of platform team bottlenecks. First, size the platform team to the demand it will receive at the intended scale, not the scale at which it is implemented. A platform team that is right-sized for six stream teams will be undersized when a seventh and eighth stream team are added, and it will be undersized earlier if the existing stream teams develop more autonomous delivery patterns and generate more infrastructure requests per team than they did at launch. The staffing plan must include a scaling trigger — a demand threshold at which the platform team's headcount is increased or its scope is narrowed — defined before the threshold is crossed rather than discovered reactively when the backlog has already grown to nine business days of wait time. Second, design for self-service first: the platform team's goal is not to do work for the stream teams but to build the platforms, tools, and documentation that allow the stream teams to do the work themselves. The ratio of self-service requests to platform-team-handled requests should be tracked and should be increasing over time as the platform's self-service surface expands; if the ratio is stable or declining, the platform team is building the wrong things — it is investing in platform features rather than in the self-service primitives that would reduce its own inbound request volume. Third, measure the platform team's output by stream team autonomy rate — the fraction of stream team infrastructure needs that are met without requiring a platform team engineer to perform work — not by the platform team's own delivery velocity. A platform team that ships features while stream teams wait is optimizing for the wrong metric. The platform team's roadmap should be driven by the stream teams' most frequent blocker categories, which requires the platform team to collect and aggregate that data rather than inferring it from the tickets they receive.

How do engineering org design decisions connect to AI chat sessions and decision preservation?

Engineering org design decisions are made in AI chat sessions when engineering leaders work through the gap between what the current org structure was designed to produce and what it is actually producing: why delivery velocity is declining despite stable team size, why the platform team's ticket backlog is always the longest in the org, why incidents in the shared infrastructure layer keep recurring despite repeated ownership discussions, why the last reorganization addressed the visible coordination bottleneck but produced a new set of similar problems six months later. The reasoning in those sessions covers the choices that determine the team autonomy ceiling and the coordination overhead floor — which boundaries to draw and why, which components need an accountable owning team rather than shared responsibility, how to staff the enabling functions at the scale the org design is intended to operate at, and how to define the decision rights so that teams can ship features without routing every non-trivial architectural decision through a central approval body. That reasoning informs the org chart, the RACI matrix, the escalation policy, and the team charter documents that follow — but the reasoning itself does not survive into those artifacts, because those artifacts describe the structure that was decided rather than the analysis that determined the structure. Running those AI chat sessions through the open-source extractor produces the engineering org design decision record that allows the next engineering leader to inherit the analysis that shaped the current structure — including the trade-offs that were explicitly rejected, the ownership gaps that were identified during the design and the compensating controls put in place, and the scale assumptions embedded in the platform team staffing that will produce a bottleneck when those assumptions are exceeded — rather than inheriting only the org chart and whatever institutional knowledge remains with whoever was in the room when the design was decided.

Further reading

  • Engineering team charter decision record — the team charter specifies the team's ownership scope and the boundaries of its authority; the org design is the decision that determines whether those boundaries are drawn to maximize the team's ability to ship its most common features unilaterally or to require multi-team coordination for most of its work; the charter cannot compensate for a boundary placement that requires multi-team coordination, but a charter that is explicitly aligned with the org design decision's boundary model provides the team with a clear reference for when a proposed change requires cross-team coordination and when it falls within the team's unilateral authority.
  • Cross-functional team structure decision record — the cross-functional structure determines which disciplines are co-owned within a single team's boundary versus accessed through coordination with separate functional teams; the org design decision's boundary definition model determines what cross-functional structure is implied for each team — a product-vertical boundary placement implies full-stack team ownership within each vertical, while a functional boundary placement implies cross-functional coordination for every feature; the two decisions should be co-designed so that the cross-functional structure is consistent with the org design's coordination overhead target.
  • Engineering team growth decision record — the team growth model specifies how the engineering org expands as the product and customer base grow; the org design must be co-designed with the team growth model so that the enabling functions' staffing projections account for the planned growth rate rather than being sized for the current org and left to be caught by surprise when growth crosses the throughput threshold; an org design that does not account for the growth trajectory will require a reorganization not because the design failed but because it was designed for a scale it has already exceeded.
  • Engineering technical strategy decision record — the technical strategy specifies the architectural commitments that constrain which boundary placement options are available — if the strategy commits to a specific service ownership model or a specific API contract format, those commitments should be reflected in the org design's boundary definition rather than left as a separately negotiated bilateral agreement between each pair of teams whose ownership domains share an interface; a technical strategy that is not reflected in the org design's interface standardization model produces an org where the technical standards apply to the code but not to the organizational dependencies, which is the structural precondition for the second story's shared-layer incident pattern.
  • Open-source extractor — the reasoning behind engineering org design decisions — why the boundary was drawn at the service level rather than the product surface level, what ownership model was chosen for the shared authentication service and why collective ownership was rejected after the previous incident pattern, how the platform team's staffing was projected forward to the org's planned scale and what the self-service investment roadmap is intended to prevent — is reasoning conducted in AI chat sessions when engineering leaders work through the gap between the structure the org has and the coordination overhead and autonomy it is producing; running those sessions through the extractor produces the org design decision record that allows the next engineering leader to inherit the analysis rather than only the org chart that resulted from it.