Engineering Operating Framework

Resource Distribution, Capacity Planning & Work Intake

Framework Overview

A comprehensive resource distribution model for Duplo's 24 engineers that balances technical excellence with delivery velocity.

Architecture Context: Dashboard and Atlas are customer-facing solutions. Both rely on Core for all money movement operations (wallet, ledger, business accounts, payout fulfillment, inflow processing).

Functional Discipline

Engineers report to discipline leads for standards, career growth, and hiring decisions

Project-Based Delivery

Project leads own sprint delivery, technical decisions, and application-specific work

Resource Pool

20% sprint flexibility allows reallocation based on business priorities

Key Takeaways

Organization

  • Emmanuel leads Dashboard project and allocates Dashboard BE engineers
  • Ezekiel leads Atlas project, allocates Atlas BE (Laravel), and allocates all FE engineers across apps
  • Abuchi leads Core project and allocates Core BE engineers
  • Olusegun leads Quality Assurance for all projects
  • Core is the foundation for all money movement — Dashboard and Atlas depend on it
  • Frontend engineers work across all React applications as a shared pool

Capacity & Work Intake

  • Sprint capacity is budgeted: 60% roadmap · 15% customer/sales · 15% tech debt · 10% data
  • PM is the single gatekeeper for all Sales and Customer requests — engineering takes no direct external requests
  • Ibrahim owns data & metrics projects (40% of his capacity)

Governance

  • P1/P2 incidents interrupt sprints immediately; P1 response SLA is 15 minutes, RCA required within 48 hours
  • Backlog items flagged at 90 days, archived at 180 days if untouched
  • Max 2 sprints of "Ready" items per project (WIP limit)
  • Weekly 60-min refinement per project; items need acceptance criteria before "Ready"

Organizational Structure

Head of Engineering
Adeolu Osunsami
Strategy & Resource Allocation
Functional Discipline Leads
⚙️
Tech Lead Backend
Abuchi Ndinigwe
→ Allocates Core + Mock Server BE → NestJS standards
🎨
Tech Lead Frontend & Mobile
Ezekiel Turaki
→ React (~5 engineers) → Flutter: Christian Esomnofu → Shared across all FE apps
Lead Quality Assurance
Olusegun Folorunsho
→ 3 QA/Automation engineers → All projects
Project Teams
Project Leads & Teams
Customer-Facing
📊
Dashboard Project
Emmanuel Bodunde
Dashboard • Sendfirst • Mobile
Rasheed Raji
Njoli Patrick
Christian Esomnofu
🎨
Frontend Engineers
2 React (Ezekiel assigns)
QA Engineer
2 assigned (Olusegun assigns)
🔧
DevOps / DBA
Request-based support
Customer-Facing
🔌
Atlas Project
Ezekiel Turaki
Atlas • Checkout • Docs
Boluwatife Ajileye
Oluwadare Samuel
David Ekete
🎨
Frontend Engineers
2 React (Ezekiel assigns)
QA Engineer
2 assigned (Olusegun allocates)
🔧
DevOps / DBA
Request-based support
Dual Hat
🏦
Core Project
Abuchi Ndinigwe
Core • Mock Server
Adetola Onasanya
Cynthia Owolabi
Mubarak Tijani
QA Engineer
1 assigned (Olusegun allocates)
🔧
DevOps / DBA
Request-based support
Shared Services
Shared Functions
⚙️
Admin Application
No Dedicated Developers
Connects to: Dashboard • Atlas • Core Resources from: FE (Ezekiel) • BE (All leads)
🎧
Customer Support
Mubarak Tijani
Managed by: Abuchi, Ezekiel, Emmanuel, Olusegun
🔧
DevOps & Infrastructure
Johnmary Odenigbo
Serves: All projects (request-based)
🗄️
Database Admin & Data Engineering
Ibrahim Olubiyi
Serves: All projects | 60% DBA, 40% Data/Metrics

Leadership Roles

