Sprint Review - WK24
Cycle 2026-06-08 → 06-14 · Recorded in Plane as BANA-1413. Scored with the delivery-first scorecard (throughput & flow, not commitment-accuracy). Board reconciled against code first (3 mislabeled → Done; 1 untracked docs deliverable captured as BANA-1412).
Executive Summary
Work shipped this cycle, by business theme (sourced from git):
- Documentation & Developer Platform - the whole docs/wiki + agent-docs restructured to a single-source registry: per-module concise/visual rewrite, EN+VI, framework attribution fixes (1,553 files, ~80k line churn, net consolidation). Captured as BANA-1412.
- Back Office (BO) portal - merchant table + multi-merchant switcher, sale-channel UI, finance category/voucher UI, Ledger page, role screen, User-BO/Merchant split, Typesense view-controller V2, sales-assisted onboarding wizard (E12 + E2).
- Permissions - migrated to the scoped Casbin adapter + seeded the permission lattice (E11).
- Atomic onboarding -
POST /organizers/aggregatecreates org + merchant + defaults in one transaction (E12). - Sale BE - new pricing context, entitlement management, batch-add-items endpoint, x-merchant-id rollout (E9/E10).
- POS (sale-renderer) - variant catalog, bundler badges, addon/FBT, customer search, checkout refactor, floor/space layout (E9).
- Search/Platform - Kafka topic registry + Debezium heartbeat, secured CDC REST API, variant-option denormalization.
- Tax/Finance - S2A layout + PIT tax column; finance provider field + issue-return voucher (E1/E7).
Delivery Scorecard
Multi-dimensional by design (SPACE) - not collapsed to one number. Each dimension measures delivery/flow, not how well the sprint size was guessed.
| Dimension | Score | Trend | Basis |
|---|---|---|---|
| Throughput | 100 | ▲ | 92 done vs ~48 four-cycle median (capped) |
| Flow & Aging | 58 | ▲ | 33 of 78 carried items (42%) aged > 2 weeks |
| Predictability | 65 | ▼ | throughput CoV 0.35 over 6 cycles |
| Quality | 78 | ▼ | 1 cancelled; 38 bug items, 4 done |
| Sustainability | 76 | ▼ | top-2 done share ~52% |
| Delivery Health (roll-up) | 77 - Good | ▲ | up from 73 (WK23) |
Planning signals - reported separately, not in Health:
- Commitment ratio ~5.0× - 171 committed vs a sustainable ~34 (17 × 2). A planning signal for sizing, not a performance score.
- Completion 53.8% (92/171) - held down by the oversized denominator.
Value Delivered (EBM)
| Key Value Area | What landed this cycle |
|---|---|
| Current Value (usable now) | BO portal for onboarding+config; scoped authz live; POS variant/bundler/checkout; S2A PIT tax; finance vouchers |
| Time-to-Market (speed to ship/learn) | Atomic onboarding (one call), batch-add-items, x-merchant-id rollout, Typesense view-controller V2 - all speed merchant go-live |
| Ability-to-Innovate (future speed) | Kafka topic registry + Debezium heartbeat, secured CDC, scoped Casbin adapter, reusable Number/Quantity/Price inputs, and the single-source documentation/registry rebuild (BANA-1412) - all cut future delivery cost |
| Unrealized Value (opportunity ahead) | KDS/self-order (E8, 0%), Excel import (E12 Jul), pricing conditions (E10), BO dashboards (Aug) |
Effort & Contribution
Context, not a leaderboard. Commits/LOC are misleading proxies - debugging, refactor, review, deletion and mentoring are high-value and low-commit. Activity is shown next to outcomes; non-coding and invisible work is named.
| Member | Commits | Areas touched | Done (board) | What they built |
|---|---|---|---|---|
| Hai Cao | 67 | commerce · sale · identity | 8* | Pricing context, entitlements, batch-add, atomic onboarding, user list/count (3 audit-corrected) |
| Duc Bach | 31 | bo · client | 10 | Whole BO portal: onboarding wizard, role screen, finance/user screens, view-controller V2 |
| Khoa Nguyen | 21 | client · bo · sale-renderer | 20 | Merchant table+switcher, sale-channel UI, Number/Price inputs, checkout refactor, Ledger page |
| Phuc Duong | 21 | search · core · debezium | 3 | Kafka registry+heartbeat, CDC security, variant-option denormalization |
| Phat Chung | 15 | sale · ledger | 4 | S2A PIT layout, price_metadata PIT enrichment |
| Tai Nguyen | 12 | client · helpdesk | 1 | Ticket management UI (in progress) |
| Kien Truong | 10 | sale-renderer | 5 | Variant catalog, bundler badges, bill-split, language switcher |
| Viet Vo | 8 | finance · sale | 3 | Finance provider field, issue-return voucher, shift-v2 |
| Huy Pham | 8 | helpdesk | 3 | Agent-group member mgmt, nullable organizerId |
| Phat Nguyen | 6 (+docs) | identity · core · POS · docs | 39 | Scoped Casbin + lattice (E11), POS floor layout, full documentation/registry rebuild (BANA-1412: 1,553 files, EN+VI), module PRDs |
| Toan Tran | 2 | overture | 3 | Help-center finance/reporting articles, VI route fix |
Non-coding contribution (not visible in git): Le Linh - ~28 verify cases + the 34-bug QA pass; Anh Do - verification on table/layout/product flows (7 done); Thuong Nguyen - KDS core ticket + report flow design; Nguyen Nguyen - onboarding.
* audit-corrected to Done (see correction log).
What Shipped - Detailed Work Log
- Documentation & Developer Platform (BANA-1412) - single-source registry; developer + module docs rewritten concise/visual EN+VI; agent-docs restructure; sidebar grouping; IGNIS↔BANA attribution fixes (1,553 files, +37.9k/−41.9k) (Phat).
- BO portal (E12/E2) - onboarding wizard (1388), role screen (1389), finance filters (1390), User-BO/Merchant split (1391), view-controller V2 (1392), shared components (1393), merchant table (1258), switcher (1259), sale-channel (1260), finance UI (1262), revenue-by-time (1270), filters + Ledger page + BO refactor (1404-1407) (Duc Bach · Khoa).
- Sale BE (E9/E10) - x-merchant-id rollout (1271), pricing context (1272), entitlements (1273), batch-add-items (1274), atomic onboarding (1340*), user list/count (1356*) (Hai Cao).
- Permissions (E11) - scoped Casbin migration (1278), permission lattice seed (1279) (Phat).
- POS (E9) - variant catalog (1264), bundler badges (1265), language switcher (1266), bill-split (1343), floor/space layout (1339/1342), customer search (1397), checkout refactor (1398), Number/Quantity/Price inputs (1399) (Kien · Khoa · Phat).
- Search/Platform - Kafka registry + Debezium heartbeat (1277), CDC security (1395), variant-option denormalization (1396*) (Phuc Duong).
- Tax/Finance (E1/E7) - price_metadata PIT (1357), S2A PIT layout (1358) (Phat Chung); finance provider (1284), issue-return voucher (1285) (Viet Vo).
- Client + QA - customer flows (1293/1294), ledger book (1346), ~28 verify cases (1300-1376) (Khoa · Le Linh · Phat).
- Helpdesk - agent-group member mgmt (1282/1283) (Huy). Docs/Help center - module PRDs (1280), sprint-review template (1281), finance/reporting articles (1267/1268) (Toan).
Project & Phase Progress
- Phase 2 (target Sep 2026) - WK24 added 92 done, the largest single-cycle increment. The Back Office portal (E12) went 0%→~45% in one cycle - the biggest mover.
- Burnup signal: scope also grew via bug intake (38 bug items), so net phase % advances modestly even as raw output set a record. The long poles are E8 (kitchen/self-order, 0%) and the open-bug backlog. See Phase 2 Plan.
Epic Progress (Phase 2)
Derived from the 2026-06-09 snapshot + WK24 deliverables (directional; the real bar is each epic's end-to-end Done signal).
| Epic | Owner | % (was→now) | Δ | Status |
|---|---|---|---|---|
| E1 Tax | Viet/Phat | 67→70 | +3 | on-track (PIT/S2A shipped) |
| E2 Commerce (retail) | Hai/Khoa | 93→95 | +2 | on-track |
| E4 Sale shift | Viet/Phat | 75→80 | +5 | on-track (shift-v2 merged) |
| E5 Customer (MST) | Hai/Khoa | 40→45 | +5 | at-risk |
| E6 Inventory | Phat | 50→50 | 0 | at-risk |
| E7 Finance | Viet/Phat | 83→85 | +2 | on-track |
| E8 Kitchen/self-order | Hai/Khoa | 0→0 | 0 | not-started (KDS UI in progress) |
| E9 Sale selling-exp | Hai/Khoa | 33→50 | +17 | on-track (catalog/bundler/checkout/layout) |
| E10 Pricing | Hai/Khoa | 40→45 | +5 | at-risk |
| E11 Permissions | Phat/Hai | 60→70 | +10 | on-track (scoped Casbin) |
| E12 Commerce BO | Hai/Phat | 0→45 | +45 | on-track (BO portal landed) |
Bottlenecks & Flow
| Signal | Reading |
|---|---|
| Aging WIP | 33 items aged > 2 weeks - Excel-import + Menu cluster (BANA-890-907, 8 wk, never started), 509/512 (15 wk Promotion), 532 (14 wk QA) |
| QA bug pile-up | 34 open bugs (of 38), almost all [FE/client]/[POS], created 06-09→06-11 |
| Concentration | top assignee on ~50% of the board; one main QA driver |
Carry-Over Analysis
78 items remain open. Age rules: ≥3 wk → split/cancel · 2 wk → review · 1 wk → transfer.
| Bucket | Count | Age | Note |
|---|---|---|---|
| Stale (Promotion 509/512, Excel-import 890-894, Menu 902-907, old QA 532) | ~33 | 8-15 wk | split/cancel candidates |
| In-flight (POS table indicators, finance guards, acting-user 1140) | ~12 | 1-3 wk | transfer to WK25 |
| Fresh bugs (this-cycle QA) | ~34 | 0-1 wk | triage; batch for WK25 |
By Module (estimated)
Estimated from title prefixes (no structured module field on cycle items).
| Module | ~Done | Note |
|---|---|---|
| Commerce / BO | ~22 | BO portal + onboarding + merchant mgmt |
| Sale (POS+BE) | ~18 | pricing/entitlement/batch + variant/bundler/checkout/layout |
| Products | ~10 | variant/product flows, inputs, QA |
| Tax / Finance | ~9 | PIT/S2A, finance vouchers |
| User Mgmt / Permissions | ~8 | scoped Casbin, lattice, user list, role screens |
| Platform | ~5 | Kafka/CDC/search + docs rebuild (BANA-1412) |
| Customer / Reports / Helpdesk / Docs | ~9 | misc |
By Label
| Label | Items | Done | Carry |
|---|---|---|---|
| Task | 90 | 46 | 44 |
| Bug | 38 | 4 | 34 |
| Test | 35 | 35 | 0 |
| Improvement | 5 | 5 | 0 |
| Report | 3 | 3 | 0 |
One item carries two type labels (Task + Improvement), so the per-label Done column sums to 93 vs the 92 distinct done.
Risks & Blockers
| Risk | Impact | Mitigation | Owner |
|---|---|---|---|
| Cycle size (171, ~5× sustainable) | Completion % and planning signal diluted | Size next cycle to ~34; drain carry-over first | Phat (PM) / NX_HRM |
| 34 open bugs on new client screens | Quality drag into WK25 | Dedicated bug-fix block WK25; readiness gate | Phat / Le Linh |
| E8 Kitchen/self-order 0% with Sep target | Phase-2 milestone risk | KDS UI in progress (1359/1387); prioritize | Hai / Khoa |
| Concentration (top assignee ~50% of board) | Flow single-point | Redistribute load | Phat (PM) |
Trends (6-cycle)
| Metric | WK19 | WK20 | WK21 | WK22 | WK23 | WK24 | Dir |
|---|---|---|---|---|---|---|---|
| Throughput (done) | 34* | 40* | 67 | 50 | 45 | 92 | ▲▲ |
| Completion % | 34%* | 41%* | 55% | 50% | 49.5% | 53.8% | ▼ |
| Carry-over | 66* | 56* | 44 | 48 | 46 | 78 | ■ high |
| Delivery Health | 23* | 28* | 41* | 36* | 73 | 77 | ▲ |
* WK19-22 are recorded figures from empty-snapshot cycles (less reliable); their health used the retired completion-weighted scale, not comparable to WK23-24's delivery-first score.
Forecast (Monte Carlo)
Throughput ~45-92 done/cycle (WK21-24).
| Milestone | Remaining | 50% | 85% |
|---|---|---|---|
| Close E2/E7/E4/E11 (near done) | small | end-Jun | mid-Jul |
| E9 Sale selling-exp | ~half | WK27 (Jul 12) | WK29 (Jul 26) |
| E8 Kitchen/self-order (0% - long pole) | full | WK30 (Aug 2) | late-Aug |
| E5 Customer / E10 Pricing | ~half each | Aug | late-Aug |
Consistent with the Sep 2026 Phase-2 target if E8 starts now; otherwise the kitchen/self-order pole slips.
Action Items
- ✅ Apply 3 Done-corrections (BANA-1340/1356/1396) - Phat (done this review)
- ✅ Capture untracked docs work as BANA-1412 - Phat (done this review)
- ⬜ Split/cancel the 33 aged items (509/512/890-907/Menu) before WK25 - Phat (PM)
- ⬜ WK25 bug-fix block for the 34 open client bugs - Le Linh / Phat
- ⬜ Start E8 KDS/self-order now (Sep risk) - Hai / Khoa
- ⬜ Re-confirm BANA-1248 (addon/FBT) Done in QA - Anh Do
- ⬜ NX_HRM: stop auto-rolling stale backlog; freeze end-of-cycle snapshot (BANA-1219 standing) - ops
Code-Audit Correction Log
Board said incomplete; code verified Done. 4 in-progress items audited and corrected to Done; 92 done is a verified floor.
| Item | Was | Now | Evidence |
|---|---|---|---|
| 1340 Atomic onboarding | In-progress | Done | POST /organizers/aggregate, commerce organizer-onboard.service.ts (tx, idempotent) |
| 1356 User list & count | In-progress | Done | GET /users/list + /users/list/count, merchant-scoped + searchable, identity user/definitions.ts |
| 1396 Variant-option denormalization | In-progress | Done | search product-variant.collection.ts + cdc-enrichment.service.ts |
| 1412 Docs/registry rebuild | (untracked) | Done | WK24 docs work had no ticket - captured retrospectively (1,553 files) |
Kept open (verified): 1140 acting-user middleware - BE middleware absent; only FE sets
x-acting-user-token. Flagged for QA: 1248 addon/FBT - FE impl present, confirm in verification.
Appendix - Data sources & method
- Git:
git log --all --since=2026-06-08 --until=2026-06-15on nx-seller (~201 commits) + IGNIS. Per-author logs for the Effort and Work Log sections. - Board:
retrieve_cycle+list_cycle_work_itemsfor WK24. - Scorecard: delivery-first formula (SPACE / DORA / Flow). Trailing throughput median over the last 4-6 cycles.
- Estimates labeled as such: By Module is estimated from title prefixes; Epic % is directional.
Related Pages
- Sprint Reviews · Roadmap · Phase 2 Plan · Traceability Matrix
- Plane: BANA-1413 (Report) · docs roll-up BANA-1412