
5 Lessons from Shipping 50 Features in 30 Days
David Liu
We didn’t plan to ship 50 features in a month. It started as a dare—our head of engineering bet our product lead that we couldn’t clear the backlog before Q2. Three hundred coffee cups and one very patient DevOps team later, we actually did it.
Here’s what we learned along the way.
1. Small beats perfect, every time
The features that shipped fastest weren’t the simplest ones—they were the ones we scoped ruthlessly. Our rule became: “If you can’t ship it in three days, you’re building too much.”
Example: We had a “complete onboarding redesign” sitting in the backlog for months. When we broke it into 8 smaller improvements—better welcome message, clearer progress indicator, simplified form fields—suddenly each piece became shippable. The “complete redesign” was done in 11 days across multiple small releases, and we got user feedback at every step.
2. Kill the staging bottleneck
Our staging environment was a crime scene. Three teams sharing one environment meant constant conflicts, queue waiting, and “who broke staging?” Slack messages. We moved to ephemeral preview environments—spin up on PR, tear down on merge. The velocity increase was immediate.
3. Automate the boring decisions
How much time do you spend debating code style, PR descriptions, or commit messages? We established strict automation: linting, PR templates, conventional commits. If the computer can enforce it, the computer should enforce it. Humans should only make decisions that require judgment.
4. Ship to 1% first
Feature flags changed how we think about “done.” Every feature shipped first to 1% of users. If nothing caught fire, we expanded to 10%, then 50%, then 100%. This transformed launches from big-bang events into gradual rollouts. Bugs became minor incidents instead of all-hands emergencies.
5. Celebrate velocity, not perfection
This one felt uncomfortable at first. We’re engineers—we want things right. But during that month, we shifted our standups from “what’s blocking you?” to “what did you ship?” The psychological shift was enormous. People started finding ways to ship rather than reasons why they couldn’t.
Was every feature perfect? God, no. We shipped bugs. We shipped things we later reverted. But we also shipped features that customers had been requesting for years, learned what actually mattered through real usage data, and built muscle memory for rapid iteration that’s still paying dividends.
The aftermath
We don’t ship 50 features every month now—that pace was intentional hyperdrive. But our baseline velocity is permanently higher. The habits stuck. And honestly? The team is happier. Shipping feels good. Staring at a stale backlog doesn’t.
If your backlog is haunting you, maybe the answer isn’t a better prioritization framework. Maybe it’s just shipping.