If I was to boil down the most important rule learned over eleven years of shipping software, it would be: velocity above all else.
Velocity trumps everything. It trumps prioritization, code quality, design polish, feature completion, and whatever else you consider sacred.
Velocity is the cure to the sluggishness that so many software teams fall into.
I think of this rule as Ship by Friday.
Your job is to get the maximum amount of product out the door by the end of the week. The amount of product that you ship is variable. The end of week release is not.
What’s the benefit of shipping every week?
Shipping by Friday gets you customer feedback faster, and that’s the ultimate source of truth. Customer reactions to actual software beats user research teams, subject-matter experts, and talking to your sales guy. Everything else is a proxy. Customer feedback is reality.
Shipping by Friday unlocks customer usage behavior, even more valuable than feedback. Does their usage and feedback align with the rest of your roadmap? As you pick up real world feedback on a rapid cadence, your conviction in your plans will grow.
Shipping by Friday forces prioritization. What features will make the cut? Pushing to Monday is not an option. You must decide.
Great, Adil, this is well and good – but I can’t ship faster. I have important customers with high expectations.
It may be true that a shit release will end your business. There are workarounds.
The obvious one: set up an opt-in alpha or a beta program. You can incentivize it with a slight discount if your customers otherwise won’t bite.
Another one: stagger your product rollout in stages across the customers in your beta program. Your customers most understanding about encountering an occasional issue should get your newest releases before critical customers that don't have such flexibility.
The discount or staged rollout may cost you a little money or time, yes – but you’re paying for early access to ground truth. It is worth it.
A couple of mindset shifts may be necessary before you’re ready to commit at the altar of shipping by Friday.
First, some product is better than no product. A bite-sized version that captures the spirit of the whole and will get you access to ground truth sooner beats a long and siloed build.
Second, if you ship whatever you can every week, you can never waste more than a week of dev time. By comparison, if you invest 12 weeks into one big release, you are closer to betting the house. The first few times you commit to shipping whatever you can by Friday, you might build the wrong thing, and that will feel like wasting dev time. But as you pick up real world feedback on a rapid cadence, your conviction in your roadmap will grow massively, and you’ll be much less likely to build the wrong thing.
The best part about shipping by Friday is there’s no stopping once you start. You get addicted to the constant drip of feedback. You begin to think that it would be literally insane to not re-validate your roadmap every week. You feel a slight condescension to user research teams that spend weeks assembling dossiers to save some dev time. And you appreciate just how much faster, more effective, and more intoxicating software development could be if you would just commit to ship by Friday.
---
Addendum. It’s worth stating here that I don’t believe you should actually release on Friday. Monday is probably a better option, in case you broke a bunch of stuff. But rhetorically, ship by Friday is exciting, and good rhetoric goes a long way to setting an aspirational goal for a team.
---
Thank you to David Perell for editing an earlier release of this essay.