agentme 0.34.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,8 +2,19 @@
2
2
 
3
3
  Business decisions for software development project management practices in the agentme scope.
4
4
 
5
+ ## Principles
6
+
7
+ Organisational structure, team topology, and strategic alignment concepts.
8
+
9
+ - [agentme-bdr-001](principles/001-company-organizational-levels.md) - **Company organizational levels** — Defines the Group, Company, and Business Unit taxonomy used to describe how organisations are structured
10
+ - [agentme-bdr-002](principles/002-okr-framework.md) - **OKR framework** — Defines the Strategic, Tactical, and Operational OKR framework and connection rules
11
+ - [agentme-bdr-003](principles/003-product-delivery-value-flow.md) - **Product delivery value flow** — Defines the end-to-end chain from Strategic OKRs through roles and artefacts to fulfilled Tactical OKRs
12
+
5
13
  ## Operations
6
14
 
7
15
  Project management workflow and structure for development teams.
8
16
 
9
17
  - [agentme-bdr-401](operations/401-epic-feature-story-planning.md) - **Epic / Feature / User Story planning** — Organize development work as epics, features, and user stories using XDRS plan documents
18
+ - [agentme-bdr-402](operations/402-digital-product-roles.md) - **Digital product roles — organisation & cross-team** — Defines team purpose, workforce allocation, roles overview, and org-level and cross-team roles (PM, Principal Engineer, Solution Architect)
19
+ - [agentme-bdr-403](operations/403-product-team-composition.md) - **Product team composition** — Defines team composition models, squad structure, squad dynamics, and known structural gaps for Product Teams
20
+ - [agentme-bdr-404](operations/404-team-roles-and-specialists.md) - **Digital product roles — team & specialists** — Defines team-level roles (PO, PjM, BA, AI BA, AI Lead, AI Engineer, Tech Lead, engineers) and shared specialist roles
@@ -0,0 +1,171 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="920" height="685" viewBox="0 0 920 685">
2
+ <defs>
3
+ <marker id="arr" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
4
+ <polygon points="0 0, 8 3, 0 6" fill="#9CA3AF"/>
5
+ </marker>
6
+ <marker id="arr-v" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
7
+ <polygon points="0 0, 8 3, 0 6" fill="#7C3AED"/>
8
+ </marker>
9
+ </defs>
10
+
11
+ <rect width="920" height="685" fill="#F8FAFC"/>
12
+
13
+ <!-- ===== CROSS-TEAM ===== -->
14
+ <rect x="10" y="10" width="900" height="95" rx="8" fill="#EEF2FF" stroke="#C7D2FE" stroke-width="1.5"/>
15
+ <text x="22" y="30" font-family="system-ui,sans-serif" font-size="10" font-weight="700" fill="#6366F1" letter-spacing="1">ORGANISATION &amp; CROSS-TEAM ROLES</text>
16
+
17
+ <rect x="65" y="38" width="165" height="52" rx="6" fill="#4F46E5"/>
18
+ <text x="147" y="59" font-family="system-ui,sans-serif" font-size="12" font-weight="700" fill="white" text-anchor="middle">Product Manager</text>
19
+ <text x="147" y="76" font-family="system-ui,sans-serif" font-size="10" fill="#C7D2FE" text-anchor="middle">What / When</text>
20
+
21
+ <rect x="378" y="38" width="165" height="52" rx="6" fill="#1D4ED8"/>
22
+ <text x="460" y="59" font-family="system-ui,sans-serif" font-size="12" font-weight="700" fill="white" text-anchor="middle">Principal Engineer</text>
23
+ <text x="460" y="76" font-family="system-ui,sans-serif" font-size="10" fill="#BFDBFE" text-anchor="middle">How</text>
24
+
25
+ <rect x="692" y="38" width="165" height="52" rx="6" fill="#1D4ED8"/>
26
+ <text x="774" y="59" font-family="system-ui,sans-serif" font-size="12" font-weight="700" fill="white" text-anchor="middle">Solution Architect</text>
27
+ <text x="774" y="76" font-family="system-ui,sans-serif" font-size="10" fill="#BFDBFE" text-anchor="middle">What</text>
28
+
29
+ <!-- Arrow: cross-team → team -->
30
+ <line x1="460" y1="105" x2="460" y2="122" stroke="#9CA3AF" stroke-width="1.5" marker-end="url(#arr)"/>
31
+
32
+ <!-- ===== TEAM ===== -->
33
+ <rect x="10" y="125" width="900" height="95" rx="8" fill="#F0FDF4" stroke="#86EFAC" stroke-width="1.5"/>
34
+ <text x="22" y="144" font-family="system-ui,sans-serif" font-size="10" font-weight="700" fill="#16A34A" letter-spacing="1">TEAM X</text>
35
+
36
+ <!-- PO — shared, dashed border -->
37
+ <rect x="22" y="150" width="138" height="55" rx="6" fill="#4F46E5" stroke="#A5B4FC" stroke-width="1.5" stroke-dasharray="5,3"/>
38
+ <text x="91" y="170" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Product Owner</text>
39
+ <text x="91" y="185" font-family="system-ui,sans-serif" font-size="9" fill="#C7D2FE" text-anchor="middle">What / When</text>
40
+ <text x="91" y="198" font-family="system-ui,sans-serif" font-size="9" fill="#E0E7FF" text-anchor="middle">↔ all squads</text>
41
+
42
+ <!-- PM -->
43
+ <rect x="178" y="150" width="138" height="55" rx="6" fill="#7C3AED"/>
44
+ <text x="247" y="170" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Project Manager</text>
45
+ <text x="247" y="185" font-family="system-ui,sans-serif" font-size="9" fill="#DDD6FE" text-anchor="middle">When / How</text>
46
+ <text x="247" y="198" font-family="system-ui,sans-serif" font-size="9" fill="#EDE9FE" text-anchor="middle">cross-squad deps</text>
47
+
48
+ <!-- Tech Lead — shared, dashed border -->
49
+ <rect x="567" y="150" width="138" height="55" rx="6" fill="#059669" stroke="#6EE7B7" stroke-width="1.5" stroke-dasharray="5,3"/>
50
+ <text x="636" y="170" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Tech Lead</text>
51
+ <text x="636" y="185" font-family="system-ui,sans-serif" font-size="9" fill="#A7F3D0" text-anchor="middle">How / When</text>
52
+ <text x="636" y="198" font-family="system-ui,sans-serif" font-size="9" fill="#D1FAE5" text-anchor="middle">↔ all squads</text>
53
+
54
+ <!-- AI Lead — shared, dashed border -->
55
+ <rect x="723" y="150" width="138" height="55" rx="6" fill="#D97706" stroke="#FDE68A" stroke-width="1.5" stroke-dasharray="5,3"/>
56
+ <text x="792" y="170" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">AI Lead</text>
57
+ <text x="792" y="185" font-family="system-ui,sans-serif" font-size="9" fill="#FDE68A" text-anchor="middle">How / When</text>
58
+ <text x="792" y="198" font-family="system-ui,sans-serif" font-size="9" fill="#FEF3C7" text-anchor="middle">↔ all squads</text>
59
+
60
+ <!-- Arrows: team → squads -->
61
+ <line x1="152" y1="220" x2="152" y2="237" stroke="#9CA3AF" stroke-width="1.5" marker-end="url(#arr)"/>
62
+ <line x1="460" y1="220" x2="460" y2="237" stroke="#9CA3AF" stroke-width="1.5" marker-end="url(#arr)"/>
63
+ <line x1="768" y1="220" x2="768" y2="237" stroke="#9CA3AF" stroke-width="1.5" marker-end="url(#arr)"/>
64
+
65
+ <!-- BA fluidity labels and arrows (between BA row of adjacent squads) -->
66
+ <text x="305" y="287" font-family="system-ui,sans-serif" font-size="9" fill="#7C3AED" text-anchor="middle" font-style="italic">fluid</text>
67
+ <line x1="279" y1="293" x2="330" y2="293" stroke="#7C3AED" stroke-width="1.5" stroke-dasharray="4,3" marker-end="url(#arr-v)"/>
68
+ <text x="613" y="287" font-family="system-ui,sans-serif" font-size="9" fill="#7C3AED" text-anchor="middle" font-style="italic">fluid</text>
69
+ <line x1="587" y1="293" x2="638" y2="293" stroke="#7C3AED" stroke-width="1.5" stroke-dasharray="4,3" marker-end="url(#arr-v)"/>
70
+
71
+ <!-- ===== SQUAD 1 ===== -->
72
+ <rect x="10" y="240" width="283" height="365" rx="8" fill="#FFFBEB" stroke="#FCD34D" stroke-width="1.5"/>
73
+ <text x="152" y="262" font-family="system-ui,sans-serif" font-size="12" font-weight="700" fill="#92400E" text-anchor="middle">Squad 1</text>
74
+
75
+ <rect x="24" y="270" width="255" height="46" rx="5" fill="#7C3AED"/>
76
+ <text x="152" y="288" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Business Analyst</text>
77
+ <text x="152" y="304" font-family="system-ui,sans-serif" font-size="9" fill="#EDE9FE" text-anchor="middle">Requirements · Process Design</text>
78
+
79
+ <rect x="24" y="325" width="255" height="46" rx="5" fill="#D97706"/>
80
+ <text x="152" y="343" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">AI Engineer</text>
81
+ <text x="152" y="359" font-family="system-ui,sans-serif" font-size="9" fill="#FEF3C7" text-anchor="middle">Models · Agents · Evals</text>
82
+
83
+ <rect x="24" y="380" width="255" height="46" rx="5" fill="#D97706"/>
84
+ <text x="152" y="398" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">AI Engineer</text>
85
+ <text x="152" y="414" font-family="system-ui,sans-serif" font-size="9" fill="#FEF3C7" text-anchor="middle">Models · Agents · Evals</text>
86
+
87
+ <!-- FS Eng 1 = Squad Lead (thicker border) -->
88
+ <rect x="24" y="435" width="255" height="46" rx="5" fill="#059669" stroke="#34D399" stroke-width="2"/>
89
+ <text x="152" y="453" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Engineer ★</text>
90
+ <text x="152" y="469" font-family="system-ui,sans-serif" font-size="9" fill="#D1FAE5" text-anchor="middle">APIs · Pipelines · Frontend</text>
91
+
92
+ <rect x="24" y="490" width="255" height="46" rx="5" fill="#059669"/>
93
+ <text x="152" y="508" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Engineer</text>
94
+ <text x="152" y="524" font-family="system-ui,sans-serif" font-size="9" fill="#D1FAE5" text-anchor="middle">APIs · Pipelines · Frontend</text>
95
+
96
+ <text x="152" y="556" font-family="system-ui,sans-serif" font-size="8" fill="#92400E" text-anchor="middle" font-style="italic">★ Squad Lead — ceremonies, shielding, prioritisation</text>
97
+
98
+ <!-- ===== SQUAD 2 ===== -->
99
+ <rect x="318" y="240" width="283" height="365" rx="8" fill="#FFFBEB" stroke="#FCD34D" stroke-width="1.5"/>
100
+ <text x="460" y="262" font-family="system-ui,sans-serif" font-size="12" font-weight="700" fill="#92400E" text-anchor="middle">Squad 2</text>
101
+
102
+ <rect x="332" y="270" width="255" height="46" rx="5" fill="#7C3AED"/>
103
+ <text x="460" y="288" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">AI Business Analyst</text>
104
+ <text x="460" y="304" font-family="system-ui,sans-serif" font-size="9" fill="#EDE9FE" text-anchor="middle">AI Requirements · Agent Specs</text>
105
+
106
+ <!-- AI Eng 1 = Squad Lead -->
107
+ <rect x="332" y="325" width="255" height="46" rx="5" fill="#D97706" stroke="#FDE68A" stroke-width="2"/>
108
+ <text x="460" y="343" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">AI Engineer ★</text>
109
+ <text x="460" y="359" font-family="system-ui,sans-serif" font-size="9" fill="#FEF3C7" text-anchor="middle">Models · Agents · Evals</text>
110
+
111
+ <rect x="332" y="380" width="255" height="46" rx="5" fill="#D97706"/>
112
+ <text x="460" y="398" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">AI Engineer</text>
113
+ <text x="460" y="414" font-family="system-ui,sans-serif" font-size="9" fill="#FEF3C7" text-anchor="middle">Models · Agents · Evals</text>
114
+
115
+ <rect x="332" y="435" width="255" height="46" rx="5" fill="#059669"/>
116
+ <text x="460" y="453" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Engineer</text>
117
+ <text x="460" y="469" font-family="system-ui,sans-serif" font-size="9" fill="#D1FAE5" text-anchor="middle">APIs · Pipelines · Frontend</text>
118
+
119
+ <rect x="332" y="490" width="255" height="46" rx="5" fill="#059669"/>
120
+ <text x="460" y="508" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Engineer</text>
121
+ <text x="460" y="524" font-family="system-ui,sans-serif" font-size="9" fill="#D1FAE5" text-anchor="middle">APIs · Pipelines · Frontend</text>
122
+
123
+ <text x="460" y="556" font-family="system-ui,sans-serif" font-size="8" fill="#92400E" text-anchor="middle" font-style="italic">★ Squad Lead — ceremonies, shielding, prioritisation</text>
124
+
125
+ <!-- ===== SQUAD 3 ===== -->
126
+ <rect x="626" y="240" width="283" height="365" rx="8" fill="#FFFBEB" stroke="#FCD34D" stroke-width="1.5"/>
127
+ <text x="768" y="262" font-family="system-ui,sans-serif" font-size="12" font-weight="700" fill="#92400E" text-anchor="middle">Squad 3</text>
128
+
129
+ <rect x="640" y="270" width="255" height="46" rx="5" fill="#7C3AED"/>
130
+ <text x="768" y="288" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Business Analyst</text>
131
+ <text x="768" y="304" font-family="system-ui,sans-serif" font-size="9" fill="#EDE9FE" text-anchor="middle">Requirements · Process Design</text>
132
+
133
+ <rect x="640" y="325" width="255" height="46" rx="5" fill="#D97706"/>
134
+ <text x="768" y="343" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">AI Engineer</text>
135
+ <text x="768" y="359" font-family="system-ui,sans-serif" font-size="9" fill="#FEF3C7" text-anchor="middle">Models · Agents · Evals</text>
136
+
137
+ <rect x="640" y="380" width="255" height="46" rx="5" fill="#D97706"/>
138
+ <text x="768" y="398" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">AI Engineer</text>
139
+ <text x="768" y="414" font-family="system-ui,sans-serif" font-size="9" fill="#FEF3C7" text-anchor="middle">Models · Agents · Evals</text>
140
+
141
+ <rect x="640" y="435" width="255" height="46" rx="5" fill="#059669"/>
142
+ <text x="768" y="453" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Engineer</text>
143
+ <text x="768" y="469" font-family="system-ui,sans-serif" font-size="9" fill="#D1FAE5" text-anchor="middle">APIs · Pipelines · Frontend</text>
144
+
145
+ <!-- Eng 2 = Squad Lead -->
146
+ <rect x="640" y="490" width="255" height="46" rx="5" fill="#059669" stroke="#34D399" stroke-width="2"/>
147
+ <text x="768" y="508" font-family="system-ui,sans-serif" font-size="11" font-weight="700" fill="white" text-anchor="middle">Engineer ★</text>
148
+ <text x="768" y="524" font-family="system-ui,sans-serif" font-size="9" fill="#D1FAE5" text-anchor="middle">APIs · Pipelines · Frontend</text>
149
+
150
+ <text x="768" y="556" font-family="system-ui,sans-serif" font-size="8" fill="#92400E" text-anchor="middle" font-style="italic">★ Squad Lead — ceremonies, shielding, prioritisation</text>
151
+
152
+ <!-- ===== LEGEND ===== -->
153
+ <rect x="10" y="622" width="900" height="52" rx="6" fill="#F3F4F6" stroke="#E5E7EB" stroke-width="1"/>
154
+
155
+ <rect x="20" y="632" width="11" height="11" rx="2" fill="#4F46E5"/>
156
+ <text x="35" y="642" font-family="system-ui,sans-serif" font-size="10" fill="#374151">Vision / Product</text>
157
+
158
+ <rect x="160" y="632" width="11" height="11" rx="2" fill="#7C3AED"/>
159
+ <text x="175" y="642" font-family="system-ui,sans-serif" font-size="10" fill="#374151">Requirements / BA</text>
160
+
161
+ <rect x="315" y="632" width="11" height="11" rx="2" fill="#D97706"/>
162
+ <text x="330" y="642" font-family="system-ui,sans-serif" font-size="10" fill="#374151">AI Engineering</text>
163
+
164
+ <rect x="455" y="632" width="11" height="11" rx="2" fill="#059669"/>
165
+ <text x="470" y="642" font-family="system-ui,sans-serif" font-size="10" fill="#374151">Engineering</text>
166
+
167
+ <rect x="575" y="632" width="11" height="11" rx="2" fill="#1D4ED8"/>
168
+ <text x="590" y="642" font-family="system-ui,sans-serif" font-size="10" fill="#374151">Arch / Standards</text>
169
+
170
+ <text x="20" y="660" font-family="system-ui,sans-serif" font-size="9" fill="#6B7280" font-style="italic">★ = Squad Lead (formal role, selected at squad formation) - - border = shared across all squads ╌╌▶ = BA / AI BA moves between squads (self-organised, PO aware)</text>
171
+ </svg>
@@ -133,7 +133,7 @@ A user story that lacks enough detail to begin architecture, planning, or implem
133
133
 
