Files
wdmUI/backlog/sprint-plan.md
T

7.1 KiB

Sprint plan

Calendar view, dependencies, milestones for the Blocao MVP path. ~19 weeks from start to MVP demo, +6 weeks to multi-site fleet, +2 weeks to evidence chain.

Cadence

  • Sprint length: 2 weeks (some sprints stretch to 3 — see table).
  • Team size assumption: 3-4 engineers (1 router/network, 1-2 Cell/AI, 1 console/UX). Adjust velocity accordingly.
  • Velocity assumption: ~30-50 story points per sprint depending on team size and story mix.

Milestones

Milestone Sprint What's demonstrable
Foundation closed End of S0 New router from CI artifact + new Cell from Balena fleet, both reaching basic mDNS announce
First boot works End of S1 Wizard takes a fresh router from blank to operational standalone
Engineering plane usable End of S2 Operator can manage the router (WAN, VLAN, MQTT, GitOps) without SSH
Cameras onboarding End of S3 Add a camera through the wizard, events flowing
MVP demo readiness End of S4 Full single-site forensic experience: SYNOPSIS, CAMS, FRIGATE, FORENSICS query, evidence playback
Health & ops End of S5 Production-ready selftest, history, quick-fix actions
Multi-site fleet End of S6 Hub running, 2+ sites under management, cross-site search
Hardening End of S7 Evidence chain L1, audit log, design tokens consolidated

Sprint-by-sprint

Sprint 0 — Foundation (2 weeks)

Goal: nothing visible to users; everything visible to engineers.

Stories: BL-00.1, BL-00.2, BL-00.3, BL-00.4, BL-00.5.

Dependencies: none.

Demo: "We can build images. We can flash a router. We can provision a Cell. The MQTT contract is in CI."

Don't take on UI stories this sprint. Discipline pays back later.


Sprint 1 — First boot (2 weeks)

Goal: a fresh router becomes a usable Blocao node.

Stories: BL-01.1, BL-01.2, BL-01.3, BL-01.4, BL-01.5*, BL-01.6, BL-01.7.

(BL-01.5 needs a hub mock — write minimal hub-mock server that accepts enrollment tokens. Real hub later.)

Dependencies: Sprint 0 closed.

Demo: "Plug in a fresh router, open a browser, walk through the wizard, end with a SYNOPSIS view (mostly empty)."


Sprint 2 — Engineering plane (3 weeks)

Goal: each panel of the engineering plane has a real backend.

Stories: BL-02.1, BL-02.2, BL-02.3, BL-02.4, BL-02.5, BL-02.6, BL-02.7, BL-02.8, BL-02.9, BL-02.10, BL-02.11.

Dependencies: Sprint 1 closed.

Demo: "Look, all the engineering panels work. WAN can be reconfigured. VLAN matrix changes commit to GitOps. MQTT live tail is real. GitOps shows real applied/HEAD/remote SHAs."

This sprint is 3 weeks because there are 11 stories and they're mostly L size.


Sprint 3 — Camera onboarding (2 weeks)

Goal: an installer can add cameras through the wizard.

Stories: BL-03.1, BL-03.2, BL-03.3, BL-03.4, BL-03.5, BL-03.6, BL-03.7, BL-03.8, BL-03.9.

Dependencies: Sprint 2 closed.

Demo: "Add 4 cameras to a fresh deployment in 10 minutes. Events flowing. Frigate config in GitOps. Security checklist pass-with-warnings."


Sprint 4 — Operator plane (3 weeks)

Goal: SYNOPSIS and FORENSICS are production-grade.

Stories: BL-04.1, BL-04.2, BL-04.3, BL-04.4 (XL), BL-04.5, BL-04.6, BL-04.7, BL-04.8, BL-04.9, BL-04.10.

Dependencies: Sprint 3 closed.

Demo: MVP. "Demo of forensic query across a real day of footage, scrubbing clips, pinning to case, exporting evidence pack. This is the demo we show prospects."


Sprint 5 — Health & ops (2 weeks)

