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