Person Discipline Role Project Role Allocation Responsibility
Adeolu Osunsami Head of Engineering All Projects Strategy, escalations
Abuchi Ndinigwe Tech Lead Backend Core Project Lead Core + Mock Server BE
Ezekiel Turaki Tech Lead Frontend & Mobile Atlas Project Lead All FE engineers + Atlas BE (Laravel)
Emmanuel Bodunde Senior Backend Engineer Dashboard Project Lead Dashboard BE engineers
Olusegun Folorunsho Lead Quality Assurance All Projects Quality Assurance + Manual Testing + Automation

Dual Responsibility Model

Responsibility Discipline Lead Owns Project Lead Owns
Standards Code standards, architecture patterns Application-specific decisions
Career 1:1s, skill growth, promotions
Hiring Hiring decisions Input on candidates
Delivery Sprint planning, shipping
Code Reviews Cross-cutting patterns Application code
Performance Reviews 50% weight 50% weight
Incidents On-call, resolution
BE Allocation Each project lead allocates their own BE
FE Allocation Ezekiel assigns all FE engineers Project Leads request FE support
Support Engineer Mubarak shared across all projects

⚠️ Dual-Hat Workload Mitigation

Abuchi (Backend Lead + Core Project): Adetola handles Core day-to-day sprints

Ezekiel (FE/Mobile Lead + Atlas Project): FE pool model allows flexibility; Atlas BE is small

Cross-Team Dependency Coordination

When work spans multiple projects (e.g., Dashboard feature requiring Core API changes), these coordination rules apply:

Dependency Types

Type Example Coordination Method Lead Time
API Dependency Dashboard needs new Core endpoint Requesting Project Lead raises at Weekly Project Leads Sync 1 sprint ahead
Shared Resource FE engineer needed for Atlas + Dashboard same sprint Ezekiel allocates at Sprint Start FE Allocation Sprint start
Schema/DB Change Core DB migration affecting Atlas queries Ibrahim + affected Project Leads coordinate; announce in #dp-product-engineering 2 sprints ahead
Infrastructure New service deployment, environment changes Johnmary coordinates with affected Project Leads 1 sprint ahead

Cross-Project Work Rules

Rule Policy
Contract First API contracts (OpenAPI spec) must be agreed before implementation begins
No Silent Dependencies All cross-project dependencies must be logged in JIRA with linked tickets
Blocking Escalation If dependency blocks sprint work for >2 days, escalate to HoE
Shared Ownership Admin app changes require consensus from all Project Leads (async approval in Slack)

Shared Resources

The following resources are distributed across all projects based on demand and sprint priorities.

Person Function Allocation Model
Johnmary Odenigbo DevOps + SRE Request-based across all projects
Ibrahim Olubiyi Database Admin & Data Engineering 60% DBA (request-based) + 40% Data/Metrics projects
David Ekete Technical Writing Request-based across all projects
Mubarak Tijani Support Engineer Request-based across all projects, reporting to Leads

Headcount Summary

Leads who code are counted with their discipline, not separately as "Leadership".

1
HoE
3
Dashboard BE
2
Atlas BE (Laravel)
3
Core BE (NestJS)
6
Frontend (React)
1
Mobile (Flutter)
4
QA & Automation
4
Platform & Support
24
Total Engineering

Complete Engineer Mapping

All 24 engineers in the Duplo Engineering organization.

Engineer Role Status
Adeolu Osunsami Head of Engineering Leadership
Abuchi Ndinigwe Tech Lead Backend / Core Project Lead Leadership
Ezekiel Turaki Tech Lead Frontend & Mobile / Atlas Project Lead Leadership
Emmanuel Bodunde Senior Backend / Dashboard Project Lead Leadership
Olusegun Folorunsho Lead Quality Assurance Leadership
Adetola Onasanya Backend Engineer (Core Deputy) Senior
Cynthia Owolabi Backend Engineer (Fullstack) Senior
Rasheed Raji Backend Engineer (Dashboard) Senior Contract
Njoli Patrick Backend Engineer (Dashboard) Mid Contract
Boluwatife Ajileye Backend Engineer (Atlas - Laravel) Senior Contract
Oluwadare Samuel Backend Engineer (Atlas - Laravel) Mid
Kelvin Kamau Frontend Engineer (React) Senior
Wisdom Ossai Frontend Engineer (React) Senior
Samuel Airehrour Frontend Engineer (React) Senior
Oluwaseun Odeyemi Frontend Engineer (Fullstack) Senior
Raneh Egbe Frontend Engineer (React) Intern
Christian Esomnofu Mobile Engineer (Flutter) Senior
Mumin Abubakar QA Engineer Senior
Orinami Kure QA Engineer Senior
Tosan Gbiaye QA Engineer Senior
Ibrahim Olubiyi Database Admin & Data Engineer Senior
Johnmary Odenigbo DevOps Engineer Senior Contract
Mubarak Tijani Support Engineer Junior
David Ekete Technical Writer Mid Contract

