Skip to content

Sprint Review — WK13

Cycle 2026-03-23 → 03-29 · Recorded in Plane as BANA-688. The Executive Summary is sourced from git; the metrics below mirror the Plane review.

48/100 — Intervention
60%Completion (44/73)
27Carry-over (37%)
3%Cancelled (2)
73Committed (~2.3× avg)

Executive Summary

245commits
11contributors
35commits/day

Leadership takeaway

This week (23/03 – 29/03) the team stood up the full staging environment on VNPAY Cloud K8s with the search & CDC pipeline deployed end-to-end, while landing a wave of POS, sale-renderer and table-allocation delivery plus the public landing & legal pages.

  • Staging on K8s — Full PMBH staging environment provisioned on VNPAY Cloud Kubernetes, with network policies, egress for the internal load balancer, and a migrate image to bootstrap the database.
  • Search & CDC pipeline — Debezium CDC stack and Kafka topic-init job deployed, Typesense tuned for multilingual / embedding search, and the commerce search-and-CDC component enabled.
  • Resilient messaging — Background retry loop and reconnect handling for Kafka consumers across finance, inventory, pricing and ledger, hardening against all-broker disconnects.
  • Table allocation & sale — AllocationUsage for table management, socket events on order/order-item mutation, and customer loyalty points earned after a paid sale order.
  • POS hardware & printing — TCP printer connect, cash-drawer open, codepage select, bill-template save and order-item printing on the device.
  • Fare system & sale-renderer — Fare group management UI with a three-column panel and inline rules editor, plus sale-renderer socket wiring and cash-numpad fixes.
  • Public site & loyalty — Bilingual privacy and terms-of-service pages, the customer Sale-Customer show screen, and the design-system library scaffold.

Health Score: 48/100 — Intervention Required

DimensionScoreWeightContribution
Completion70.9/10030%21.3
Predictability50.5/10025%12.6
Workload Balance5.6/10020%1.1
Flow (no carry-over)26.0/10015%3.9
Quality (no cancel)91.8/10010%9.2

Key Accomplishments

  • Full staging environment on VNPAY Cloud K8s (phat.nguyen) — investigated K8s architecture (NXET-596) and completed the entire PMBH staging preparation (NXET-644). Also co-delivered pos365 support, phone number fix, merchant dates fix. Identified and triaged 12 BE/commerce bugs (NXET-666–678) for systematic hardening.
  • Search & CDC pipeline fully deployed (phuc.duong) — learned K8s fundamentals, documented staging architecture, deployed Debezium CDC stack, built and deployed search service + semantic search. 6/6 items completed, 100% delivery.
  • Khoa Nguyen's FE blitz — sale-renderer overhaul (fontScale, route refactor, dashboard refactor, WebSocket for Sale), plus FE client delivery (payment settings, bo boilerplate, Customer Paid fix, sales order sync), bug fixes (PRD-001 slug, PRD-003 Vietnamese đ, PRD-004 error code). 16 items done.
  • Allocation/floor plan backend complete (Hai Cao) — AllocationLayout restructured, AllocationUsage entity + migration + service, SaleOrderEventActions. Also delivered pricing bug fix, dev infra migration, and co-delivered K8s investigation. 14 items done.
  • Landing page shipped (tai.nguyen) — created PMBH landing page, implemented full UI from mockups. Also delivered customer loyalty features (detail screen, points column, transaction history), form refactors. 10 items done.
  • Ledger service finalized and handed over (phat.chung, viet.vo) — pos365 ledger refactored and delivered to VNPAY tester team. phat.chung also rewrote ledger schemas.
  • POS hardware & distribution (kien.truong) — Google Play distribution, coffee shop POS setup, cash drawer integration. 4/4 items.

Urgent Attention

ItemIDAssignee(s)StateAge (wks)Issue
Refactor invoices + VNPAY APINXET-419viet.voIn Progress11ZOMBIE — must split or cancel
Implement Invoice PageNXET-449tai.nguyenIn Progress10ZOMBIE — must split or cancel
CRUD PromotionNXET-512tai.nguyenIn Progress4ZOMBIE — must split or cancel
Integrate invoice for saleNXET-516tai.nguyen, viet.voIn Progress4ZOMBIE — must split or cancel
Verify product/inventory/taxNXET-532Hai Cao, Khoa NguyenUpcoming4ZOMBIE — must split or cancel
Design POS layoutsNXET-562thuong.nguyenIn Progress2.5Review with assignee, split if >50% remaining

Delivery

MetricWK13WK12WK11WK104-Cycle AvgTarget
Committed7332272940.3
Completed4430242430.5
Completion %60.3%93.8%88.9%82.8%81.4%85%
Cancelled2 (2.7%)2 (6.3%)3 (11.1%)5 (17.2%)3.0 (9.3%)<7%
Carried over27 (37.0%)0006.75<10%
Throughput/member4.03.753.03.03.42.0

Misses:

  • Completion at 60.3% — target was 85%. Sprint overloaded at 73 items (2.3x the 4-cycle avg of 40). 12 BE/commerce items bulk-added on 2026-03-26 (3 days before sprint end) inflated committed count.
  • Carry-over at 37.0% — target was <10%. Driven by late additions + 5 zombie items (age >= 3 weeks) that should have been split earlier.

