docs: separate two Product and five Technology teams
Build and publish Eldorado documentation / build (pull_request) Successful in 32s

This commit is contained in:
jarvis-at-skic committed 2026-10-03 06:41:10 +00:00
1 parent 59b4075113
commit ecc234234e
5 files changed
+117 -173

No files matched your search

@@ -77,7 +77,7 @@
"id": "engineers",
"type": "frontend",
"label": "Software engineers",
"sublabel": "Product Engineering teams",
"sublabel": "Product Engineering team",
"pos": [
1480,
40
@@ -220,10 +220,10 @@
},
{
"dot": "amber",
"title": "Cross-functional execution",
"title": "Interdepartmental collaboration",
"items": [
"Product Owners, Designers and Tech Leads align on product outcomes.",
"AI Enablement works across engineering teams."
"Data & AI enables AI adoption across Technology."
]
}
]
+78 -127
View File
@@ -23,7 +23,7 @@
"label": "Management",
"sublabel": "CEO / COO",
"pos": [
680,
490,
40
],
"size": [
@@ -37,7 +37,7 @@
"label": "Product",
"sublabel": "Experience and product outcomes",
"pos": [
600,
40,
280
],
"size": [
@@ -51,7 +51,7 @@
"label": "Technology",
"sublabel": "Engineering and platform",
"pos": [
880,
720,
280
],
"size": [
@@ -66,7 +66,7 @@
"sublabel": "Service, resolution and trust",
"pos": [
40,
280
1450
],
"size": [
240,
@@ -79,8 +79,8 @@
"label": "Marketing",
"sublabel": "Brand and customer growth",
"pos": [
320,
280
370,
1450
],
"size": [
240,
@@ -93,8 +93,8 @@
"label": "Finance & Accounting",
"sublabel": "Financial performance and controls",
"pos": [
1160,
280
700,
1450
],
"size": [
240,
@@ -107,8 +107,8 @@
"label": "HR & Administration",
"sublabel": "People and workplace",
"pos": [
1440,
280
1030,
1450
],
"size": [
240,
@@ -116,114 +116,100 @@
]
},
{
"id": "shared-delivery",
"id": "product-team-1",
"type": "frontend",
"label": "Product & Technology Squads",
"sublabel": "Up to seven cross-functional squads",
"label": "Product Management",
"sublabel": "Strategy, priorities and outcomes",
"pos": [
660,
40,
520
],
"size": [
360,
280,
80
]
},
{
"id": "squad-discovery",
"id": "product-team-2",
"type": "frontend",
"label": "Discovery & Categories",
"sublabel": "Browse, search and conversion",
"label": "Product Design",
"sublabel": "Research and experience design",
"pos": [
40,
760
680
],
"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",
"id": "technology-team-1",
"type": "frontend",
"label": "Seller Platform",
"sublabel": "Seller tools and integrations",
"label": "Product Engineering",
"sublabel": "Marketplace software delivery",
"pos": [
520,
760
720,
520
],
"size": [
200,
280,
80
]
},
{
"id": "squad-payments",
"id": "technology-team-2",
"type": "frontend",
"label": "Payments & Wallet",
"sublabel": "Checkout, balances and payouts",
"label": "Platform & IT",
"sublabel": "Reliability and internal systems",
"pos": [
760,
760
720,
680
],
"size": [
200,
280,
80
]
},
{
"id": "squad-trust",
"id": "technology-team-3",
"type": "frontend",
"label": "Trust & Safety",
"sublabel": "Risk and resolution tooling",
"label": "Architecture & Security",
"sublabel": "Technical standards and protection",
"pos": [
1000,
760
720,
840
],
"size": [
200,
280,
80
]
},
{
"id": "squad-data",
"id": "technology-team-4",
"type": "frontend",
"label": "Data & Intelligence",
"sublabel": "Ranking, analytics and ML",
"label": "Quality Engineering",
"sublabel": "Testing and release quality",
"pos": [
1240,
760
720,
1000
],
"size": [
200,
280,
80
]
},
{
"id": "squad-platform",
"id": "technology-team-5",
"type": "frontend",
"label": "Platform & AI",
"sublabel": "Reliability and engineering AI",
"label": "Data & AI",
"sublabel": "Analytics, ML and AI enablement",
"pos": [
1480,
760
720,
1160
],
"size": [
200,
280,
80
]
}
@@ -233,134 +219,99 @@
"id": "management-product",
"from": "management",
"to": "product",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-technology",
"from": "management",
"to": "technology",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-operations",
"from": "management",
"to": "operations",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-marketing",
"from": "management",
"to": "marketing",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-finance",
"from": "management",
"to": "finance",
"label": "Coordinates",
"variant": "default"
},
{
"id": "management-people",
"from": "management",
"to": "people",
"label": "Coordinates",
"variant": "default"
},
{
"id": "product-squads",
"id": "product-1",
"from": "product",
"to": "shared-delivery",
"label": "Shared delivery",
"to": "product-team-1",
"variant": "default"
},
{
"id": "technology-squads",
"id": "product-2",
"from": "product",
"to": "product-team-2",
"variant": "default"
},
{
"id": "technology-1",
"from": "technology",
"to": "shared-delivery",
"label": "Shared delivery",
"to": "technology-team-1",
"variant": "default"
},
{
"id": "delivery-discovery",
"from": "shared-delivery",
"to": "squad-discovery",
"label": "Squad",
"id": "technology-2",
"from": "technology",
"to": "technology-team-2",
"variant": "default"
},
{
"id": "delivery-orders",
"from": "shared-delivery",
"to": "squad-orders",
"label": "Squad",
"id": "technology-3",
"from": "technology",
"to": "technology-team-3",
"variant": "default"
},
{
"id": "delivery-seller",
"from": "shared-delivery",
"to": "squad-seller",
"label": "Squad",
"id": "technology-4",
"from": "technology",
"to": "technology-team-4",
"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",
"id": "technology-5",
"from": "technology",
"to": "technology-team-5",
"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",
"items": [
"Orders; Categories",
"Sellers & Operations",
"Data & Intelligence; Product Design"
"Product Management",
"Product Design"
]
},
{
"dot": "amber",
"title": "Technology",
"items": [
"Product Engineering; Quality Engineering",
"Platform & Reliability; Architecture & Security",
"AI Enablement; Internal IT"
"Product Engineering",
"Platform & IT",
"Architecture & Security",
"Quality Engineering",
"Data & AI"
]
},
{
+16 -34
View File
@@ -22,52 +22,34 @@ 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 has **two teams** and Technology has **five teams**. Each team belongs to one department, with its own leadership and responsibilities. The departments collaborate on delivery without sharing team ownership.
### Product
**Purpose:** improve the buyer and seller experience and turn marketplace opportunities into valuable product capabilities.
| Team | Responsibilities |
| --- | --- |
| Orders | Purchase and post-purchase journeys, order status, delivery experience, dispute flows, feedback and loyalty. |
| Categories | Category experiences, including Boosting and Currency, discovery, conversion and category-specific user journeys. |
| Sellers & Operations | Seller Portal, seller integrations, onboarding and verification, balances and withdrawals, invoicing and operational tooling. |
| Data & Intelligence | Product analytics, experimentation, offer ranking, recommendations and decision support. |
| Product Design | User research, interaction design, design consistency and accessible buyer and seller experiences across product teams. |
| Product Management | Product strategy, roadmaps, priorities and outcome measurement across discovery, categories, orders, seller tools, payments and operational workflows. |
| Product Design | User research, interaction design, design consistency and accessible buyer and seller experiences. |
Product Owners, Designers and Tech Leads work together on each product area. Product owns priorities and outcomes; Technology owns engineering execution and technical quality.
Product Management owns what to improve and why. Product Design shapes the experience. Both work with Technology teams while remaining within Product.
### Technology
**Purpose:** build and operate a secure, reliable marketplace and improve the effectiveness of engineering.
| Team / function | Responsibilities |
| Team | Responsibilities |
| --- | --- |
| Product Engineering | Develop and maintain marketplace capabilities in cross-functional product teams. |
| Platform & Reliability | Shared platform services, delivery infrastructure, observability, availability and performance. |
| Architecture & Security | Technical standards, system design, infrastructure security and secure engineering practices. |
| Product Engineering | Build and maintain marketplace capabilities, including search, orders, seller tools, checkout, wallet and operational tooling. |
| Platform & IT | Platform services, delivery infrastructure, observability, reliability, performance, internal systems, employee devices and identity administration. |
| Architecture & Security | Technical standards, system design, security architecture and secure engineering practices. |
| Quality Engineering | Test strategy, automation, release quality and defect prevention. |
| AI Enablement | AI-assisted engineering workflows, developer tools, adoption, standards and safe use of AI. |
| Internal IT | Identity and access, employee devices, internal systems, software administration and joiner–mover–leaver processes. |
| Data & AI | Analytics, experimentation, ranking, recommendations, marketplace ML and safe AI-assisted engineering workflows. |
The CTO owns technology direction. The Head of Engineering leads engineering delivery through Group Engineering Managers and Engineering Managers. The AI Architect coordinates AI enablement across engineering, working with Architecture & Security and team leaders.
The CTO owns technology direction. The Head of Engineering leads engineering delivery through Group Engineering Managers and Engineering Managers. The AI Architect coordinates AI enablement within Data & AI, working with Architecture & Security and the other Technology teams. These are leadership roles within the five-team structure, not additional teams.
### Operations
@@ -119,7 +101,7 @@ The CFO coordinates Finance & Accounting and works with executive leadership on
| People Operations | Employee onboarding, development, performance processes, policies and employee experience. |
| Office & Administration | Workplace services, office operations and administrative coordination. |
HR partners with department leaders on team capacity and development. People Operations works with Internal IT on employee onboarding, role changes and offboarding.
HR partners with department leaders on team capacity and development. People Operations works with Platform & IT on employee onboarding, role changes and offboarding.
## Leadership and delivery structure
@@ -127,21 +109,21 @@ HR partners with department leaders on team capacity and development. People Ope
The diagram shows management responsibility from leader to role or team:
- **CTO → Head of Engineering → Group Engineering Managers → Engineering Managers → Product Engineering teams.**
- **CTO → Head of Engineering → Group Engineering Managers → Engineering Managers → the Product Engineering team.**
- **CTO → AI Architect**, coordinating engineering AI enablement.
- **COO → Operational Quality**, providing independent quality oversight.
- **CMO → Brand Team Lead**, leading Brand & Community.
Product teams combine product ownership, design, engineering, quality and data expertise. Functional management develops people and professional standards; cross-functional teams deliver business outcomes.
Product and Technology retain separate team ownership and reporting lines. Their teams coordinate priorities, design, engineering, quality and data work to deliver business outcomes.
## How the departments work together
| Business outcome | Collaboration |
| --- | --- |
| Better buyer experience | Product defines improvements; Technology delivers them; Operations brings customer feedback; Data measures the result. |
| Better buyer experience | Product defines improvements; Technology delivers them; Operations brings customer feedback; Data & AI measures the result. |
| Stronger seller experience | Product and Technology develop seller tools; Operations supports sellers; Finance manages financial processes. |
| Safe and trustworthy trading | Risk & Fraud, Trust & Resolution, Architecture & Security, and Finance coordinate controls and incident responses. |
| Sustainable growth | Marketing develops demand; Product improves conversion and retention; Finance measures profitability. |
| AI-powered execution | AI Enablement supports engineering; Data & Intelligence develops marketplace intelligence; Operations improves service and quality workflows. |
| AI-powered execution | Data & AI supports engineering and develops marketplace intelligence; Operations improves service and quality workflows. |
Department leaders remain accountable for outcomes, controls and service quality as AI becomes part of everyday work.
+15 -7
View File
@@ -59,14 +59,22 @@ 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', () => {
test('Product owns two teams and Technology owns five separate teams', () => {
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));
const page = read('docs/organization/structure.mdx');
assert(!/shared-delivery|squad-/i.test(JSON.stringify(spec)));
assert(!/shared squads|share a delivery structure|cross-functional teams/i.test(page));
for (const [dept, count, heading, next] of [['product',2,'Product','Technology'],['technology',5,'Technology','Operations']]) {
const teams = spec.components.filter(n => n.id.startsWith(`${dept}-team-`));
assert.equal(teams.length, count);
const section = page.split(`### ${heading}\n`)[1].split(`### ${next}\n`)[0];
const rows = section.split('\n').filter(l => l.startsWith('| ')).slice(2);
assert.equal(rows.length, count);
for (const team of teams) {
const parents = spec.connections.filter(e => e.to === team.id);
assert.deepEqual(parents.map(e => e.from), [dept]);
assert(rows.some(row => row.startsWith(`| ${team.label} |`)));
}
}
});
test('organization page presents an operating model, not research notes', () => {
+5 -2
View File
@@ -21,10 +21,13 @@ if (process.argv.includes('--build')) {
}
assert(!readdirSync('build/diagrams', {recursive: true}).some(f => f.endsWith('.delivery.json')), 'Private build receipts must not be published');
const diagram = read('build/diagrams/organization-structure/index.html');
assert(diagram.includes('Coordinates') && diagram.includes('node-technology'));
assert(diagram.includes('node-product-team-2') && diagram.includes('node-technology-team-5'));
assert(!diagram.includes('shared-delivery'));
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}`));
for (const [dept, count] of [['product', 2], ['technology', 5]]) {
for (let i = 1; i <= count; i++) assert(diagram.includes(`node-${dept}-team-${i}`));
}
const reporting = read('build/diagrams/organization-reporting/index.html');
assert(reporting.includes('AI Architect') && reporting.includes('Leads'));
assert(!/A: assumed|J: direct/.test(reporting));