Skip to content

Sprint Review — WK14

Cycle 2026-03-30 → 04-05 · Recorded in Plane as BANA-739. The Executive Summary is sourced from git; the metrics below mirror the Plane review.

67/100 — Needs Attention
76%Completion (51/67)
14Carry-over (20.9%)
3%Cancelled (2)
67Committed

Executive Summary

~225commits
12contributors
~32commits/day

Leadership takeaway

This week (30/03 – 05/04) the team shipped two big foundations — a restaurant floor / table / seating editor for dine-in POS and a complete fare & pricing configuration system — alongside self-service account recovery (forgot-password / email verification) and the Overture marketing site wired to the Outreach lead-capture API.

  • Restaurant Floor & Seating — A visual floor-plan editor: drafting floor and table management, drag/snap canvas with zoom controls, seat and table placement, batch zone creation, and an aggregate layout/zone endpoint backing it.
  • Fare & Pricing System — End-to-end fare configuration: fare-set CRUD with filters and pagination, a default-price wizard, status-change guards, inline rule upserts, plus a REST API for cost / fare / tax pricing configuration.
  • Account Recovery & Email — Forgot-password and email-verification flows across backend interfaces and client screens, a reusable mail component, and dual-language HTML email templates.
  • Overture + Outreach — The marketing site gained error/404 pages, a phone input, CTA wiring, and full lead-capture forms integrated with the Outreach API over WebSocket, plus a subscriber list and statistics service.
  • POS Billing — Sale-order split shipped, plus cart customer/item state hooks for the POS client.
  • Sale Renderer Redesign — New dashboard widgets and pie chart, refreshed sign-in, settings and invoice screens, sidebar and header user menu.
  • Platform Hygiene — A unified deletion-policy service wired into merchant / product / sale-channel / sale-order controllers, explicit IIAPI client naming (no implicit default), and crash-recovery for pending jobs at server startup.

Health Score: 67/100 — Needs Attention

DimensionScoreWeightContribution
Completion89.6/10030%26.9
Predictability82.2/10025%20.6
Workload Balance9.5/10020%1.9
Flow (no carry-over)58.2/10015%8.7
Quality (no cancel)91.0/10010%9.1

Improved from WK13's 48 (Intervention Required). Still dragged by workload imbalance (9.5) and carry-over (58.2).

Methodology note

30 of 67 items were added mid-sprint (Mar 30+), of which 28 were completed — many appear to be retroactive tracking of already-done work. The headline 76.1% completion is inflated. Pre-sprint baseline: 37 items committed, 23 completed = 62.2% — below the WK13 review's recommendation to "stop mid-sprint bulk additions."

Key Accomplishments

  • S3 folder-level organization — full stack (Hai Cao) — NXET-689/690/691/692: IGNIS StaticAsset prefix support + BE/FE for single-bucket production
  • Overture forms + Outreach API integration (Tai Nguyen) — NXET-695/696/697/698/699/700/715: All 5 inquiry forms + newsletter wired to Outreach API
  • SaleOrder split/merge with SaleCheck (Hai Cao) — NXET-590: Core POS billing split/merge
  • Loyalty module (Hai Cao) — NXET-508: Module completed end-to-end
  • Pricing REST API (Hai Cao) — NXET-693: Cost, fare, tax configuration endpoints
  • POS design completed (Thuong Nguyen) — NXET-562: WebPOS + HandheldPOS layouts. NXET-648: Floor/table setup designed
  • Ledger generation pipeline (Phat Chung) — NXET-685/712/735/736: E2E flow, report 1a, crash recovery, BOM schema
  • Commerce bug fixes (Phuc Duong, Khoa, Hai) — NXET-641/642/666/669/671/673/674: Archived product immutability, variant PATCH, product list filtering, category/variant deletion guards
  • Coffee Shop launch + VNPAY staging (Kien, Khoa, Phat) — NXET-645/646: Internal test environment operational
  • Outreach service onboarding (Huy Pham) — NXET-713/714: New member ramped up, 2/2 items delivered
  • Merchant deletion + fare system (Phuc Duong, Duc Bach) — NXET-728/725/732
  • Invoice onboarding (Viet Vo) — NXET-726/731/733: Schemas, APIs, error handling for invoice service

Urgent Attention

ItemIDAssignee(s)StateAge (wks)Issue
Refactor invoices + VNPAY APINXET-419viet.voIn Progress12ZOMBIE — 3rd consecutive sprint flagged. Must split or cancel.
Implement Invoice PageNXET-449tai.nguyenUpcoming11ZOMBIE — blocked by NXET-419, never started
Integrate invoice for saleNXET-516viet.vo, tai.nguyenUpcoming5ZOMBIE — blocked by NXET-419
QA: verify product/inventory/taxNXET-532Khoa, HaiUpcoming5ZOMBIE — flagged since WK10 review (NXET-556). Never started across 4 sprints.
VNPAY SMS verificationNXET-561phuc.duongIn Progress4ZOMBIE — in progress 4 weeks
5 commerce validation bugsNXET-675/676/677/678/672Khoa, phat.nguyenUpcoming1Assigned to [OVERLOADED] [LOW COMPLETION] members
Legal/tax validationNXET-702viet.voUpcoming1Assigned to [LOW COMPLETION] member

