Skip to content

Sprint Review - WK25

Cycle 2026-06-15 → 06-21 · Recorded in Plane as BANA-1600. Scored with the delivery-first scorecard (SPACE / DORA / Flow). 236 work items · 86 done · 7 cancelled · 142 carried · 36.4% completion.

80/100 - Good
100Throughput (86 done)
77Flow & Aging (33 of 142 >2wk)
36.4%Completion (86/236)
6.9×Commitment ratio (236 / ~34)

Executive Summary

~201commits
12contributors
~29commits/day
~6feature branches

Work shipped this cycle, by business theme (sourced from git):

  • Sale - shift management (E4): multi-employee shift open/join/close, shift gate + waiting room, X/Z reports + cash reconciliation, per-device snapshots, shift history, and the real-time shift socket.
  • Sale - cart & draft orders (E9): sale-cart endpoints/services, create-cart, first-cart-on-draft, bundler-group merge with attachment cap.
  • Permissions UI (E11): the per-merchant policy-definition admin surface - grant tables, badges and identifiers.
  • Helpdesk (E12): client + BO ticket experience - dynamic custom-field form builder, FieldMapper, the fieldsData model, and message reactions. The packages/helpdesk build, previously failing, now compiles clean.
  • Sale - KDS & kitchen (E8): KDS board (Pending → Cooking → Ready), send-to-kitchen, and KDS bill printing with printer selection.
  • Commerce BO (E12): merchant-user management screen and user-merchant filters.
  • Pricing (E10): fare-set cloning. Platform: search read-path refactor + ranking + highlight/exclude, SaleOrder covering index, IGNIS-native /me.

Delivery Scorecard

Multi-dimensional by design (SPACE) - not collapsed to one number. Each dimension measures delivery and flow.

DimensionScoreTrendBasis
Throughput10086 done vs ~47.5 six-cycle median (capped at 100)
Flow & Aging7733 of 142 open items (23%) aged > 2 weeks
Predictability68throughput CoV 0.32 over WK20-25 (40, 67, 50, 45, 92, 86)
Quality787 cancelled (3%); 41 bug items in cycle, 5 done
Sustainability54done items concentrated among few assignees (top-2 share ~63%)
Delivery Health (roll-up)80 - Good0.30·100 + 0.25·77 + 0.20·68 + 0.15·78 + 0.10·54

Planning signals - reported separately, not in Health:

  • Commitment ratio ~6.9× - 236 items in the cycle vs a sustainable ~34 (≈17 active × 2). A planning signal for sizing, not a performance score.
  • Completion 36.4% (86 / 236) - held down by a large carried backlog inside the cycle.

Definition of done

A 205_READY_TO_DEPLOY state was added on 2026-06-15 (group started): merged code progresses Ready-to-deployReady-to-testDone, and only QA-accepted work counts as 300_DONE. 14 items currently sit in 205_READY_TO_DEPLOY.

Value Delivered (EBM)

Key Value AreaWhat landed this cycle
Current Value (usable now)Helpdesk ticket experience (client + BO); permissions config UI; BO merchant-user screen; KDS board + send-to-kitchen; sale cart / draft orders
Time-to-Market (speed to ship/learn)Ready-to-deploy / Ready-to-test gates; SaleOrder covering index; IGNIS-native /me
Ability-to-Innovate (future speed)Multi-employee shift foundation (socket + report snapshots); helpdesk build restored; search read-path refactor + ranking; fare-set cloning
Unrealized Value (opportunity ahead)Shift reports / cash-reconcile close-out (E4); KDS depth + self-order (E8); retail / tax / inventory foundations (E2/E1/E6); mobile client design

Effort & Contribution

Context, not a leaderboard. Commits and LOC are activity proxies, not output - debugging, refactor, review and deletion are high-value and low-commit. Activity is shown next to outcomes.

MemberCommitsAreas touchedDone (board)What they built
Kien Truong45sale-renderer · sale · signal2Shift system (entry/open/join/gate/report/snapshot/history/devices), Z-report, KDS print, device settings, socket
Duc Bach35bo · client · core0Policy-definition permissions UI (grant table, badges, role-clone), i18n, UTC report payload
Hai Cao32sale · pricing5Draft-order first cart, bundler-group merge + attachment cap, fare-set clone
Tai Nguyen24client · bo (helpdesk)5Helpdesk ticket forms, category/template, nested dynamic fields, FieldMapper
Khoa Nguyen13sale-renderer · bo3Sale-screen rebuild, mobile sale view, temp-cart notify, SocketStatus
Phat Chung12sale · ledger0SaleOrder covering index, revenue-tier ledger config
Phat Nguyen10 (+2 IGNIS)identity · core · POS6IGNIS /me + getUserInformation, BE auto-trim, POS table/reservation design
Viet Vo9sale · finance0Shift snapshot + open-shift socket, shift create/join, permission seeding, finance-account fix
Huy Pham9helpdesk3fieldsData model + migrations, ticket message reactions, sales-report timezone
Phuc Duong5search · core0Search read-path refactor, ranking relevance, highlight/exclude fields
Diem Phan4bo0BO merchant-user management screen
Toan Tran3overture · docs1Help-center + deploy/wiki updates

