Sprint Review - WK28
Cycle 2026-07-06 → 07-12 · Mirror BANA-1787 · Delivery-first scorecard (SPACE / DORA / Flow).
| Committed | 97 | Cancelled | 2 |
| Done | 57 | Carried | 38 |
| Completion | 58.8% best in 6 cycles | Health | 70 - Good |
| Commits | ~280 | Contributors | 13 |
The week in four lines
- Sizing worked. WK28 was cut to 97 items (from 158). Completion hit 58.8%, the best in the 6-cycle window, with the lowest carry-over (38).
- Throughput dipped, and that is fine. 57 done vs 79 in WK27 - a smaller cycle simply has fewer items to finish. Not a delivery regression.
- The acceptance queue is draining. 41 items → 17. The bottleneck is now deploy and QA, not the team's output.
- The long poles have not moved. Customer, Inventory and Retail are flat with no owner for the third review running, and 6 Phase-2 PRDs still have no code.
Executive Summary
What shipped, by theme:
POS rebuild (sale-renderer-2) shipped Table map view, product panel, cart grouping, split-order, and a new OrderCheckout screen (Khoa). Backed by table-overview and cart split/cancel APIs (Hai Cao).
Permissions: policy-definition-v2 shipped Role-tier merge, grant/revoke scoping, a shared permission-tree component. 12 incremental merges - the week's largest branch (Duc Bach).
Back Office build-out awaiting acceptance Nine screens: product, stock, fare & fare-set, inventory-location, category, vendor, plus merchant-logo and sale-channel fixes (Diem Phan). Code-verified, still in the acceptance queue.
Platform hardening shipped Kafka consumer/client-id standardization with role-gated binding, search DLQ/CDC fixes, Traefik consolidated into
packages/gateway(Hai Cao, Phuc Duong).Merchant analytics shipped GMV-trend + summary-comparison endpoints and the BO growth dashboard that consumes them (Tai Nguyen).
PRDs move, code does not risk E-invoice issuance and tax-declaration PRDs advanced. Neither has code yet. Both gate the August roadmap.
Delivery Scorecard
| Dimension | Score | Trend | Reading |
|---|---|---|---|
| Throughput | 72 | ▼ | 57 done vs a trailing median of 79 (WK23-27) |
| Flow & Aging | 42 | ► | 22 of 38 open items (58%) are older than two weeks |
| Predictability | 68 | ► | volume still swings cycle to cycle (CoV ≈ 32%) |
| Quality | 92 | ▲ | cancel rate 2.1%; 6 items where the board overstated progress |
| Sustainability | 100 | ▲▲ | top-2 done-share 38.5%, under the 40% bus-factor line for the first time |
| Delivery Health | 70 - Good | ▲ | 0.30·T + 0.25·F + 0.20·P + 0.15·Q + 0.10·S |
Health sits just over the Good line (69.5 rounded). Flow & Aging is what holds it down.
Planning signals (reported apart from Health):
- Commitment ratio ~2.3× - 97 items vs a sustainable ~42 (21 active × 2/week). Still oversized, but the smallest ratio since WK22.
- Completion 58.8% - best in the trend window, and a direct result of last review's sizing call.
Definition of done
205_READY_TO_DEPLOY → 210_READY_TO_TEST → 300_DONE. Only QA-accepted work counts. 17 items sit in the acceptance queue (12 ready-to-deploy + 5 ready-to-test), down from 41 in WK27.
Value Delivered (EBM)
| Key Value Area | What landed |
|---|---|
| Current Value usable now | Split-order + OrderCheckout on the POS rebuild · policy-definition-v2 permissions UI · BO device management · customer-delete guard |
| Time-to-Market speed to ship | Kafka consumer/client-id standardization + role-gated binding · search DLQ/CDC/watchdog hardening · Traefik consolidated into packages/gateway |
| Ability-to-Innovate future speed | Shared permission-tree component (reusable across global + merchant-scoped role screens) · unified BO ChartWrapper cuts the cost of the next dashboard |
| Unrealized Value opportunity ahead | 17-item acceptance queue (mostly the BO screen batch) is real value not yet counted · 6 Phase-2 PRDs still draft with no code |
Effort & Contribution
Context, not a leaderboard. Commits are an activity proxy, not output. Board "Done" counts multi-assignee items once per assignee.
| Member | Commits | Areas | Done | What they built |
|---|---|---|---|---|
| Hai Cao | 45 | Kafka, gateway, sale APIs | 4 | Kafka SASL + consumer-id standardization, role-gated binding · Traefik consolidation · table-overview and cart-split APIs |
| Duc Bach | 43 | permissions, BO | 7 | policy-definition-v2 end-to-end · shared permission tree · license and finance-category visibility |
| Khoa Nguyen | 33 | sale-renderer-2 | 11 | Table map view · product panel · cart grouping · split-order · OrderCheckout screen |
| Tai Nguyen | 19 | BO dashboards, helpdesk | 2 | Unified ChartWrapper · merchant growth/health dashboards · helpdesk ticket-detail refactor |
| Diem Phan | 15 | BO products/inventory | 0 in queue | 9 BO + client screens, all code-verified. Sits in 205_READY_TO_DEPLOY, so it does not count as Done yet |
| Phat Chung | 14 | identity / auth | 3 | OTP mail verification · merchant-scoped role-grant guards · sign-up transaction fix · VN province/ward migration |
| Phuc Duong | 12 | search platform | 1 | Search DLQ fix · CDC topics for allocation · pipeline watchdog · ranking order |
| Thuan Hoang | 11 | client/BO, device | 8 | Password-validation hardening · v2 filter components · BO device management |
| Viet Vo | 10 | sale / shift | 0 | Shift device join/leave events · socket payload · reconcile versioning |
| Kien Truong | 7 | sale / shift | 10 | Shift-flow refactor · opening-float history · shift-calendar styling |
| Phat Nguyen (PM/PO) | 10 | platform, PRD | 26 | IGNIS bump · Kafka SASL fix · Pricing/Product/Licensing PRDs |
| Tinh Nguyen (PO) | 7 | docs / PRD | 5 | E-invoice-issuance and tax-declaration PRD revisions · category-template and merchant-health PRDs |
| Le Linh | - | QA | 11 | QA acceptance on 11 aged FE/client tickets |
| Anh Do | - | QA | 3 | QA acceptance pass on client fixes |
| Oanh Phan | - | QA | 1 | QA acceptance (joined 2026-06-29) |
Invisible work
A lot of what closed this week was code that had been sitting finished for weeks. What actually moved it over the line was the QA acceptance pass by Le Linh, Anh Do and Oanh Phan - work that never shows up in git.
What Shipped - Detailed Work Log
Sale / POS
sale-renderer-2: table map view, product panel, cart grouping, split-order flow, OrderCheckout screen (Khoa)- Sale-domain APIs: table overview, cart split, cart cancel (Hai Cao)
Permissions
- policy-definition-v2 end-to-end: role-tier merge, grant/revoke scoping, shared permission-tree component, companion role branch (Duc Bach)
Back Office - products & inventory in acceptance queue
- Product list + create/edit (variants, options, bundler, POS preview)
- Stock list with inline-edit panel
- Fare & fare-set screens · inventory-location CRUD · product-category management + sidebar submenu · vendor management
- Merchant-logo upload, default sale channel, product-option translate/edit, organizer logo & name (all Diem Phan)
Platform / infra
- Kafka consumer/client-id naming standardized, role-gated consumer binding across finance / inventory / invoice / pricing / taxation (Hai Cao)
- Traefik config consolidated from per-service compose labels into
packages/gateway(Hai Cao) - Search: DLQ config fix, CDC topics for the allocation schema, pipeline watchdog, ranking-order preservation (Phuc Duong)
Merchant analytics
- GMV-trend + summary-comparison report endpoints, and the BO growth/distribution dashboard on top (Tai Nguyen)
Identity / auth
- OTP mail verification, merchant-scoped role-grant guard, sign-up transaction fix, VN province/ward scoring migration (Phat Chung)
Aged backlog cleared
- 13 FE/client tickets from early-to-mid June closed out: store-edit flow, tax-code and address validation, product-price navigation, combo warnings, phone/name validation, product search, bundle-config access, variant deletion, diacritic city search, category revenue %, variant price edit
Still in flight
- Shift: flow refactor, opening-float history, calendar styling (Kien) · device join/leave, socket payload, reconcile versioning (Viet Vo)
- PRDs: e-invoice issuance, tax-declaration 1-3B - documents advanced, no code yet
Project & Phase Progress
- Phase 2 (target Sep 2026): 57 done this cycle. Biggest movers: Permissions, BO Products/Inventory, Platform reliability.
- Burnup: Phase-2 scope keeps growing as new
[PRD/*]tickets enter. Done-count is lower than WK27 purely because the cycle was sized smaller. - Long poles: Customer, Inventory, Retail - flat, no owner, carried for the third review running. See Phase 2 Plan.
Epic Progress (Phase 2)
Directional. Baseline = the 2026-07-05 snapshot in
phase-2-plan.md.
| Epic | Owner | Was → Now | Δ | Status |
|---|---|---|---|---|
| E12 · Commerce (Backoffice portal) | Hải / Phát | 78% → 84% | +6 | on-track |
| E9 · Sale (Selling experience) | Hải / Khoa / Phát | 66% → 70% | +4 | on-track |
| E11 · Permissions | Phát / Hải | 84% → 88% | +4 | on-track |
| E1 · Tax (S2a, T-VAN) | Việt Võ / Phát | 74% → 75% | +1 | on-track |
| E4 · Sale (Shift + reconcile) | Việt Võ / Phát | 94% → 95% | +1 | on-track |
| E8 · Sale (Kitchen & self-order) | Hải / Khoa / Phát | 24% → 25% | +1 | at-risk |
| E2 · Commerce (Retail) | Hải / Khoa / Phát | 96% → 96% | 0 | near-done |
| E7 · Finance | Việt Võ / Phát | 88% → 88% | 0 | stable |
| E10 · Pricing | Hải / Khoa / Phát | 52% → 52% | 0 | flat |
| E5 · Customer (MST + groups) | Hải / Khoa / Phát | 48% → 48% | 0 | no owner |
| E6 · Inventory | Phát | 50% → 50% | 0 | no owner |
| E3 · Products (Entitlement) | Hải / Khoa / Phát | re-scoped | - | no scaffolding |
Two bookkeeping gaps, not delivery gaps
- E3 (Products/Entitlement) has zero child work items in Plane. The epic has no scaffolding at all, which is different from "low progress".
- E11 (Permissions) leaf tasks are effectively complete, but the FEAT container tickets under it were never toggled to Done.
Bottlenecks & Flow
| Signal | Reading |
|---|---|
| Aging WIP | 22 of 38 open items (58%) are older than two weeks. Oldest: #1183/#1184 (reservation indicators, 6.3wk, open for the third review running) |
| WIP distribution | backlog 11 · in-progress 10 · acceptance queue 17 |
| Acceptance queue | 17 items, down from 41. Mostly the BO screen batch, code-verified but not deployed/QA'd |
| Concentration | top-2 done-share 38.5% - under the 40% line for the first time in this window |
| Blocked | none flagged. Plane has no relations API, so blocked-by is not tracked structurally |
Carry-Over Analysis
38 items remain open. Guidance: ≥3wk → split or cancel · 2wk → review · 1wk → transfer.
| Bucket | Count | Age | What is in it |
|---|---|---|---|
| Zombie backlog | 18 | ≥3wk | Reservation indicators (#1183/#1184, 6.3wk) · a stale Jun 9-16 FE/client batch · 6 Phase-2 PRDs still draft |
| Review | 4 | ~2wk | BO growth dashboard + 3 QA/pos test-case tickets |
| Normal transfer | 16 | <2wk | Recently-created acceptance-queue and backlog items |
By Module (capability)
Authoritative for the 71 items carrying a capability module. 26 items predate the 2026-06-09 restructure and show as Unmapped - a data gap, not a delivery gap.
| Module | Items | Done | Carry |
|---|---|---|---|
| Sale | 26 | 16 | 10 |
| Products | 7 | 3 | 3 |
| Reports | 6 | 5 | 1 |
| Commerce | 5 | 2 | 3 |
| Inventory | 5 | 0 | 5 |
| Platform | 4 | 4 | 0 |
| User Management | 4 | 3 | 1 |
| Helpdesk | 3 | 3 | 0 |
| Device | 3 | 2 | 1 |
| Tax | 2 | 1 | 1 |
| Customer | 2 | 2 | 0 |
| Permissions | 2 | 2 | 0 |
| Pricing | 1 | 0 | 1 |
| Finance | 1 | 0 | 0 |
| Unmapped (legacy) | 26 | 14 | 12 |
By Label
| Label | Items | Done | Cancelled |
|---|---|---|---|
| Task | 46 | 27 | 1 |
| Bug | 36 | 22 | 0 |
| Improvement | 5 | 4 | 0 |
| PRD | 13 | 4 | 1 |
| Phase 2 | 94 | 54 | 2 |
Risks & Blockers
| Risk | Impact | Mitigation | Owner |
|---|---|---|---|
| 6 items where the board claims more progress than the code shows (#1723, #1575, #1576, #1580, #1681, #1772) | Deploy sign-off could ship a half-built feature | Spot-check 205/210 items against code before sign-off | Phat / Le Linh |
#1772 Fare & Fare-set BO screen does not exist in apps/bo (only in apps/client), yet sits in 205_READY_TO_DEPLOY | The screen cannot be deployed because it was never built | Demote to backlog and re-scope | Phat / Diem |
| #1183/#1184 reservation indicators, 6.3wk old, re-verified open for the third review | Scope has silently drifted from the ticket for over a month | Re-scope explicitly or close as superseded | Phat / Khoa |
| 6 Phase-2 PRDs still draft with no code (Entitlements, Kitchen station, QR self-order, e-invoice issuance, tax declaration, stock ops) | Directly gates the July/August roadmap | Kick off PRD-to-code for Tax and Sale epics | Phat |
| Customer / Inventory / Retail epics flat, no owner - third review running | Core reasons Phase 2 exists; Sep target at risk | Assign owners, start in July | Phat / Hai |
| Tickets are not moved when the work lands - a third of the open board had merged code behind it | Completion understates real output every single week | Move to Done on QA-accept, not later | Whole team |
Trends (6-cycle)
| Metric | WK23 | WK24 | WK25 | WK26 | WK27 | WK28 | Dir |
|---|---|---|---|---|---|---|---|
| Throughput (done) | 45 | 92 | 86 | 40 | 79 | 57 | ▼ |
| Completion % | 49.5 | 53.8 | 36.4 | 21.7 | 50.0 | 58.8 | ▲ best |
| Carry-over | 46 | 78 | 142 | 143 | 78 | 38 | ▲ best |
| Delivery Health | 73 | 77 | 80 | 67 | 73 | 70 | ▼ |
Completion and carry-over both hit their best marks in the window. Throughput and Health dipped only because the cycle was deliberately smaller. Read it as a planning win, not a delivery regression.
Forecast (Monte Carlo)
From observed throughput (40-92 done/cycle over 6 cycles).
| Milestone | Remaining | 50% | 85% |
|---|---|---|---|
| Clear the acceptance queue | 17 | WK29 | mid-July |
| Permissions (E11) + Backoffice portal (E12) | see Epic Progress | mid-July | late July |
| Kitchen & self-order (E8) | no code, PRD still draft | September | Q4 - needs a kickoff decision |
| Customer / Inventory / Retail (E5/E6) | flat, no owner | August | September, at risk |
Action Items
- ✅ Sized WK28 to 97 items (down from 158) - Phat
- ⬜ Demote and re-scope #1772 (Fare BO screen was never built) - Phat / Diem
- ⬜ Re-scope or close #1183/#1184 (6.3wk old) - Phat / Khoa
- ⬜ Spot-check
205/210items against code before deploy sign-off - Phat / Le Linh - ⬜ Triage the 18-item zombie backlog - Phat
- ⬜ Start code on the 6 draft Phase-2 PRDs before August - Phat
- ⬜ Assign owners for Customer, Inventory, Retail - Phat / Hai
Appendix - data sources & method
- Git:
git log --all --since=2026-07-06 --until=2026-07-12on nx-seller. 280 non-merge commits, 13 tracked contributors (plus one external VNPAY collaborator, excluded). - Board:
retrieve_cycle+ per-item list for2026_WK28, read 2026-07-12. - Scorecard: throughput baseline = trailing median WK23-27 (79). Predictability = CoV (≈32%). Quality = cancel rate + board-overstatement rate; there is no reopen tracking on the board, so this is a labelled estimate.
- By Module: authoritative for 71 of 97 items; 26 legacy items shown as Unmapped rather than guessed.
Related pages
Sprint Reviews · Roadmap · Phase 2 Plan · Traceability Matrix · Plane BANA-1787