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
- Frigate RKNN integration: if RK3588 inference is unstable, Sprint 4 (BL-04.4 forensic engine) slips. Mitigation: have CPU fallback ready.
- 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).
- Cross-site forensic search (BL-06.4): XL story with significant uncertainty. Mitigation: prototype query distribution mechanic in Sprint 5 spike.
- 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.
- 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.