Non-coding contribution (not visible in git): Le Linh - verify + PRD items; Anh Do - verification on report/table/product flows; Thuong Nguyen - POS table/reservation + mobile-client design; Nguyen Nguyen - onboarding/identity.

What Shipped - Detailed Work Log

  • Sale - shift management (E4): ShiftEntryPanel + ShiftOpenJoin, ShiftGate/ShiftWaiting, SHIFT_CREATE/SHIFT_JOIN endpoints, getReport/createSnapshot + ShiftSnapshotPanel, shift devices section, table shift, signal-socket shift, refetch-on-close, shift history, Z-report template, X/Z reconcile screen (Kien · Viet Vo).
  • Sale - cart & draft orders (E9): sale-cart + sale-cart-item endpoints/services, create_cart controller, first cart in draft order, merge order items by bundler group + cap attachment quantity (Kien · Hai Cao).
  • Permissions UI (E11): policy-definition admin UI, grant table data, merchant-headquarter / identifier badges, custom-permission and role-clone badges, user-merchant filter + columns, UTC report payload (Duc Bach).
  • Helpdesk (E12): ticket-category custom-field form builder, FieldMapper dynamic fields, fieldsData model + migrations, ticket message reactions (Tai · Huy).
  • Sale - KDS & kitchen (E8): KitchenBoard + KitchenTicket (Pending/Cooking/Ready), SendToKitchen, PrintKDSBillBtn with printer selection (Kien · Khoa).
  • Commerce BO (E12): merchant-user screen + user-management flow (Diem Phan); BO user filter/columns (Duc Bach).
  • Pricing (E10): clone fare-set + FareSet button (Hai Cao).
  • Search / Platform: read-path refactor, ranking relevance, highlight/exclude fields (Phuc Duong); SaleOrder covering index, revenue-tier ledger (Phat Chung).
  • Finance: finance-account isDefault fix (Viet Vo).

Project & Phase Progress

  • Phase 2 (target Sep 2026): 86 done this cycle. The largest movers were the shift system (E4), the permissions UI (E11), BO + helpdesk (E12), and the first KDS work (E8, off zero).
  • Burnup: scope continues to grow via bug intake (41 bug items) and carried backlog; phase progress advances on E4 / E11 / E12. The long poles are E5 Customer, E6 Inventory, E2 Retail (flat, scheduled for July). See Phase 2 Plan.

Epic Progress (Phase 2)

Directional (done child sub-issues + this-cycle deliverables). The bar is each epic's end-to-end Done signal. Baseline = 2026-06-14 snapshot.

EpicOwner% (was→now)ΔStatus
E1 TaxViet/Phat70→700on-track
E2 Commerce (retail)Hai/Khoa95→950on-track (Jul build)
E3 Products (entitlement)Hai/Khoare-scoped-at-risk
E4 Sale shiftViet/Phat80→90+10on-track
E5 Customer (MST)Hai/Khoa45→450at-risk (Jul-loaded)
E6 InventoryPhat50→500at-risk (Jul-loaded)
E7 FinanceViet/Phat85→86+1on-track
E8 Kitchen/self-orderHai/Khoa0→15+15started
E9 Sale selling-expHai/Khoa50→58+8on-track
E10 PricingHai/Khoa45→50+5at-risk
E11 PermissionsPhat/Hai70→80+10on-track
E12 Commerce BOHai/Phat45→65+20on-track

Bottlenecks & Flow

SignalReading
Aging WIP33 of 142 open items aged > 2 weeks (27 > 4 weeks). Oldest clusters: Excel-import (BANA-890-894), Menu (BANA-902-907).
WIP distributionopen by state: 60 upcoming · 57 in-progress · 14 ready-to-deploy · 7 draft · 3 on-hold · 1 ready-to-test.
Ready-to-deploy queue14 items merged and waiting on deploy + QA acceptance before 300_DONE.
Concentrationdone items are concentrated among few assignees (top-2 share ~63%).
BlockedBANA-1140 (acting-user) is on an unmerged branch (feat/shift-variant-2), absent from develop.

Carry-Over Analysis

142 items remain open. Age guidance: ≥3 wk → split/cancel · 2 wk → review · 1 wk → transfer.

BucketCountAgeNote
Aged backlog (Excel-import, Menu, old form/QA items)~333-15 wkcandidates to split/cancel
In-flight (shift polish, KDS depth 1359, addon/FBT 1248, acting-user 1140, mobile design 1592-1596)~571-3 wktransfer to WK26
Ready-to-deploy (incl. 677, 1234, 1257, 1291)14mixeddeploy → QA → Done
Upcoming / not started~60mixedre-triage for WK26

