# Plan Redesign: Waterfall → Milestone-Based Development **Date**: 2026-03-03 ## Problem The original 9-phase sequential plan had three issues: 1. **Premature abstraction** — LedController trait designed before hardware validation 2. **Phases too large** — multi-session phases with unclear stopping points 3. **Hardware dependencies unclear** — couldn't tell what to work on with partial hardware ## Decision Restructured into milestone-based groups organized by hardware availability: | Group | Hardware Needed | Milestones | |-------|----------------|------------| | **A** | XIAO M0 + LP5562EVM + USB cable | M1 smoke test, M2 engine patterns, M3 pattern library | | **B** | + NTAG5Link Click board + I2C jumper | M4 EEPROM, M5 boot-from-EEPROM, M6 SRAM mailbox | | **C** | + Hall sensor + multimeter | M7 sleep/wake, M8 recovery, M9 power characterization | | **D** | All Group A-C hardware | M10 LedController trait, M11 SimplePwm | | **E** | Future | Custom PCB, companion app, NFC OTA | ## Key Principles - **Hardware-first**: Get real LEDs blinking before designing abstractions - **YAGNI**: No traits, formats, or protocols until we need them - **Small milestones**: Each produces a flashable, testable result (~1 session) - **Deferred abstraction**: LedController trait moves to M10 (after M1-M9 prove the real interface) - **Pattern format informed by experience**: Binary format designed in M5 after M2-M3 engine programming experience ## Current Status - Phase 0 (scaffold) complete - M1 code ready to flash (LP5562 driver integrated, main.rs has RGBW cycle test) - Blocked on mini-USB cable for flashing ## Reference Full plan: [docs/DEVELOPMENT_PLAN.md](../DEVELOPMENT_PLAN.md)