134
134
  Stories MUST be refined using the `151-refine-user-story` skill. The skill:
135
135
  - Detects active epic plan documents and lists pending stories for selection.
136
- - MUST run a structured 7-phase refinement process including interface/integration spec discovery.
136
+ - MUST run a structured 10-phase refinement process including interface/integration spec discovery.
137
137
  - MUST write the resulting detail file and update the key task link in the plan's Milestone.
138
138
  - When a story is split, MUST create placeholder files for each deferred slice and add them as pending task links in the plan.
139
139
 
@@ -144,7 +144,16 @@ Epic plans and their associated user story detail files are ephemeral artifacts.
144
144
  - The `.assets/` folder and all user story detail files MUST be deleted with it.
145
145
  - The lasting outputs of an epic are the implemented code, decisions, skills, articles, and other artifacts produced during execution.
146
146
 
147
+ #### 08-okr-connection
148
+
149
+ Epics SHOULD be connected to one or more Tactical OKRs from `agentme-bdr-002` that represent the quarterly goals the epic is helping achieve.
150
+
151
+ - The OKR reference MUST be placed in a `## OKRs` section immediately after the heading line of the epic plan document, listing each Tactical OKR by name or identifier.
152
+ - An epic without a linked Tactical OKR MUST document the reason in the `## OKRs` section (e.g., "No Tactical OKR defined for this quarter — tracked as a conscious decision").
153
+ - The relationship is many-to-many: one Tactical OKR MAY drive multiple Epics; one Epic MAY contribute to multiple Tactical OKRs.
154
+
147
155
  ## References