By Module (estimated)

Estimated from title prefixes (no structured module field on cycle items); done items only.

Module~DoneNote
Commerce / BO~13merchant-user, helpdesk, onboarding, PRDs
Sale (POS+BE)~14shift, cart/draft, KDS, sale-renderer, PRDs
Finance / Ledger~8ledger config, finance-account, PRDs
Inventory~6PRDs (stock operations)
Permissions / User~5policy-definition UI, PRDs
Tax~4PRDs
Helpdesk~4ticket model + UI, PRDs
Pricing~3fare-set
Platform / Search~3search read-path, index
Products~2PRDs

By Label

LabelItemsDoneCarry
Task1114467
Bug41536
Improvement505
Report110

A subset of done items carry no type label, so the per-label Done column (50) is below the 86 distinct done.

Risks & Blockers

RiskImpactMitigationOwner
Cycle size 236 (≈6.9× sustainable)Completion % and planning signal dilutedSize WK26 to ~34; drain carry-over firstPhat (PM) / NX_HRM
Ready-to-deploy queue (14) depends on deploy + QAMerged work waits before DoneDefine a merge → deploy → QA → Done SLAPhat / Le Linh
Aged backlog (33 items > 2 wk)Predictability dragSplit/cancel the Excel-import + Menu clustersPhat (PM)
BANA-1140 acting-user on unmerged branchSale acting-user attribution absent on developMerge or cherry-pick feat/shift-variant-2Phuc Duong
E5 / E6 / E2 flat with July startPhase-2 Sep target riskAssign business + design owners for Retail / InventoryPhat / Hai
MetricWK20WK21WK22WK23WK24WK25Dir
Throughput (done)40*6750459286
Completion %41%*55%50%49.5%53.8%36.4%
Carry-over56*44484678142
Delivery Health28*41*36*737780

* WK20-22 use the retired completion-weighted scale and are not comparable to WK23-25's delivery-first score.

Forecast (Monte Carlo)

From observed throughput (~45-92 done/cycle, WK21-25), treating Ready-to-deploy/test work as near-done.

MilestoneRemaining50%85%
E4 shift close-out (reports + cash reconcile)smallend-Junmid-Jul
E11 Permissions / E12 BO close-outsmall-midWK27WK29
E8 Kitchen/self-orderlargeWK31 (Aug)late-Aug
E5 Customer / E6 Inventory / E2 RetailfullAuglate-Aug

Assumes E5/E6/E2 get owners and start in early July, and the Ready-to-deploy queue clears to Done.

Action Items

  • ✅ Code-audit corrections applied (BANA-972/1099/1241/1296 → Done) - Phat
  • ⬜ Size WK26 to ~34 items; drain carry-over first - Phat (PM)
  • ⬜ Split/cancel the aged backlog (Excel-import 890-894, Menu 902-907) - Phat (PM)
  • ⬜ Define a merge → deploy → QA → Done SLA for the Ready-to-deploy queue - Phat / Le Linh
  • ⬜ Merge or cherry-pick BANA-1140 from feat/shift-variant-2 - Phuc Duong
  • ⬜ Finish E8 KDS depth + addon/FBT min-max UI (BANA-1248/1359) - Kien / Khoa
  • ⬜ Assign business + design owners for Retail (E2) and Inventory (E6) - Phat / Hai

Code-Audit Correction Log

9 in-progress items were verified against code and git; 4 were found complete and set to Done. Coverage: 9 of the in-progress set.

ItemWasNowEvidence
972 BE auto-trim on submitIn-progressDonepackages/core/src/models/common/validators.ts (trimmedString) wired into i18n + request schemas; ADR 0001-input-string-trim-convention.md
1099 Helpdesk BE↔FE integrationIn-progressDoneFull module + client/BO screens integrated; packages/helpdesk compiles clean
1241 Client ticket management UIIn-progressDoneapps/client/.../report/hd-tickets/{list,show,create} on HelpDeskTicketApi + SLA tracker
1296 Customer-order 404 fixIn-progressDoneroute /merchant/{id}/sale/sale-order/{id}/show defined in Sale.route.tsx (commit 42c6b0f9d)

Verified still open: 973 product-description (schema only, no input) · 1248 addon/FBT (missing min/max selection UI) · 1359 KDS (no auto Ready notification) · 1140 acting-user (on unmerged branch).

Appendix - Data sources & method

  • Git: git log --all --since=2026-06-15 --until=2026-06-22 on nx-seller (~201 commits) + IGNIS (2 commits). Per-author logs used for the Effort and Work Log sections.
  • Board: retrieve_cycle (state counts) + list_cycle_work_items (per-item state/assignee/label/dates) for WK25, read 2026-06-21.
  • Scorecard: delivery-first formula (SPACE / DORA / Flow). Trailing throughput median over WK20-25.
  • Estimates labeled as such: By Module is estimated from title prefixes; Epic % is directional.

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