Merge pull request 'docs: shared Product and Technology squads' (#8) from docs/product-technology-squads into main
Build and publish Eldorado documentation / build (push) Successful in 30s

This commit was merged in pull request #8.
This commit is contained in:
jarvis-at-skic committed 2026-10-02 10:19:50 -07:00
commit 59b4075113
4 files changed
+216 -5

No files matched your search

@@ -23,7 +23,7 @@
"label": "Management",
"sublabel": "CEO / COO",
"pos": [
660,
680,
40
],
"size": [
@@ -37,7 +37,7 @@
"label": "Product",
"sublabel": "Experience and product outcomes",
"pos": [
40,
600,
280
],
"size": [
@@ -51,7 +51,7 @@
"label": "Technology",
"sublabel": "Engineering and platform",
"pos": [
320,
880,
280
],
"size": [
@@ -65,7 +65,7 @@
"label": "Operations",
"sublabel": "Service, resolution and trust",
"pos": [
600,
40,
280
],
"size": [
@@ -79,7 +79,7 @@
"label": "Marketing",
"sublabel": "Brand and customer growth",
"pos": [
880,
320,
280
],
"size": [
@@ -114,6 +114,118 @@
240,
80
]
},
{
"id": "shared-delivery",
"type": "frontend",
"label": "Product & Technology Squads",
"sublabel": "Up to seven cross-functional squads",
"pos": [
660,
520
],
"size": [
360,
80
]
},
{
"id": "squad-discovery",
"type": "frontend",
"label": "Discovery & Categories",
"sublabel": "Browse, search and conversion",
"pos": [
40,
760
],
"size": [
200,
80
]
},
{
"id": "squad-orders",
"type": "frontend",
"label": "Orders & Delivery",
"sublabel": "Purchase and post-purchase",
"pos": [
280,
760
],
"size": [
200,
80
]
},
{
"id": "squad-seller",
"type": "frontend",
"label": "Seller Platform",
"sublabel": "Seller tools and integrations",
"pos": [
520,
760
],
"size": [
200,
80
]
},
{
"id": "squad-payments",
"type": "frontend",
"label": "Payments & Wallet",
"sublabel": "Checkout, balances and payouts",
"pos": [
760,
760
],
"size": [
200,
80
]
},
{
"id": "squad-trust",
"type": "frontend",
"label": "Trust & Safety",
"sublabel": "Risk and resolution tooling",
"pos": [
1000,
760
],
"size": [
200,
80
]
},
{
"id": "squad-data",
"type": "frontend",
"label": "Data & Intelligence",
"sublabel": "Ranking, analytics and ML",
"pos": [
1240,
760
],
"size": [
200,
80
]
},
{
"id": "squad-platform",
"type": "frontend",
"label": "Platform & AI",
"sublabel": "Reliability and engineering AI",
"pos": [
1480,
760
],
"size": [
200,
80
]
}
],
"connections": [
@@ -158,9 +270,81 @@
"to": "people",
"label": "Coordinates",
"variant": "default"
},
{
"id": "product-squads",
"from": "product",
"to": "shared-delivery",
"label": "Shared delivery",
"variant": "default"
},
{
"id": "technology-squads",
"from": "technology",
"to": "shared-delivery",
"label": "Shared delivery",
"variant": "default"
},
{
"id": "delivery-discovery",
"from": "shared-delivery",
"to": "squad-discovery",
"label": "Squad",
"variant": "default"
},
{
"id": "delivery-orders",
"from": "shared-delivery",
"to": "squad-orders",
"label": "Squad",
"variant": "default"
},
{
"id": "delivery-seller",
"from": "shared-delivery",
"to": "squad-seller",
"label": "Squad",
"variant": "default"
},
{
"id": "delivery-payments",
"from": "shared-delivery",
"to": "squad-payments",
"label": "Squad",
"variant": "default"
},
{
"id": "delivery-trust",
"from": "shared-delivery",
"to": "squad-trust",
"label": "Squad",
"variant": "default"
},
{
"id": "delivery-data",
"from": "shared-delivery",
"to": "squad-data",
"label": "Squad",
"variant": "default"
},
{
"id": "delivery-platform",
"from": "shared-delivery",
"to": "squad-platform",
"label": "Squad",
"variant": "default"
}
],
"cards": [
{
"dot": "cyan",
"title": "Shared delivery squads",
"items": [
"Product owns priorities and outcomes; Technology owns engineering capability.",
"Each squad combines product ownership, engineering, design, QA and data skills.",
"Functional teams support squads; they are not extra delivery squads."
]
},
{
"dot": "cyan",
"title": "Product",
+16
View File
@@ -22,6 +22,22 @@ Functional leaders translate company priorities into departmental plans. Team le
**Management coordinates the six departments.** Each department has a clear business responsibility and a set of teams that deliver it.
## Product & Technology squads
Product and Technology share a delivery structure of **up to seven cross-functional squads**. Product sets priorities and business outcomes; Technology provides engineering leadership, technical standards and delivery capability.
| Squad | Scope |
| --- | --- |
| **Discovery & Categories** | Browsing, search, category journeys and marketplace conversion. |
| **Orders & Delivery** | Purchase and post-purchase experience, order tracking, delivery and customer feedback. |
| **Seller Platform** | Seller Portal, onboarding, integrations and seller-facing tools. |
| **Payments & Wallet** | Checkout, balances, withdrawals and payout integrations, working with Finance. |
| **Trust & Safety** | Risk controls, dispute tooling and safety workflows, working with Operations. |
| **Data & Intelligence** | Analytics, experimentation, offer ranking, recommendations and marketplace ML. |
| **Platform & AI** | Shared platform, reliability, delivery infrastructure and engineering AI tools. |
Each squad brings together product ownership, engineering, design, quality and data expertise according to its scope. Departmental teams and specialist functions below support these squads; they are not additional delivery squads. Operations retains ownership of customer cases and risk decisions, while Finance retains ownership of financial controls.
## Departments and teams
### Product
+10
View File
@@ -59,6 +59,16 @@ test('Archify is pinned, licensed and rebuilt, not a remote embed', () => {
assert(!wrapper.includes('target="_blank"'));
assert(wrapper.includes('Close full-screen diagram'));
});
test('Product and Technology share seven delivery squads', () => {
const spec = JSON.parse(read('diagrams/organization-structure.architecture.json'));
const squads = spec.components.filter(n => n.id.startsWith('squad-'));
assert.equal(squads.length, 7);
for (const dept of ['product','technology']) assert(spec.connections.some(e => e.from === dept && e.to === 'shared-delivery'));
for (const squad of squads) {
assert(spec.connections.some(e => e.from === 'shared-delivery' && e.to === squad.id));
assert(read('docs/organization/structure.mdx').includes(squad.label));
}
});
test('organization page presents an operating model, not research notes', () => {
const page = read('docs/organization/structure.mdx');
assert(page.includes('operating model') && page.includes('## Departments and teams'));
+1
View File
@@ -24,6 +24,7 @@ if (process.argv.includes('--build')) {
assert(diagram.includes('Coordinates') && diagram.includes('node-technology'));
assert(!/A: placement|E: careers|J: advertised/.test(diagram));
assert(!diagram.includes('Example leadership'));
for (const id of ['discovery','orders','seller','payments','trust','data','platform']) assert(diagram.includes(`node-squad-${id}`));
const reporting = read('build/diagrams/organization-reporting/index.html');
assert(reporting.includes('AI Architect') && reporting.includes('Leads'));
assert(!/A: assumed|J: direct/.test(reporting));