Skip to content

Sprint Review - WK28

Cycle 2026-07-06 → 07-12 · Mirror BANA-1787 · Delivery-first scorecard (SPACE / DORA / Flow).

70/100 - Good
57Done
58.8%Completion
17Awaiting acceptance
38Carried
Committed97Cancelled2
Done57Carried38
Completion58.8% best in 6 cyclesHealth70 - Good
Commits~280Contributors13

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

~280commits
13contributors
~33commits/day
4feature branches

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

DimensionScoreTrendReading
Throughput7257 done vs a trailing median of 79 (WK23-27)
Flow & Aging4222 of 38 open items (58%) are older than two weeks
Predictability68volume still swings cycle to cycle (CoV ≈ 32%)
Quality92cancel rate 2.1%; 6 items where the board overstated progress
Sustainability100▲▲top-2 done-share 38.5%, under the 40% bus-factor line for the first time
Delivery Health70 - Good0.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_DEPLOY210_READY_TO_TEST300_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 AreaWhat 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.

MemberCommitsAreasDoneWhat they built
Hai Cao45Kafka, gateway, sale APIs4Kafka SASL + consumer-id standardization, role-gated binding · Traefik consolidation · table-overview and cart-split APIs
Duc Bach43permissions, BO7policy-definition-v2 end-to-end · shared permission tree · license and finance-category visibility
Khoa Nguyen33sale-renderer-211Table map view · product panel · cart grouping · split-order · OrderCheckout screen
Tai Nguyen19BO dashboards, helpdesk2Unified ChartWrapper · merchant growth/health dashboards · helpdesk ticket-detail refactor
Diem Phan15BO products/inventory0 in queue9 BO + client screens, all code-verified. Sits in 205_READY_TO_DEPLOY, so it does not count as Done yet
Phat Chung14identity / auth3OTP mail verification · merchant-scoped role-grant guards · sign-up transaction fix · VN province/ward migration
Phuc Duong12search platform1Search DLQ fix · CDC topics for allocation · pipeline watchdog · ranking order
Thuan Hoang11client/BO, device8Password-validation hardening · v2 filter components · BO device management
Viet Vo10sale / shift0Shift device join/leave events · socket payload · reconcile versioning
Kien Truong7sale / shift10Shift-flow refactor · opening-float history · shift-calendar styling
Phat Nguyen (PM/PO)10platform, PRD26IGNIS bump · Kafka SASL fix · Pricing/Product/Licensing PRDs
Tinh Nguyen (PO)7docs / PRD5E-invoice-issuance and tax-declaration PRD revisions · category-template and merchant-health PRDs
Le Linh-QA11QA acceptance on 11 aged FE/client tickets
Anh Do-QA3QA acceptance pass on client fixes
Oanh Phan-QA1QA 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.

EpicOwnerWas → NowΔStatus
E12 · Commerce (Backoffice portal)Hải / Phát78% → 84%+6on-track
E9 · Sale (Selling experience)Hải / Khoa / Phát66% → 70%+4on-track
E11 · PermissionsPhát / Hải84% → 88%+4on-track
E1 · Tax (S2a, T-VAN)Việt Võ / Phát74% → 75%+1on-track
E4 · Sale (Shift + reconcile)Việt Võ / Phát94% → 95%+1on-track
E8 · Sale (Kitchen & self-order)Hải / Khoa / Phát24% → 25%+1at-risk
E2 · Commerce (Retail)Hải / Khoa / Phát96% → 96%0near-done
E7 · FinanceViệt Võ / Phát88% → 88%0stable
E10 · PricingHải / Khoa / Phát52% → 52%0flat
E5 · Customer (MST + groups)Hải / Khoa / Phát48% → 48%0no owner
E6 · InventoryPhát50% → 50%0no owner
E3 · Products (Entitlement)Hải / Khoa / Phátre-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

SignalReading
Aging WIP22 of 38 open items (58%) are older than two weeks. Oldest: #1183/#1184 (reservation indicators, 6.3wk, open for the third review running)
WIP distributionbacklog 11 · in-progress 10 · acceptance queue 17
Acceptance queue17 items, down from 41. Mostly the BO screen batch, code-verified but not deployed/QA'd
Concentrationtop-2 done-share 38.5% - under the 40% line for the first time in this window
Blockednone 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.

BucketCountAgeWhat is in it
Zombie backlog18≥3wkReservation indicators (#1183/#1184, 6.3wk) · a stale Jun 9-16 FE/client batch · 6 Phase-2 PRDs still draft
Review4~2wkBO growth dashboard + 3 QA/pos test-case tickets
Normal transfer16<2wkRecently-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.

ModuleItemsDoneCarry
Sale261610
Products733
Reports651
Commerce523
Inventory505
Platform440
User Management431
Helpdesk330
Device321
Tax211
Customer220
Permissions220
Pricing101
Finance100
Unmapped (legacy)261412

By Label

LabelItemsDoneCancelled
Task46271
Bug36220
Improvement540
PRD1341
Phase 294542

Risks & Blockers

RiskImpactMitigationOwner
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 featureSpot-check 205/210 items against code before sign-offPhat / Le Linh
#1772 Fare & Fare-set BO screen does not exist in apps/bo (only in apps/client), yet sits in 205_READY_TO_DEPLOYThe screen cannot be deployed because it was never builtDemote to backlog and re-scopePhat / Diem
#1183/#1184 reservation indicators, 6.3wk old, re-verified open for the third reviewScope has silently drifted from the ticket for over a monthRe-scope explicitly or close as supersededPhat / 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 roadmapKick off PRD-to-code for Tax and Sale epicsPhat
Customer / Inventory / Retail epics flat, no owner - third review runningCore reasons Phase 2 exists; Sep target at riskAssign owners, start in JulyPhat / Hai
Tickets are not moved when the work lands - a third of the open board had merged code behind itCompletion understates real output every single weekMove to Done on QA-accept, not laterWhole team
MetricWK23WK24WK25WK26WK27WK28Dir
Throughput (done)459286407957
Completion %49.553.836.421.750.058.8▲ best
Carry-over46781421437838▲ best
Delivery Health737780677370

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).

MilestoneRemaining50%85%
Clear the acceptance queue17WK29mid-July
Permissions (E11) + Backoffice portal (E12)see Epic Progressmid-Julylate July
Kitchen & self-order (E8)no code, PRD still draftSeptemberQ4 - needs a kickoff decision
Customer / Inventory / Retail (E5/E6)flat, no ownerAugustSeptember, 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/210 items 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-12 on nx-seller. 280 non-merge commits, 13 tracked contributors (plus one external VNPAY collaborator, excluded).
  • Board: retrieve_cycle + per-item list for 2026_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.

Sprint Reviews · Roadmap · Phase 2 Plan · Traceability Matrix · Plane BANA-1787

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