187 lines
7.1 KiB
Markdown
187 lines
7.1 KiB
Markdown
# 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.
|