External Collaborators (Non-Engineering)

Person Role Function
Akindehin Adedolapo vCISO Security & Compliance
Charles Ahubelem Compliance Officer Security & Compliance

Resource Allocation Model

📊 Dashboard BE (NestJS)

  • Allocated ByEmmanuel Bodunde
  • ScopeDashboard, Sendfirst, Mobile API
  • Engineers3

🔌 Atlas BE (Laravel)

  • Allocated ByEzekiel Turaki
  • ScopeAtlas application
  • Engineers2

🏦 Core BE (NestJS)

  • Allocated ByAbuchi Ndinigwe
  • ScopeCore, Admin
  • Engineers3

🎨 Frontend & Mobile

  • Allocated ByEzekiel Turaki
  • ScopeAll FE apps + Mobile
  • Engineers6 (5 React + 1 Mobile)

QA & Automation

  • Allocated ByOlusegun Folorunsho
  • ScopeAll projects
  • Engineers4

⚙️ DevOps / DBA

  • ModelRequest-based
  • ScopeShared service
  • Engineers2

Application to Team Mapping

Application Tech Stack Project Lead Backend Engineers Frontend Engineers
Dashboard React + NestJS Emmanuel Emmanuel, Rasheed, Njoli Shared (Ezekiel assigns)
Sendfirst React + NestJS Emmanuel Shared with Dashboard Shared (Ezekiel assigns)
Mobile Flutter Emmanuel Emmanuel, Rasheed, Njoli Christian
Atlas React + Laravel Ezekiel Boluwatife, Oluwadare Shared (Ezekiel assigns)
Checkout React Ezekiel Boluwatife, Oluwadare Shared (Ezekiel assigns)
Docs React Ezekiel No BE required David
Core NestJS (API only) Abuchi Abuchi, Adetola, Cynthia No FE required
Admin React + NestJS Shared Shared (All BE NestJs) Shared (Ezekiel assigns)
Mock Server NestJS Abuchi Shared from Core BE No FE required

Sprint Capacity Model

Each project team's sprint capacity is divided into named buckets to ensure all work types are covered without needing new headcount. Percentages are adjustable quarterly at Resource Allocation Planning.

Capacity Bucket % Per Sprint What Goes Here Owner
Planned Roadmap 60% Product roadmap features, epics Project Leads
Customer & Sales Requests 15% Customer modifications (via PM), Sales feature requests (via PM) PM triages → Project Leads execute
Tech Debt & Reliability 15% Refactoring, upgrades, monitoring, incident follow-ups Discipline Leads propose → Project Leads plan
Data & Metrics 10% Metabase dashboards, reports, data exports, analytics Ibrahim owns; pulls BE support as needed

In a 10-day sprint, this roughly means: 6 days roadmap · 1.5 days customer/sales · 1.5 days tech debt · 1 day data support

Per-Project Capacity Distribution

Each project applies the 60/15/15/10 split to their own team. Engineers stay on their assigned projects.

Project Team Roadmap (60%) Cust/Sales (15%) Tech Debt (15%) Data (10%)
Dashboard ~5 (3 BE + 2 FE*) 3 eng 0.75 0.75 0.5
Atlas ~4 (2 BE + 2 FE*) 2.4 eng 0.6 0.6 0.4
Core ~3 (BE) 1.8 eng 0.45 0.45 0.3
Dev Total ~12 ~7.2 ~1.8 ~1.8 ~1.2

*FE from shared pool — sprint allocation, not permanent assignment. Ezekiel assigns FE engineers each sprint based on project needs.

Excluded from Bucket Allocation