Delivery

MetricWK14WK13WK12WK114-Cycle AvgTargetStatus
Committed6773322649.5
Completed5144302337.0
Completion %76.1%60.3%93.8%88.5%79.7%85%⚠️
Cancelled2 (3.0%)2 (2.7%)2 (6.3%)3 (11.5%)2.3 (5.9%)<7%
Carried over14 (20.9%)27 (37.0%)0 (0%)0 (0%)10.3 (14.5%)<10%⚠️
Throughput/member4.64.03.752.93.82.0

Misses:

  • Completion at 76.1% — target was 85%. Improved from WK13's 60.3% but still below target. Pre-sprint baseline is only 62.2% (23/37). Mid-sprint additions (30 items, 93% done) inflate the headline number.
  • Carry-over at 20.9% — target was <10%. Improved from WK13's 37.0%. All 14 carry-over items come from the pre-sprint baseline (12/37 = 32.4% carry-over rate on original commitment).

Mid-sprint addition breakdown:

PeriodItems AddedCompletedCarryDone%
Pre-sprint (before Mar 30)37231262.2%
Added Mar 30-311513286.7%
Added Apr 1-515150100%
Total67511476.1%

Pattern: 15 items added Apr 1-5 (all completed on creation day) are retroactive work tracking, not sprint-planned work. Same pattern flagged in WK13 review.

Team Breakdown

Note: items with multiple assignees are counted for each member.

MemberCommittedDoneCancelledCarryDone%LoadFlag
Khoa Nguyen21131762%21/5[OVERLOADED] [LOW COMPLETION]
tai.nguyen17140382%17/5[OVERLOADED]
Hai Cao14120286%14/5[OVERLOADED]
phat.nguyen1471650%14/5[OVERLOADED] [LOW COMPLETION]
phuc.duong870188%8/5[OVERLOADED]
viet.vo630350%6/5[OVERLOADED] [LOW COMPLETION]
phat.chung541080%5/5
duc.bach430175%4/5
kien.truong4400100%4/5
thuong.nguyen3300100%3/5
huy.pham2200100%2/5

Context:

  • phat.nguyen's 50% reflects PM/PO coordination load (coffee shop launch, VNPAY staging, bug triage) — not underperformance. 14 items includes co-assignment on 5 commerce bugs he triaged but are engineering-owned.
  • Khoa's 21 items includes heavy co-assignment. Many carry-over items are bugs he's listed on as reviewer, not primary owner.
  • viet.vo's 50% is driven by NXET-419 (12-week zombie invoice refactor) blocking 2 other items.

Carry-Over Analysis

ItemIDAssignee(s)Age (wks)Recommendation
Refactor invoices + VNPAY APINXET-419viet.vo12MUST split or cancel — 3rd sprint flagged. No exceptions.
Implement Invoice PageNXET-449tai.nguyen11MUST split or cancel — blocked by NXET-419
Integrate invoice for saleNXET-516viet.vo, tai.nguyen5MUST split — blocked by NXET-419
QA: product/inventory/taxNXET-532Khoa, Hai5MUST split — flagged since WK10. 4 sprints unstarted.
VNPAY SMS verificationNXET-561phuc.duong4MUST split — in progress 4 weeks
Client-side max lengthNXET-638Khoa, Hai2Review with assignee
Overture pricing pageNXET-649phat.nguyen, tai.nguyen2ON_HOLD — confirm hold reason
Prevent product self-parentNXET-672Khoa, phat.nguyen1Transfer to WK15
Validate fare non-negativeNXET-675Khoa, phat.nguyen1Transfer to WK15
Enforce ARCHIVED terminalNXET-676Khoa, phat.nguyen1Transfer to WK15
Require activation before archiveNXET-677Khoa, phat.nguyen1Transfer to WK15
Persist SKU updateNXET-678Khoa, phat.nguyen1Transfer to WK15
Legal/tax validationNXET-702viet.vo1Transfer to WK15
Refactor products flowNXET-711duc.bach1Transfer to WK15

Repeat offenders: NXET-419 (12w) and NXET-532 (5w, originally flagged in WK10 review NXET-556) have been carried across 3-4 sprints with no resolution despite being flagged in every review.

By Label

LabelItemsDoneDone%Carry
Task484083%7
Bug181056%7
unlabeled11100%0

Bug completion at 56% — improved from WK13's 29% but significantly below task completion (83%).

Blockers & Risks