Team Breakdown

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

MemberCommittedDoneCancelCarryDone%Flag
Khoa Nguyen321611550%[LOW COMPLETION]
Hai Cao22141764%[LOW COMPLETION]
phat.nguyen18511228%[LOW COMPLETION]
tai.nguyen18101756%[LOW COMPLETION]
phuc.duong7700100%
kien.truong4400100%
phat.chung4400100%
thuong.nguyen310233%[LOW COMPLETION]
viet.vo310233%[LOW COMPLETION]
duc.bach210150%[LOW COMPLETION]
toan.tran1100100%
uyen.nguyen1100100%

Context: Top 4 members are heavily co-assigned, inflating committed counts. phat.nguyen's contribution is underrepresented by item count — the K8s staging setup (NXET-644) and architecture investigation (NXET-596) were high-effort items, plus he identified and triaged 12 commerce bugs forming the WK14 pipeline.

Carry-Over Analysis

ItemIDAssignee(s)Age (wks)Recommendation
Refactor invoices + VNPAY APINXET-419viet.vo11MUST split or cancel
Implement Invoice PageNXET-449tai.nguyen10MUST split or cancel — blocked by NXET-419
CRUD PromotionNXET-512tai.nguyen4MUST split
Integrate invoice for saleNXET-516tai.nguyen, viet.vo4MUST split — blocked by NXET-419
Verify product/inventory/taxNXET-532Hai Cao, Khoa Nguyen4MUST split — never started
Design POS layoutsNXET-562thuong.nguyen2.5Review with assignee, split if >50% remaining
Config fare systemNXET-615duc.bach1Transfer to WK14
Fix translationsNXET-626tai.nguyen<1Transfer
Sub-category tags + scrollingNXET-634tai.nguyen<1Transfer
Build pricing pageNXET-649phat.nguyen, tai.nguyen<1Transfer
Update mockup imagesNXET-664tai.nguyen, thuong.nguyen<1Transfer
3x BUG-PRD (002,005,006)NXET-638,641,642Hai Cao, Khoa Nguyen<1Transfer
AllocationUsage FE (2 items)NXET-660,661Hai Cao<1Transfer
12x BE/commerce fixesNXET-666–678phat.nguyen, Khoa Nguyen<1Transfer — bulk-added late sprint

By Module

ModuleItemsDoneDone%Carry
nx-apps301963%10
nx-packages301550%15
nx-operation44100%0
pos36533100%0
nx-design2150%1
nx-qc200%1

By Label

LabelItemsDoneCarry
Task40308
Bug24717
Report110

Blockers & Risks

RiskImpactMitigationOwner
Invoice refactor (NXET-419) 11 weeks, blocks NXET-449 and NXET-516HighSplit into smaller deliverables; reassign if viet.vo unavailablephat.nguyen
12 BE/commerce items added 03-26 inflated sprint committed countMediumAdd to next cycle directly instead of current sprintphat.nguyen
Bug completion: 7/24 (29%) — most bugs co-assigned but not yet startedMediumPrioritize bug batch in WK14, assign clear ownership per bugTeam
thuong.nguyen POS design (NXET-562) at 2.5 weeks with no clear progressMediumReview scope, split WebPOS and HandheldPOS into separate itemsthuong.nguyen

4-Cycle Trend

MetricWK10WK11WK12WK13Direction
Items completed24243044
Completion %82.8%88.9%93.8%60.3%
Carry-overs00027
Cancellations5322
Health Score75.576.775.748.1

The team delivered a record 44 items (vs avg 26) — actual throughput is increasing. But the sprint was loaded with 73 items, making the completion rate appear poor. Cancellation trend is improving (17% → 3%).

Forecast (Monte Carlo)

ScopeRemaining50% confidence85% confidence
WK13 carry-over27WK14 (2026-04-05)WK15 (2026-04-12)
Invoice track (419/449/516)3 (needs splitting)WK15 (2026-04-12)WK16 (2026-04-19)
BE/commerce bug batch12WK14 (2026-04-05)WK14 (2026-04-05)

Action Triggers Fired

ConditionTriggerRecommended Action
6 carry-over items age > 2 weeksZombieNXET-419, 449, 512, 516, 532 MUST be split or cancelled. NXET-562 review.
Workload max/min ratio = 18:1ImbalanceRebalance — avoid bulk co-assignment, assign clear primary owner per item
Health Score 48 < 60System issueDedicated retrospective required

Recommendations

  1. Cap WK14 at ~40 items — 73 was a 2.3x overcommit. Team's proven throughput is ~30-44 items/cycle.
  2. Stop mid-sprint bulk additions — the 12 BE/commerce items added on 03-26 should go to the next cycle.
  3. Split the 5 zombie items immediately — NXET-419 (11wk), NXET-449 (10wk), NXET-512 (4wk), NXET-516 (4wk), NXET-532 (4wk).
  4. Assign clear primary owners — co-assignment inflates workload metrics and obscures accountability. Use 1 primary + reviewers.
  5. Hold a brief retrospective — health dropped from ~76 to 48. Main driver is sprint sizing, not team performance (throughput is actually up).

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