Making organizational design reviewable, testable, deployable.
Org as Code is an open framework for defining organizational structures, governance, and decision flows in version-controlled, AI-readable formats — so they can be treated like software: reviewed, tested, and deployed.
At its core: OPI (Organizational Programming Interfaces) — a YAML-based specification for encoding how organizations make decisions, assign responsibilities, and coordinate work.
Organizations spend enormous effort on governance, compliance, and coordination — and most of it is invisible, undocumented, or stuck in slide decks. Meanwhile, software engineering solved this decades ago: version control, code review, automated testing, continuous deployment.
Org as Code bridges this gap. It brings engineering practices to organizational design — not to replace human judgment, but to make structures visible, discussable, and evolvable.
| # | Principle | Core Idea |
|---|---|---|
| 1 | Org as Code | Structures are versioned, reviewable, deployable — like software |
| 2 | Human-First Automation | AI handles the tedious; humans make the decisions |
| 3 | Decision Flow Visibility | Make visible where decisions get stuck |
| 4 | Interface over Hierarchy | OPIs over rigid org charts |
| 5 | Adaptive by Design | The framework adapts to the organization's developmental stage |
| 6 | High-Performing Humanity | Performance AND humanity — enabling entrepreneurial thinking without losing the human |
org-as-code/
├── spec/ # OPI Specification
│ ├── opi-v0.1.md # Foundation spec (669 lines)
│ ├── opi-v0.2.md # Full spec (1500+ lines, 36 validation rules)
│ ├── opi-v0.2.schema.json # JSON Schema (V0.2)
│ ├── opi-v0.3.md # Current spec (BP integration, interface methods)
│ └── opi-v0.3.schema.json # JSON Schema (V0.3)
├── examples/
│ ├── governance/ # Unit definitions
│ │ ├── committee-structure.yaml
│ │ ├── steering-committee.yaml # Committee with DACI, schedule, interfaces
│ │ └── delivery-lead-sync.yaml # Meeting with facilitator, weekly cadence
│ └── flows/ # Cross-unit decision flows
│ ├── budget-approval.yaml # Decision flow with conditional routing
│ └── escalation.yaml # Escalation path with time-based triggers
├── templates/ # Reusable org templates
│ ├── consulting-firm.yaml # 7 custom types for consulting orgs
│ └── spotify-model.yaml # Squad, Tribe, Chapter, Guild types
└── docs/
└── research/ # Background research
├── competitive-landscape.md
└── opi-spec-research-report.md
A Steering Committee defined as OPI — with members, schedule, governance, and interfaces:
opi: "0.3.0"
unit:
name: "Steering Committee"
id: steering-committee
type: committee
purpose: "Strategic decisions for the delivery organization"
mandate: "Budget approval >10k EUR, headcount changes, unit restructuring"
owner: "COO"
members:
- role: chair
position: "COO"
daci: approver
attendance: permanent
- role: member
position: "Head of Delivery"
daci: driver
attendance: permanent
- role: member
position: "Head of Sales"
daci: contributor
attendance: permanent
schedule:
cadence: biweekly
duration: 60
rrule: "FREQ=WEEKLY;INTERVAL=2;BYDAY=TU;BYHOUR=10;BYMINUTE=0"
governance:
framework: daci
decisions:
- type: budget-approval
authority: approve
quorum: 3
escalation: board
interfaces:
inputs:
- from: delivery-lead-sync
artifact: decision-proposals
format: markdown
outputs:
- to: all-hands
artifact: decision-log
format: markdown
cadence: monthlyThe specification defines 15 sections for modeling organizational units, plus org-level documents for shared defaults:
| Section | Purpose |
|---|---|
unit |
Identity, type, purpose, mandate |
members |
Roles with DACI/RAPID accountability, temporal roles (start/end dates) |
schedule |
Cadence with iCalendar RRULE support |
governance |
Decision frameworks and authority |
interfaces |
Inputs/outputs with method types and BP integration |
flows |
Cross-unit decision and escalation paths |
components |
Type inheritance, custom unit types, artifact schemas |
capabilities |
What the unit can do |
channels |
Communication (async, meetings, wikis) |
dependencies |
Unit relationships, SLAs, escalation flows |
New in V0.3:
- Org-level documents (
org.yaml) — organizational metadata and shared defaults - Interface methods —
unary·stream·batch·collaborative - BP type annotations — link interface artifacts to Business Primitives atoms
- Temporal roles —
start_date/end_dateon members - Escalation flows —
escalation_flowon dependencies
Unit types: stream-aligned · platform · enabling · leadership · support · committee · meeting · working-group · circle
Governance models: DACI · RAPID · OVIS · consent · consensus · autocratic
→ Full spec: spec/opi-v0.3.md | JSON Schema: spec/opi-v0.3.schema.json | Previous: spec/opi-v0.2.md
Pre-built organizational templates with custom unit types:
- Consulting Firm — Practice, Delivery Unit, Steering, Staffing Board, Client Board, All-Hands, Leadership Team
- Spotify Model — Squad, Tribe, Chapter, Guild
Templates use OPI's type inheritance (components.types) so you can define your organization's building blocks once and instantiate them consistently.
V0.3 (current) — BP integration, interface methods, temporal roles, org-level documents. JSON Schema.
V0.2 — Full spec with 36 validation rules, flows, components, status conditions.
V0.1 — Foundation release.
- 🌐 org-as-code.com — Concept, principles, and visual guides
- 📖 OPI Spec v0.3 — Current specification
- 📖 OPI Spec v0.2 — Previous version
- 📖 OPI Spec v0.1 — Foundation version
- 💡 Examples — Real-world configurations
- 📐 Templates — Reusable organizational templates
- 🧩 Business Primitives — The communication layer (Atomic Business Design)
- 🔧 Prism — Rendering engine for BP + OPI documents
Andreas Siemes — Principal Consultant Strategy & Transformation. Building the bridge between organizational design and software engineering.
MIT