Group Size Allocation Model
Platform 3 Johnmary (DevOps), Mubarak (Support), David (Docs) — request-based
QA 4 Olusegun + 3 — work across all projects
Data 1 Ibrahim — 60% DBA / 40% Data projects
HoE 1 Adeolu — strategy, escalations (leads code with their teams)

No one changes teams. Sprint planning just becomes more intentional about which bucket each ticket falls into.

Priority Tiebreaker (Within Buckets)

When multiple items compete for the same capacity bucket:

  1. Revenue-critical features
  2. Compliance/security deadlines
  3. Production incidents
  4. Tech debt

Project Leads submit requests at sprint start; HoE approves reallocation between buckets.

Definition of Done

Work is only considered "Done" when it meets all applicable criteria below. This applies to all capacity buckets.

Code Completion Criteria

Criterion Requirement Enforced By
Code Review At least 1 approval from team member; 2 approvals for critical paths (payments, auth) GitHub PR rules
Tests Unit tests for new logic; integration tests for API changes; no test regressions CI pipeline
Documentation API changes require OpenAPI spec update; user-facing changes require release notes PR checklist
No Lint Errors Code passes ESLint/Prettier (FE) or equivalent (BE) CI pipeline

QA Sign-Off Criteria

Criterion Requirement
Functional Testing All acceptance criteria verified in staging environment
Regression Testing Core flows verified (login, payments, key transactions)
Edge Cases Error states, empty states, and boundary conditions tested
Cross-Browser/Device FE changes tested on Chrome, Safari, Mobile (as applicable)

Deployment Readiness

Criterion Requirement
Feature Flag High-risk changes behind feature flag for gradual rollout
Rollback Plan DB migrations must be reversible; deployment can be rolled back in <15 mins
Monitoring Key metrics/alerts configured for new features (Datadog/equivalent)

Incident & Escalation Handling

Production incidents operate outside the normal capacity buckets — they interrupt planned work immediately. This section defines response expectations and sprint impact handling.

Severity Levels & Response Times

Severity Definition Response SLA Resolution Target Who Responds
P1 — Critical Site down, money stuck, data loss, security breach 15 minutes 4 hours Project Lead + available engineers (all hands)
P2 — High Major feature broken, significant customer impact, degraded performance 1 hour 8 hours Project Lead + 1-2 engineers
P3 — Medium Feature partially broken, workaround exists, limited customer impact 4 hours Next sprint Assigned engineer (normal triage)
P4 — Low Minor bug, cosmetic issue, edge case Next business day Backlog Normal sprint planning

Sprint Impact Rules

Scenario Sprint Handling Approval
P1 Incident Drops everything. Engineers pulled immediately. Sprint velocity hit is accepted and excluded from metrics. Project Lead (notify HoE)
P2 Incident Pulled into current sprint. Displaces lowest-priority Planned Roadmap item (moved to next sprint). Project Lead
Escalated Customer Bug PM fast-tracks into Customer & Sales bucket. If urgent, displaces current sprint item with Project Lead approval. PM + Project Lead
Mid-Sprint Reallocation Any incident requiring >2 engineer-days mid-sprint requires HoE approval and sprint scope adjustment. HoE

Escalation Path

1. First Responder

Mubarak (Support) or on-call engineer triages and classifies severity

2. Project Lead

Owns resolution for their project's applications. Pulls engineers as needed.

3. Discipline Lead

Escalate if cross-cutting issue (infra, DB, security) — Abuchi (BE), Ezekiel (FE), Johnmary (DevOps)

4. Head of Engineering

Escalate if: P1 unresolved >2 hours, cross-project impact, or external communication needed

⚠️ Post-Incident Requirements

P1/P2 incidents require a written RCA (Root Cause Analysis) within 48 hours, reviewed at next Weekly Project Leads Sync.

Follow-up tickets for permanent fixes go into Tech Debt (15%) bucket for next sprint.

On-Call Rotation

First-responder rotation ensures 24/7 coverage for production incidents.

Rotation Structure