Goal: production-grade observability.

Stories: BL-05.1, BL-05.2, BL-05.3, BL-05.4, BL-05.5, BL-05.6.

Dependencies: Sprint 4 closed.

Demo: "Kill Frigate. Watch HEALTH go red in <30s. Use quick-fix to recover. View history of last 24h."


Sprint 6 — Hub & fleet (3 weeks)

Goal: multi-site management.

Stories: BL-06.1 (real hub), BL-06.2, BL-06.3, BL-06.4 (XL), BL-06.5, BL-06.6.

Dependencies: Sprint 5 closed.

Demo: "Two sites running. Hub shows both. Cross-site forensic query finds a vehicle in both. Edit fleet-config, watch firewall rule appear in both sites."


Sprint 7 — Hardening (2 weeks)

Goal: evidence chain L1, audit log, design tokens consolidation.

Stories: BL-07.1, BL-07.2, BL-07.3, BL-07.4, BL-07.5, BL-07.6.

Dependencies: Sprint 6 closed.

Demo: "Export evidence pack. Run blocao verify. Edit a clip externally and watch verifier flag tampering."


Total timeline

19 weeks (~4.5 months) from project start to MVP demo (end of Sprint 4).

Add 7 more weeks for full hub + multi-site + hardening (end of Sprint 7).

Total: ~26 weeks for v1.0.

Risks to schedule

  1. Frigate RKNN integration: if RK3588 inference is unstable, Sprint 4 (BL-04.4 forensic engine) slips. Mitigation: have CPU fallback ready.
  2. Hub deployment to Hetzner: first time setup of MinIO, Qdrant, Keycloak in production. Could take longer than estimated. Mitigation: start hub deployment in Sprint 5 (before its formal sprint).
  3. Cross-site forensic search (BL-06.4): XL story with significant uncertainty. Mitigation: prototype query distribution mechanic in Sprint 5 spike.
  4. Operator UX iteration: the chat + autocomplete UX needs real-user testing to refine. Mitigation: schedule 2 customer pilots during Sprint 4-5 to gather feedback.
  5. Hardware availability: if GL.iNet or Banana Pi units are out of stock, Sprint 0 slips. Mitigation: buy 4 of each for the team early.

Buffer

The sprint plan does not include explicit buffer. Estimate +20% on first half (Sprint 0-3) and +15% on second half (Sprint 4-7) for typical project variance.

Realistic MVP demo: end of week 22 (instead of week 19). Realistic full v1.0: end of week 30 (instead of week 26).

Ramp-down vs scope

If schedule pressure mounts, drop scope, not quality. Stories that are easy to defer:

  • BL-02.11 (Logs view) — can be SSH'd into for v1.0.
  • BL-04.5 (autocomplete) — basic chat works, autocomplete enhances.
  • BL-04.10 (export ZIP) — manual evidence export possible until automated.
  • BL-X.X transversal stories — by definition not blocking.
  • WDM-T-* (transcript) — entirely a Year 2 product.

Don't drop:

  • BL-04.4 (forensic engine) — without this, no demo.
  • BL-04.7 (player) — operators need playback.
  • BL-05.1+5.2 (selftest) — no production without health.
  • BL-06.2 (bridge) — no hub without bridge.
  • BL-07.1 (manifest L1) — sovereignty story needs even basic chain.

Post-MVP roadmap

After Sprint 7 (v1.0), the next big bets:

  • Year 2 Q1: Transcript Forensics product launch.
  • Year 2 Q2-Q3: Evidence chain L2 (RFC 3161 TSA, transparency log, BYOK).
  • Year 2 Q3-Q4: Cross-product correlation (audio events ↔ video events at same site).
  • Year 3: HaLow native cameras, expand EU markets, partner channel.

Maintaining this plan

Each sprint review:

  • Update the milestone table with actual demo date.
  • Note which stories slipped, which were dropped, which were added.
  • Adjust velocity assumption based on actuals.

If a milestone slips by >2 weeks, hold a project-level review to decide: add resources, drop scope, or accept new date.