148
156
 
149
157
  - [`_core-adr-policy-007`](../../../_core/adrs/principles/007-plan-standards.md) — Plan document standards: structure, lifecycle, and Milestone template
158
+ - [`agentme-bdr-002`](../principles/002-okr-framework.md) — OKR framework: Tactical OKR definition and epic connection rule
150
159
  - [`agentme-edr-skill-151`](../../edrs/principles/skills/151-refine-user-story/SKILL.md) — Refine user story skill: structured refinement workflow that produces output following this policy
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: agentme-bdr-policy-402-digital-product-roles-org-cross-team
3
+ description: Defines organisation-level and cross-team roles — Product Manager, Principal Engineer, and Solution Architect — along with team purpose, scope, workforce allocation, and a roles overview table. Use when staffing or assigning responsibilities at the organisation or cross-team level.
4
+ apply-to: Organisation-level and cross-team roles in digital product organisations
5
+ valid-from: 2026-08-30
6
+ ---
7
+
8
+ # agentme-bdr-policy-402: Digital product roles — org & cross-team
9
+
10
+ ## Context and Problem Statement
11
+
12
+ Digital product organisations involve roles at multiple levels — from strategy and product direction at the organisation level, through cross-team architectural and engineering standards, to daily execution inside product teams. Without a clear definition of each role's responsibilities, boundaries, and expected skills, ambiguity accumulates about who owns what, leading to gaps in coverage, duplicated effort, and unclear escalation paths.
13
+
14
+ What roles are involved in building and operating digital products, and what does each role own?
15
+
16
+ ## Decision Outcome
17
+
18
+ **A defined set of organisation-level, cross-team, team-level, and specialist roles with explicit responsibilities, authority boundaries, and skill requirements**
19
+
20
+ ### Details
21
+
22
+ #### 01-product-team-purpose
23
+
24
+ A product team is responsible for a product consumed by others: an API used by another team in the company, a business process used by customers, or a platform that other teams build on.
25
+
26
+ Strategic objectives typically originate outside the team. However, the team MUST own a defined set of OKRs or KPIs and be fully autonomous within its domain to change processes and implement systems that affect those objectives. The team MUST be accountable for results within its domain; it MUST NOT depend on other teams to execute changes within scope.
27
+
28
+ #### 02-product-team-scope-of-work
29
+
30
+ The team MUST own the full lifecycle of its product:
31
+
32
+ - Model as-is business processes and define to-be target processes
33
+ - Design architecture and system components
34
+ - Implement and deploy features across all environments
35
+ - Test software components, runtime services, and business processes
36
+ - Monitor production operation
37
+ - Fix incidents and manage production stability
38
+ - Communicate outages and new feature rollouts to users
39
+
40
+ The team MUST NOT hand off any of these responsibilities to a separate function. Ownership is end-to-end.
41
+
42
+ #### 03-workforce-allocation
43
+
44
+ Teams MUST allocate available capacity across three categories. These are targets, not rigid weekly quotas — they SHOULD balance over a rolling 4–6 week window:
45
+
46
+ | Category | Target | Scope |
47
+ |---|---|---|
48
+ | New features | 50% | Spiking, designing, implementing, and testing new capabilities |
49
+ | Tech and cognitive debt | 25% | Reducing complexity, improving maintainability, resolving known deficiencies |
50
+ | Operations and controls | 25% | Monitoring, incident response, compliance checks, access reviews, process audits |
51
+
52
+ #### 04-roles-overview
53
+
54
+ All roles MUST be filled by a person with the required hard skills. Organisation-level roles MUST operate at the Group, Company, or Business Unit level. Cross-team roles MUST operate across all product teams within a domain. Team-level roles MUST belong to a specific product team.
55
+
56
+ | Role | Scope | Focus |
57
+ |---|---|---|
58
+ | Product Manager (PM) | Org-level | What / When |
59
+ | Principal Engineer | Cross-team | How |
60
+ | Solution Architect | Cross-team | What |
61
+ | Product Owner (PO) | Team | What / When |
62
+ | Project Manager (PjM) | Team | When / How |
63
+ | Business Analyst (BA) | Team / Squad | What / How |
64
+ | AI Business Analyst (AI BA) | Team / Squad | What / How |
65
+ | AI Lead | Team / Squad | How / When |
66
+ | AI Engineer | Squad | How |
67
+ | Tech Lead | Team / Squad | How / When |
68
+ | Backend Engineer | Squad | How |
69
+ | Frontend Engineer | Squad | How |
70
+ | DevOps/Infra Engineer | Squad | How |
71
+ | Full Stack Engineer | Squad | How |
72
+
73
+ #### 05-organisation-and-cross-team-roles
74
+
75
+ The following roles operate at the organisation level (Group, Company, or Business Unit) or across all product teams within a domain. They MUST NOT belong to a single product team.
76
+
77
+ ---
78
+
79
+ **Product Manager (PM)**
80
+
81
+ *Purpose*: Own the product direction for the organisation — defining what to build and why — and translate strategic objectives into Tactical OKRs that product teams execute.
82
+
83
+ *Responsibilities*:
84
+ - Translate Strategic OKRs (set at Group, Company, or Business Unit level) into Tactical OKRs for quarterly execution
85
+ - Prioritise Epics across product teams to maximise contribution to Tactical OKRs
86
+ - Communicate Tactical OKRs and Epic priorities to Product Owners (POs) so teams can execute against them; the PO is the primary recipient of this direction and executes it within the team
87
+ - Maintain visibility into the product portfolio and adjust priorities as market or business conditions change
88
+ - Own the product roadmap and communicate it to stakeholders
89
+
90
+ *Authority*: The PM owns WHAT the organisation builds at the portfolio level and WHEN Tactical OKRs are set. The PM does NOT own day-to-day team decisions — those remain with each team's Product Owner and Tech Lead. The PM does NOT set engineering practices or platform choices — those are owned by the Principal Engineer.
91
+
92
+ *Soft skills*: Strategic thinking, product vision, stakeholder communication, prioritisation across competing goals, ability to synthesise market and business context into clear direction
93
+
94
+ *Hard skills*: OKR methodology, product roadmap management, market and business analysis, Epic-level prioritisation across multiple product teams
95
+
96
+ *Common activities*: OKR planning cycles, product roadmap reviews, Epic prioritisation sessions, Product Owner alignment meetings, stakeholder presentations, portfolio health reviews
97
+
98
+ ---
99
+
100
+ **Principal Engineer**
101
+
102
+ *Purpose*: Own the HOW across all product teams — engineering practices, tooling standards, platform choices, and AI practices — and synthesise them into a blueprint that leads can apply.
103
+
104
+ *Responsibilities*:
105
+ - Define and maintain engineering standards across all product teams (coding practices, testing, CI/CD, observability)
106
+ - Select and standardise platforms and tooling used by teams
107
+ - Shape AI engineering practices and the adoption of AI-assisted development
108
+ - Connect architecture decisions, business requirements, and standardised platforms into a coherent engineering blueprint
109
+ - Mentor Tech Leads and AI Leads on standards and practices
110
+ - Connect with Product Manager (PM), Project Manager (PjM), Solution Architects, and team leads to translate, converge, and align the technological landscape, standards, and processes
111
+
112
+ *Soft skills*: Technical leadership, communication across skill levels, systems thinking, mentoring, cross-team influence — a nexialist connecting engineering, management, architecture, platforms, and product
113
+
114
+ *Hard skills*: Software architecture, platform engineering, AI/ML practices, CI/CD, observability, security engineering, developer experience
115
+
116
+ *Common activities*: Engineering standards authoring, tech radar reviews, architecture and platform reviews, Tech Lead and AI Lead mentoring sessions, cross-team engineering syncs
117
+
118
+ ---
119
+
120
+ **Solution Architect**
121
+
122
+ *Purpose*: Define the architecture for solutions that require new cross-system standards, new platforms, integrations with external systems, or significant security and compliance concerns.
123
+
124
+ *Responsibilities*:
125
+ - Design architectural solutions for Epics or initiatives that span multiple systems or teams
126
+ - Define new integration patterns, platform adoptions, and cross-system standards when existing standards do not cover the need
127
+ - Produce architectural blueprints that Tech Leads and AI Leads can implement within their teams
128
+ - Assess security, compliance, and risk dimensions of proposed architectures
129
+ - Ensure architectural consistency across product teams within the domain
130
+
131
+ *Soft skills*: Holistic thinking, stakeholder communication, structured documentation, facilitation, ability to balance pragmatism with rigour
132
+
133
+ *Hard skills*: Enterprise architecture, system integration patterns, cloud architecture, security architecture, business process modelling, platform evaluation, domain-driven design
134
+
135
+ *Common activities*: Architecture design for complex Epics, blueprint authoring, cross-system integration design, security and compliance assessment, architecture review participation, cross-team design alignment sessions
136
+
137
+ #### 06-team-and-specialist-roles
138
+
139
+ Team-level and specialist roles are defined in [`agentme-bdr-404`](404-team-roles-and-specialists.md). Practitioners MUST consult that policy when staffing or onboarding team-level roles.
140
+
141
+ ## References
142
+
143
+ - [`_core-adr-policy-016`](../../../_core/adrs/principles/016-policy-subjects.md) — Policy subjects: BDR operations subject definition
144
+ - [`_core-adr-policy-017`](../../../_core/adrs/principles/017-policy-numbering-ranges.md) — Policy numbering: BDR operations block 401–500
145
+ - [`agentme-bdr-001`](../principles/001-company-organizational-levels.md) — Company organisational levels: Group, Company, and Business Unit definitions
146
+ - [`agentme-bdr-002`](../principles/002-okr-framework.md) — OKR framework: Strategic, Tactical, and Operational OKR definitions
147
+ - [`agentme-bdr-003`](../principles/003-product-delivery-value-flow.md) — Product delivery value flow: end-to-end chain from Strategic OKRs to fulfilled Tactical OKRs
148
+ - [`agentme-bdr-403`](403-product-team-composition.md) — Team composition models, squad dynamics, and known structural gaps
149
+ - [`agentme-bdr-404`](404-team-roles-and-specialists.md) — Team-level roles and specialists: PO, PjM, BA, AI BA, AI Lead, AI Engineer, Tech Lead, engineers, and specialists
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: agentme-bdr-policy-403-product-team-composition
3
+ description: Defines team composition models, squad structure, squad dynamics, and known structural gaps for Product Teams. Use when structuring or scaling a new or existing product team.
4
+ apply-to: All product teams and cross-team roles in the organisation
5
+ valid-from: 2026-08-18
6
+ ---
7
+
8
+ # agentme-bdr-policy-403: Product team composition
9
+
10
+ ## Context and Problem Statement
11
+
12
+ Product teams vary in scope and AI surface. Without a defined composition model, teams grow informally, leading to inconsistent structures, unclear coordination patterns, and unmanaged structural risks.
13
+
14
+ How should a product team be structured, and what known risks must teams manage proactively?
15
+
16
+ ## Decision Outcome
17
+
18
+ **Two composition models (simple and complex) with defined squad structure, squad dynamics, and documented structural gaps with required mitigations**
19
+
20
+ ### Details
21
+
22
+ #### 01-composition-model-selection
23
+
24
+ Teams MUST apply one of the two composition models defined in this policy — simple or complex — based on their product scope and AI surface. Teams MUST NOT operate with an undefined or informal structure.
25
+
26
+ ![Team composition diagram](.assets/team-composition.svg)
27
+
28
+ #### 02-team-composition-simple
29
+
30
+ A team with a bounded product scope and limited AI surface MUST operate as a simple team with no internal squads.
31
+
32
+ | Role | Count | Notes |
33
+ |---|---|---|
34
+ | Product Owner | 1 | |
35
+ | Business Analyst or AI BA | 1 | |
36
+ | Tech Lead | 1 | |
37
+ | Engineer | 1–2 | Any sub-type from `agentme-bdr-404` (Backend, Frontend, DevOps/Infra, Full Stack) |
38
+ | AI Engineer (if AI work exists) | 0–1 | |
39
+
40
+ The Tech Lead MAY also contribute as an engineer in a simple team. The BA MUST work directly with the PO on requirements without squad separation.
41
+
42
+ #### 03-team-composition-complex
43
+
44
+ A team with a broad product scope or significant AI surface MUST operate with internal squads.
45
+
46
+ | Role | Count | Notes |
47
+ |---|---|---|
48
+ | Product Owner | 1 | Shared across all squads |
49
+ | Tech Lead | 1 | Shared across all squads |
50
+ | AI Lead | 1 | Shared across all squads |
51
+ | Squad | 3 | See squad composition below |
52
+
53
+ **Squad composition** (per squad):
54
+
55
+ | Role | Count | Notes |
56
+ |---|---|---|
57
+ | Business Analyst (BA or AI BA) | 1 | Ideally one per squad; may move |
58
+ | AI Engineer | 2 | |
59
+ | Engineer | 2 | Any sub-type from `agentme-bdr-404` (Backend, Frontend, DevOps/Infra, Full Stack) |
60
+ | Squad Lead | 1 | One of the engineers above, designated by soft skills |
61
+
62
+ Squads MUST NOT exceed 4 engineers (AI + Full Stack combined) to preserve cohesion and limit coordination overhead.
63
+
64
+ #### 04-squad-dynamics
65
+
66
+ **Squad stability**: Engineers assigned to a squad MUST remain stable over time. Squad membership changes MUST be deliberate and infrequent; frequent reassignment prevents team bonding and reduces squad effectiveness.
67
+
68
+ **BA and AI BA fluidity**: One BA or AI BA MUST be assigned to each squad, ideally working one sprint ahead on upcoming features. When squad needs shift — for example, when a squad moves from a non-AI phase to an AI-heavy phase — the BA and AI BA MAY exchange positions. Movement is self-organised between the BAs with PO awareness and is not restricted to sprint boundaries.
69
+
70
+ **Squad Lead**: Each squad MUST have a designated Squad Lead — one of its engineers (AI Engineer or Engineer) selected based on available soft skills. The Squad Lead is a formal role with the following responsibilities:
71
+ - Run squad ceremonies (standups, retrospectives)
72
+ - Shield the squad from unplanned external interruptions
73
+ - Make within-squad prioritisation calls when the PO or Tech Lead / AI Lead are unavailable
74
+
75
+ The Squad Lead MUST be identified at squad formation, not selected on-demand when a situation arises. The role does not change the engineer's technical responsibilities and does not carry a formal seniority change, but soft skills MUST be taken into account at the time of assignment.
76
+
77
+ **Cross-squad coordination**: Cross-squad dependencies within the same team MUST be the Project Manager (PjM)'s explicit responsibility. The PjM MUST proactively identify and resolve scheduling conflicts between squads.
78
+
79
+ **Tech Lead and AI Lead interaction**: The PO, Tech Lead, and AI Lead MUST connect to all squads. For integrated features spanning AI and non-AI components, the Tech Lead and AI Lead MUST co-own the technical design. The Tech Lead holds the tiebreaker on system boundaries and non-AI components; the AI Lead holds the tiebreaker on AI components.
80
+
81
+ #### 05-known-gaps-and-mitigations
82
+
83
+ Teams MUST be aware of the following structural gaps and MUST apply the recommended mitigations proactively.
84
+
85
+ | Gap | Risk | Mitigation |
86
+ |---|---|---|
87
+ | PO, Tech Lead, AI Lead spanning 3 squads | Bandwidth overload; leads become bottlenecks | Squad Lead MUST absorb daily unblocking and within-squad prioritisation; leads focus on design, mentoring, and cross-squad alignment |
88
+ | Principal Engineer covering all teams | Single point of knowledge for engineering standards | Architecture documentation MUST be kept current; Principal Engineer MUST actively pair with Tech Leads and AI Leads to distribute knowledge |
89
+ | No embedded UX/Design role | UI and interaction design absorbed informally by BA or PO | A UX Designer Specialist (see `agentme-bdr-404`) SHOULD be engaged for user-facing features with significant interaction design needs; otherwise bring in a contract designer |
90
+ | No Data Engineering / MLOps role | Data pipelines, feature stores, and model serving infrastructure absorbed by Engineers and AI Engineers | Teams MUST plan a dedicated hire when the AI surface grows beyond squad capacity |
91
+ | No embedded QA role | Test quality depends on individual engineer discipline with no gate owner | A Tester / QA Specialist (see `agentme-bdr-404`) SHOULD be engaged during high-complexity delivery phases; Tech Lead and AI Lead MUST own quality gates; acceptance criteria from BA and AI BA MUST include testable conditions |
92
+ | No Security / SecOps role | Security design and review absorbed by Tech Lead on top of architecture load | Teams MUST schedule an external security review cadence; Principal Engineer MUST maintain security standards in the engineering blueprint |
93
+ | BA squad fluidity | Knowledge transfer cost each time a BA moves | BAs MUST coordinate handoff timing to minimise disruption |
94
+ | Squad Lead selection uncertainty | Squads without a clear lead default to ambiguity in ceremonies and prioritisation | Squad Lead MUST be identified at squad formation; MUST NOT be left to emerge organically after work has started |
95
+ | Cross-squad dependency coordination | Without explicit ownership, cross-squad dependencies surface late and block delivery | Project Manager (PjM) MUST own cross-squad dependency tracking and resolution as part of their stakeholder-connecting mandate |
96
+
97
+ ## References
98
+
99
+ - [`_core-adr-policy-016`](../../../_core/adrs/principles/016-policy-subjects.md) — Policy subjects: BDR operations subject definition
100
+ - [`_core-adr-policy-017`](../../../_core/adrs/principles/017-policy-numbering-ranges.md) — Policy numbering: BDR operations block 401–500
101
+ - [`agentme-bdr-402`](402-digital-product-roles.md) — Digital product roles (org & cross-team): PM, Principal Engineer, and Solution Architect definitions
102
+ - [`agentme-bdr-404`](404-team-roles-and-specialists.md) — Digital product roles (team & specialists): role definitions for all team-level roles and specialists referenced in this policy