Layer Who Coverage Responsibilities
Primary On-Call Rotating BE engineer (1 per project) Business hours (9am-6pm WAT) First response, triage, escalate if needed
Support Engineer Mubarak Tijani Business hours Customer-reported issues, initial triage, route to on-call
Project Lead Emmanuel / Ezekiel / Abuchi Always reachable Escalation point, pull additional engineers
After-Hours Project Lead + Johnmary (DevOps) Evenings & weekends P1 incidents only; other issues wait until next business day

Weekly Rotation Schedule

Project On-Call Pool Rotation
Dashboard Emmanuel, Rasheed, Njoli Weekly rotation (Mon-Sun)
Atlas Ezekiel, Boluwatife, Oluwadare Weekly rotation (Mon-Sun)
Core Abuchi, Adetola, Cynthia Weekly rotation (Mon-Sun)
Infrastructure Johnmary, Ibrahim Bi-weekly rotation

📱 On-Call Expectations

Response time: Acknowledge alert within 15 minutes during on-call hours

Handoff: End-of-week handoff note in #dp-tech-team-private Slack channel

Compensation: On-call incidents outside business hours tracked for comp time

Work Intake & Request Routing

All external and internal work requests flow through defined intake channels to the appropriate capacity bucket. Engineering does not accept direct requests from Sales or CS — Product Manager always mediates.

Work Source Intake Channel Gatekeeper Routes To Capacity Bucket
Product Roadmap PM → JIRA Epics Product Manager Project backlog Planned Roadmap (60%)
Customer Modifications CS (any channel) → JIRA "Customer Request" queue PM reviews weekly Pod backlog / reject / SP team Customer & Sales (15%)
Sales Feature Requests Sales → Feature Request Form → PM PM scores & prioritizes Pod backlog / SP team / defer Customer & Sales (15%)
Data & Metrics Projects Requestor → JIRA "Data" type Ibrahim triages Self-serve or sprint-planned Data & Metrics (10%)
Bug / Incident Support → JIRA Bug Tech Lead (daily triage) Pod backlog (existing process) Planned Roadmap (60%)
Tech Debt Engineering → JIRA Tech Debt Discipline Leads Pod backlog Tech Debt (15%)
Strategic / Exploratory Business → SP Team HoE SP Team (separate track) Separate track

Data & Metrics Projects

Owner: Ibrahim Olubiyi (Database Admin & Data Engineer)

Ibrahim owns all Metabase dashboards, data exports, reporting queries, and analytics requests. His time is split 60% DBA / 40% Data/Metrics.

Intake Process

Step Action Owner SLA
1. Request Submit via JIRA ticket (type: Data) Any stakeholder
2. Triage Ibrahim reviews, estimates effort, classifies as Small (<2 days) or Large (>2 days) Ibrahim 1 business day
3a. Small Request Ibrahim self-serves: ad-hoc query, simple Metabase dashboard, data export Ibrahim 3 business days
3b. Large Request Ibrahim submits scoped request to relevant Project Lead for sprint planning. If BE changes needed (new endpoints, data pipelines), Project Lead allocates from 10% Data bucket. Ibrahim + Project Lead Next sprint

Escalation: If data requests exceed Ibrahim's 40% capacity, HoE reviews at Weekly Project Leads Sync and may temporarily pull a BE engineer.

Customer Modification Requests

All customer requests — regardless of whether they arrive via Intercom/Zendesk, Slack, or email — must be funneled into a single JIRA intake queue.

Process Flow

Step Action Owner Timing
1. Log CS logs every customer request into JIRA "Customer Requests" board/label, with customer name, request detail, and urgency Customer Support Within 24 hours of receipt
2. Review PM reviews queue weekly and categorizes each item Product Manager Weekly (every Monday)
3. Categorize PM classifies as: Bug → bug triage | Enhancement → pod backlog | New Feature → roadmap consideration | Customization → reject/defer/SP team Product Manager Same review session
4. Size PM presents accepted items at Weekly Project Leads Sync for engineering sizing PM + Project Leads Weekly sync
5. Plan Sized items enter project backlog under the Customer & Sales (15%) capacity bucket Project Leads Next sprint planning

Escalation: High-value customer requests (flagged by CS or Sales) go directly to HoE + PM for expedited triage — outside the weekly cycle.

Sales Feature Requests

