Sprint Review — WK17
Cycle 2026-04-20 → 04-26 · Recorded in Plane as BANA-979. The Executive Summary is sourced from git; the metrics below mirror the Plane review.
Executive Summary
Leadership takeaway
This week (20/04 – 26/04) the team operated in full-time VNPAY support mode and cut and shipped a BANA v1 alpha for onsite evaluation. Despite the pivot, git shows two strong themes landing: the new client launchpad / multi-workspace shell and the receipt / print-template & tax-to-bill stack for the alpha demo.
- Alpha to VNPAY — Cut, hardened and shipped a BANA v1 alpha for the onsite engagement: staging clone, alpha deployment resources, and a validated golden path for the 5-PO walkthrough.
- New Client Shell — Shipped the launchpad with guided tours, workspace-aware sidebar/header/quick-actions, organizer routes, user/employee menus, and a notification sheet.
- Receipt & Printing — Built merchant print templates, print jobs, a receipt-template service and API, plus tax-to-bill and BO print-template configuration for the demo.
- Payments & VNPAY QR — Added merchant payment settings (MOID), payment-provider configuration, VNPAY QR enable/disable handling and transaction-conflict recovery.
- Catalog & Materials — Product attributes (schemas, CRUD, aggregate endpoints, variant bindings), material management with units of measure, and category scoping by product type.
- Reporting & Dashboard — A sales dashboard report and a customer screen for the alpha narrative.
- Onboarding & Docs — A commerce onboarding-v2 endpoint plus the Overture getting-started cluster (create-staff, first-sale, set-product-price articles with screenshots).
Sprint Context — Strategic Pivot
Read every number below against this pivot
During WK17 (Apr 20–26), the entire team operated in full-time VNPAY support mode. 5 VNPAY POs were onsite at NEXPANDO; the team's working priority shifted from the planned WK17 backlog to cutting and shipping a BANA v1 alpha that VNPAY explicitly needed for evaluation.
- The 98 committed items were the plan-of-record, not the work-of-record.
- The actual work-of-record was: alpha cut, walkthrough, demo, feedback capture, hardening (recorded retroactively as BANA-978, DONE).
- Every "low completion" / "carry-over" number below should be read against this pivot, not as a delivery failure.
Strategic outcome: alpha shipped to VNPAY ✅ — that was the only WK17 deliverable that mattered.
Health Score: 22/100 — by the numbers (not a process verdict)
| Dimension | Score | Weight | Contribution |
|---|---|---|---|
| Completion | 40.8/100 | 30% | 12.2 |
| Predictability | 0/100 | 25% | 0.0 |
| Workload Balance | 2.4/100 | 20% | 0.5 |
| Flow (no carry-over) | 0/100 | 15% | 0.0 |
| Quality (no cancel) | 93.9/100 | 10% | 9.4 |
The score is mathematically correct against the WK17 plan but does not reflect the actual outcome. Treat as: "the cycle's plan-of-record was overtaken by a higher-priority engagement."
Key Accomplishments
- 🎯 BANA-978 — BANA v1 alpha shipped to VNPAY during onsite engagement (5 POs walkthrough complete, golden path validated)
- BANA-911→915 Demo flow validation cluster — alpha-ready (Bach, Tai, Khoa, Kien)
- BANA-946 [Kien] Mobile responsive prep for alpha
- BANA-931 [Hai] OPS deploy staging environment — supported the alpha cut
- BANA-908/909 [Hai] Identity bugs fixed — supported the alpha
- BANA-754 [Thuong] Client onboarding flow design
- BANA-952–962 [Phuc.D] Monitoring stack, search service review, SMS integration with VNPAY coordination — 9 items shipped (Phuc.D was the only member who stayed on his planned track)
Carry-over (62 items → moved to WK18)
Not failures — deferred work while team supported VNPAY. Carry-over count is mechanical, not diagnostic.
Still flagged: 9 zombie items (≥2 weeks old, predate WK17 pivot)
| Item | Identifier | Assignee | State | Recommendation |
|---|---|---|---|---|
| Table feature | BANA-216 | Khoa | IN_PROGRESS | Split into 1-week chunks |
| Dynamic filter (other pages) | BANA-344 | Khoa | ON_HOLD | Split or cancel |
| Promotion/Voucher module | BANA-509 | Hai | ON_HOLD | Split — too big as one item |
| CRUD Promotion | BANA-512 | Tai | ON_HOLD | Sub-task of -509, decide together |
| Integrate invoice for sale | BANA-516 | Viet+Bach | UPCOMING | Likely covered by BANA-729/730 — cancel? |
| Realtime BO Sale/Payment | BANA-538 | Hai+Tai | ON_HOLD | Split or cancel |
| Process Merchant Onboarding TEST | BANA-620 | Phat.N | ON_HOLD | Cancel — superseded by BANA-705 runbook |
| Process Golive Products | BANA-621 | Phat.N | ON_HOLD | Cancel or split |
| Base UI migration | BANA-628 | Khoa | IN_PROGRESS | Split — multi-week effort |
These existed before WK17 — VNPAY pivot is not their excuse.
Delivery
Numbers reflect plan-of-record, not pivot.
| Metric | WK17 | WK16 | 4-cycle avg | Target | Note |
|---|---|---|---|---|---|
| Committed | 98 | 65 | 67.8 | — | Plan exceeded baseline before pivot known |
| Completed | 34 (+1 retroactive) | 58 | 52.0 | — | Strategic delivery: alpha to VNPAY |
| Completion % | 34.7% | 89.2% | 92.1% | 85% | Pivot, not failure |
| Cancelled | 2 (2.0%) | 7 | 3.3 | <7% | ✅ |
| Carried over | 62 → WK18 | 0 | 0.5 | <10% | Deferred for VNPAY |
Team Breakdown
Read against the pivot. Sums >98 because items have multiple assignees.
| Member | Total | Done | Carry | Done % | Notes |
|---|---|---|---|---|---|
| Hai | 41 | 6 | 35 | 14.6% | VNPAY support + still over-loaded baseline |
| Phat.N | 22 | 5 | 15 | 25.0% | VNPAY engagement lead — full-time onsite |
| Khoa | 21 | 6 | 13 | 31.6% | VNPAY support + 2 zombies pre-WK17 |
| Phuc.D | 18 | 12 | 6 | 66.7% | Stayed on his track — strongest cycle |
| Bach | 16 | 7 | 9 | 43.8% | Demo support + commerce schema |
| Tai | 10 | 6 | 4 | 60.0% | Demo support |
| Toan | 10 | 0 | 10 | 0% | Overture cluster — orthogonal to VNPAY (gap) |
| Viet | 5 | 0 | 4 | 0% | Invoice VAT (BANA-750) urgent — pivoted in flight |
| Kien | 4 | 4 | 0 | 100% | ✅ |
| Thuong | 2 | 1 | 1 | 50% | Design support |
| Huy | 1 | 0 | 1 | 0% | New joiner ramp |
| Phat.C | 1 | 0 | 1 | 0% | Reporting thread paused |
4-Cycle Trend
| Metric | WK14 | WK15 | WK16 | WK17 | Direction |
|---|---|---|---|---|---|
| Committed | 54 | 64 | 65 | 98 | ▲ pre-pivot scope creep |
| Completed | 52 | 62 | 58 | 34 | ▼ pivot week |
| Completion % | 96.3% | 96.9% | 89.2% | 34.7% | ▼ pivot, not trend |
| Carry-over | 0 | 0 | 0 | 62 | ▼ pivot |
The trend through WK16 is healthy. WK17 is an outlier driven by the VNPAY pivot, not a sustained decline.
Recommendations for WK18 & beyond
Tactical (this week):
- WK18 carries 83 items — triage down to ~50 before mid-week. Don't run another oversized sprint.
- VNPAY feedback triage — execute follow-up task so onsite signal converts to tracked items.
- Force a decision on the 9 zombies — they pre-date the pivot and aren't excused by it.
Process (recurring):
- Pivot protocol — when an unplanned major engagement (customer onsite, demo, partner kickoff) consumes >2 days of team capacity, explicitly cut the sprint plan at the start. Don't run two plans in parallel.
- Cap individual load at 5 items/week even pre-pivot — Hai 41, Phat.N 22, Khoa 21 was unrealistic regardless of VNPAY.
- Designate a tactical PM during weeks Phat.N is fully engaged externally (VNPAY-style), so the team isn't unblocked-by-default.
- Skip "Intervention required" retrospective — Health Score is misleading here. Run a VNPAY post-mortem instead: what we shipped, what VNPAY signaled, what to do in WK18–19.
Action Triggers — re-read against pivot
| Trigger | Fired | Verdict |
|---|---|---|
| Completion <75% (1 cycle) | ✅ | Pivot — not a process problem |
| Member >5 items | ✅ | Real problem regardless of pivot — fix |
| Carry-over age >2 wk | ✅ (9 zombies) | Real problem — pre-date pivot — fix |
| Workload max/min >3× | ✅ (41×) | Real problem regardless of pivot — fix |
| Health Score <60 | ✅ (22) | Misleading — see Context note |
Related Pages
- Sprint Reviews · Roadmap · Changelog · Traceability Matrix
- Plane: BANA-979 — Sprint review 2026_WK17 (Report)