RiskImpactMitigationOwner
NXET-419 (invoice refactor) at 12 weeks — blocks NXET-449/516. Flagged in WK12 and WK13 reviews with no action taken.HighMandatory split before WK15 planning. Break into max-2-week deliverables.viet.vo, phat.nguyen
NXET-532 (QA verification) never started since WK10 — coffee shop launch at risk without QA sign-offHighSplit into per-domain QA tasks with clear owners, start in WK15 day 1uyen.nguyen, Khoa
6 of 11 members [OVERLOADED] — persistent across WK11/12/13/14. Cap-at-5 recommendation never enforced.HighEnforce 5-item cap in WK15. Redistribute to kien (4/5), thuong (3/5), huy.pham (2/5)phat.nguyen
Mid-sprint bulk additions mask true completion rate (62% pre-sprint vs 76% headline)MedTrack items at sprint start. Do not add retroactive items to current cycle.PM process
5 commerce validation bugs unstarted — data integrity risk for coffee shopMedAssign single primary owner (not co-assigned). phuc.duong or huy.pham.phat.nguyen

4-Cycle Trend

Data sourced from official sprint review work items (NXET-585, 619, 688).

MetricWK11WK12WK13WK14Direction
Items completed23304451
Completion %88.5%93.8%60.3%76.1%
Committed26327367▼ (overcommit)
Carry-overs002714
Health Score82764867

6-cycle view (from WK09 review onward):

CycleHealthCommittedCompletedCRCarry
WK0979161593.8%0
WK1056362466.7%12
WK1182262388.5%0
WK1276323093.8%0
WK1348734460.3%27
WK1467675176.1%14

Pattern: Clear oscillation between overcommit crashes (WK10: 36→56, WK13: 73→48) and recovery sprints (WK11: 26→82, WK12: 32→76). WK14 is a partial recovery (67→67) but still overcommitted. Throughput is trending up (15→51) but sprint sizing grows faster.

Forecast (Monte Carlo)

Based on last 4 cycles of throughput (23, 30, 44, 51 items/cycle, avg 37.0):

ScopeRemaining50% confidence85% confidence
WK14 carry-over (total)14WK15 (Apr 12)WK16 (Apr 19)
Invoice track (419/449/516)3 (needs splitting)WK16 (Apr 19)WK17 (Apr 26)
Commerce validation bugs5WK15 (Apr 12)WK15 (Apr 12)
QA verification (532)1 (needs splitting)WK15 (Apr 12)WK16 (Apr 19)

Action Triggers

ConditionFired?Recommended Action
Completion < 75% for 2 consecutive cyclesNo — WK13 (60.3%) below, WK14 (76.1%) above. Pre-sprint baseline is 62.2%.Monitor. If WK15 pre-sprint CR < 75%, trigger fires.
Completion > 95% for 2 consecutive cyclesNo
Any member > 5 itemsYES — Khoa (21), tai (17), Hai (14), phat.nguyen (14), phuc (8), viet (6)Redistribute before WK15. Enforce 5-item cap. Recommended since WK10 — never enforced.
Any member < 70% done for 2 cyclesYES — Khoa (WK13: 50%, WK14: 62%), phat.nguyen (WK13: 28%, WK14: 50%), viet.vo (WK13: 33%, WK14: 50%)Khoa: reduce co-assignment. viet.vo: split NXET-419. phat.nguyen: cap dev items at 3 for PM role.
Carry-over item age > 2 weeksYES — NXET-419 (12w), 449 (11w), 516 (5w), 532 (5w), 561 (4w)MUST split or cancel. NXET-419 and 532 flagged since WK10/WK12.
Cancellation > 15%No (3.0%)
Workload max/min ratio > 3xYES — 10.5x (21:2)Rebalance. Assign 1 primary owner per item.
Health Score < 60No (67) — recovered from WK13's 48

WK13 Review Recommendations — Follow-Up

WK13 RecommendationFollowed in WK14?Evidence
Cap WK14 at ~40 itemsNo — 67 items committedSprint overloaded again
Stop mid-sprint bulk additionsNo — 30 items added mid-sprint (15 on Apr 1-5)Same inflation pattern
Split 5 zombie itemsPartially — NXET-512 removed, but 419/449/516/532 persist4 of 5 zombies still alive
Assign clear primary ownersNo — heavy co-assignment continuesKhoa: 21 items, many co-assigned
Hold retrospectiveUnknown — no evidence in PlaneNot documented

Recommendations for WK15

  • Cap WK15 at 40 items max — 67/73 items in last 2 sprints has been unsustainable. Pre-sprint CR has been 62% and below.
  • Split the 5 zombie items NOW — NXET-419 (12w), 449 (11w), 516 (5w), 532 (5w), 561 (4w). This is the 3rd sprint flagging 419/449 and 4th sprint flagging 532.
  • Enforce 5-item cap per member — recommended since WK10 review, never enforced. 6/11 members overloaded.
  • Stop adding retroactive items to current cycle — creates false completion metrics. Track work-in-progress through next cycle instead.
  • Assign 1 primary owner per item — co-assignment inflates counts and obscures accountability.
  • Explicit PM capacity — phat.nguyen at 50% reflects PM load, not underperformance. Cap at 3 dev items.

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.