Sales does NOT go directly to engineering. Product Manager is the single gatekeeper for all Sales-originated feature requests.

Process Flow

Step Action Owner Timing
1. Submit Sales submits via Feature Request Form (JIRA intake or Google Form) with: Customer name, Revenue impact, Competitive context, Requested timeline Sales Team Anytime
2. Score PM evaluates using lightweight RICE: Revenue Impact × Customer Count × Strategic Alignment Product Manager Within 5 business days
3. Decide PM routes to: Accepted → pod backlog (Customer & Sales 15% bucket) | SP Team → if exploratory/POC needed | Deferred → future quarter | Rejected → with rationale Product Manager Same scoring session
4. Communicate PM updates Sales with status and estimated timeline. Monthly: PM presents top requests at Engineering Leads Sync Product Manager Within 5 business days
5. Execute Accepted items enter sprint via Project Leads under the Customer & Sales (15%) capacity bucket Project Leads Next available sprint

Feedback loop: Sales receives one of four statuses — Accepted (estimated quarter), In Progress (current sprint), Deferred (reason + revisit date), or Rejected (rationale + alternative).

Product Backlog Management

Governance rules for maintaining healthy, actionable backlogs across all projects.

Backlog Health Rules

Rule Policy Enforced By
WIP Limit Max 2 sprints of "Ready" items per project at any time. Prevents over-refinement. Project Leads
90-Day Flag Items untouched for 90 days are auto-flagged for review. PM or Project Lead must re-justify or archive. PM + Project Leads
180-Day Archive Items untouched for 180 days are archived unless explicitly re-justified with updated business case. HoE + PM
Refinement Cadence Weekly 60 min refinement session per project. Backlog items must have acceptance criteria before entering "Ready". Project Leads

Prioritization Framework (RICE)

All feature requests are scored using a lightweight RICE model:

Factor Definition Scale
Reach How many customers/users are affected per quarter? 1 (few) — 10 (all)
Impact How much does this move revenue, retention, or compliance? 0.25 (minimal) — 3 (massive)
Confidence How confident are we in the estimates? 50% / 80% / 100%
Effort Person-sprints to deliver (1 sprint = 1 engineer × 2 weeks) 0.5 — 10+

RICE Score = (Reach × Impact × Confidence) / Effort
Higher score = higher priority. Bugs continue to use the existing severity/priority matrix.

Quarterly Backlog Review

Added to the existing Quarterly Resource Allocation Planning ceremony (HoE + All Leads, 2 hours). Review includes:

Release & Deployment Cadence

Standardized deployment rhythm ensures predictable releases and reduces risk.

Deployment Schedule

Environment Cadence Window Approval
Development On merge to dev branch Anytime Automatic (CI/CD)
Staging Daily (end of day) 4pm-6pm WAT Automatic (CI/CD)
Production Twice weekly Tuesday & Thursday, 10am-12pm WAT Project Lead + QA sign-off
Hotfix As needed (P1/P2) Anytime Project Lead + HoE for after-hours

Release Freeze Periods

Period Duration What's Allowed
Month-End Last 2 business days of month Critical hotfixes only (finance reconciliation period)
Major Holidays Dec 20 - Jan 3, Eid periods Emergency hotfixes only; no feature releases
Major Customer Go-Live 48 hours before/after Freeze on affected applications only

Rollback Procedure

  1. Detect issue (monitoring alert or user report)
  2. Project Lead decides: fix forward or rollback (15 min decision window)
  3. Johnmary (DevOps) executes rollback via CI/CD (target: <10 min)
  4. Post-rollback: RCA ticket created, fix scheduled for next deployment window

Multi-Environment Coordination

How code progresses through environments, especially for cross-project features requiring coordinated releases.

Environment Progression

Environment Purpose Deploy Trigger Retention
Dev Individual feature branches, local integration Auto on push to feature branch Until branch deleted
Staging Integration testing, API contract validation Auto on merge to main Continuous (latest main)
Beta Pre-production QA, stakeholder review Manual promotion from Staging 48-72 hours max
Production Live customer traffic Tuesday/Thursday deploy windows Permanent

Single-Project Flow

Dev → Staging (auto) → Beta (QA sign-off) → Production (deploy window)

