TIL NOTE #027
Ship Broken Over Ship Nothing
The feature is 70% done. You’re unsure about the UX. A merge conflict is getting worse. Everyone says “wait until it’s perfect.”
Don’t.
Ship it behind a flag. Enable it for 10% of users. Watch them use it. You’ll learn more in one day than a month of internal testing.
if (flags.newOnboarding) { return <OnboardingV2 />; // 70% ready. Real users will tell us what's broken.}You get:
- ✔ Real usage patterns (what they actually do vs what you predicted)
- ✔ Performance on real hardware (not your laptop)
- ✔ Edge cases you never thought of
- ✔ User feedback in hours, not sprints
Done is not perfect. Done is shipped. Done learns. Done compounds.
The psychological barrier to shipping is the real blocker. Feature flags remove it. Permission to ship incomplete work, learn fast, iterate faster.
That’s the playbook.