Standard path. QA verifies in Beta, Project Lead approves for production.

Cross-Project Dependency Flow

When a feature requires work from multiple projects (e.g., Dashboard needs Core API changes):

Sprint Day Upstream (Core) Downstream (Dashboard) Environment
Day 1-3 Build API changes Work on non-blocked items Dev
Day 4 Merge to main Core → Staging
Day 5-7 Stabilize, fix issues Integrate against Core Staging Dashboard Dev → Staging
Day 8 Promote to Beta Promote to Beta Both → Beta
Day 9 Joint QA sign-off Joint QA sign-off Beta
Day 10 Deploy together Deploy together Production

Cross-Project Environment Rules

Rule Policy Enforced By
Upstream-First Upstream project must be in Staging ≥24 hours before downstream integrates Project Leads
Coordinated Beta Cross-project features promoted to Beta together on same day Both Project Leads
Joint Deploy Window Dependent projects deploy in same Tuesday/Thursday window; upstream deploys first Johnmary (DevOps)
Rollback Scope If either project fails QA in Beta, both are held until fixed Project Leads + QA

Environment SLAs

Transition Maximum Time Escalation
Staging → Beta 48 hours after QA-ready Project Lead escalates to HoE
Beta → Production Next available deploy window (72 hours max) Project Lead escalates to HoE
Beta Retention 72 hours max before auto-clear Johnmary clears stale Beta deploys

🔀 Beta Environment Governance

Access: All engineers + QA + PM + select stakeholders

Data: Anonymized production snapshot, refreshed weekly

Owner: Johnmary (DevOps) manages infrastructure; Project Leads own their features

Conflict resolution: If multiple projects need Beta simultaneously, coordinate at Weekly Sync; HoE arbitrates if needed

Engineering Metrics

Key metrics tracked to measure engineering health and delivery effectiveness. Reviewed monthly at Engineering Leads Sync.

Delivery Metrics

Metric Definition Target Measured By
Sprint Velocity Story points completed per sprint (per project) Consistent ±15% variance JIRA
Sprint Commitment % of sprint scope completed vs. planned >80% JIRA
Cycle Time Days from "In Progress" to "Done" <5 days for standard tickets JIRA
Lead Time Days from ticket creation to production <10 days for roadmap items JIRA

Quality Metrics

Metric Definition Target Measured By
Escaped Defects Bugs found in production per sprint <3 P2+ bugs per sprint JIRA
Code Coverage % of code covered by automated tests >70% (new code) CI/CD
PR Review Time Hours from PR opened to first review <4 hours (business hours) GitHub

Operational Metrics

Metric Definition Target Measured By
MTTR Mean Time To Recovery (P1/P2 incidents) <4 hours (P1), <8 hours (P2) Incident log
Uptime System availability (Core, Dashboard, Atlas) >99.5% Monitoring (Datadog)
Deployment Frequency Production deploys per week 2+ per project CI/CD
Change Failure Rate % of deployments causing incidents <5% Incident log + CI/CD

📊 Reporting Cadence

Weekly: Velocity + escaped defects reviewed at Project Leads Sync

Monthly: Full metrics dashboard reviewed at Engineering Leads Sync

Quarterly: Trends analysis at Resource Allocation Planning

Governance Cadence

Quarterly — Resource Allocation Planning

HoE + All Leads | 2 hours | Set baseline allocation

Sprint Start — Pool Request Review

HoE (async) | Approve pool assignments

Sprint Start — FE Allocation

Ezekiel + Project Leads | 30 mins | Assign FE engineers to apps

Weekly — Project Leads Sync

Emmanuel, Ezekiel, Abuchi | 30 mins | Cross-project dependencies

Weekly — Discipline Syncs

Each discipline | 1 hour | Standards, knowledge sharing

Monthly — Engineering Leads Sync

HoE + All Leads | 1 hour | Strategy, process improvements

Weekly — PM Customer & Sales Request Review

Product Manager | 1 hour | Triage customer queue + score Sales requests

Quarterly — Backlog Health Review

HoE + All Leads + PM | Part of Resource Allocation Planning | Archive stale items, re-score RICE, adjust capacity buckets