Ruthless prioritization: A startup’s best friend
Of all the tasks you could do, which one do you get done first
Big Tech → Startup → Resource constrained
One thing becomes clear when you leap from big tech to a startup: you’re on the hook to execute everything. Whether that’s writing blog articles, tech docs, or setting up the internet in the office, if you don’t get to that one thing, it won’t get done.
The resources you leave behind
After handing in your Meta, Microsoft, or Amazon badge, you don’t just give up a cushy job, you’re also leaving behind the resources you took for granted. The hundreds of teams that took care of things you never had to think about.
Maybe you only worked on a small part of the infrastructure or an open-source framework – either way, your engineering scope was fairly limited.
As a product engineer myself, it was an absolute gift not needing to worry about items beyond my tasks at hand. I didn’t have to worry about caching logic for a new feature or building the frameworks that abstracted away database storage.
Heck, I didn't even have to consider marketing or even user acquisition – there were millions of eyeballs on the Facebook app, so even a small fraction of them would give new features very meaningful usage.
At a startup, your “to-do” list becomes infinitely long
But at a startup, all this changes. You’re on the hook not only for your immediate “day job”, but every other team’s jobs as well.
I still remember a few months in, looking around our small office, a handful of us with desks and laptops, and that was it. No one else was coming to help. If the servers had an outage, it was up to the people in that room to figure it out.
Later on, I realized this applied to the business more broadly. Nobody knew about us, and no one else was going to get the word out – but us.
At a startup, beyond your product work and roadmap, which is already infinitely long, you have even more randomization through the many hats you need to wear. And still, you’ll only have a finite amount of time. The only answer to ensure your startup moves forward is ruthless prioritization.
Mitigating execution risk by getting the right things done first
Ruthless prioritization means focusing only on the most urgent items. Or rather, only those with a positive expected value compared to their cost in effort.
As effort increases, the value must increase exponentially to justify the same priority. My colleague Pierre shared this framework with a helpful visual, and even a mathematic equation: Priority = Value/Effort^2
In the context of startups, here’s why prioritization matters.
When a feature lands matters. A feature value builds over time after it hits production. For this reason, the true value of several projects landing sooner can be greater than the sum of its parts. Take this example, landing 5 smaller projects in 2 months can have more value than one big project at the end of two months.
Effort becomes harder to estimate the larger the scope, so we need to be more conservative as it increases. For example, if you estimate 1-day for a 2-day project, it's not a huge deal. If you estimate 3 months for a project that actually takes 6 months, that can be a huge miscalculation on prioritization.
Smaller incremental iterations have a multiplicative effect on each other. This has been especially true for features with network effects like invites, sharing, and notifications.
While this tends to help identify the items in the green zone, it also has a dangerous side effect – important items or larger work items can get starved behind the day-week-long tasks that have an immediate impact. So how can you make progress on those items?
Priority inversion + Hackathons: How to get things done that are not a priority
Our approach? We run regular priority inversion weeks and to an extent, hackathons.
Priority inversion
We take priority inversion weeks periodically (roughly once a quarter) to ensure that items that are important but never urgent or as impactful still see the light of day.
I often find that when I’m given permission (or an excuse) to not focus on my primary projects, I’m able to methodically close out many long-standing tasks. Plus, you’ll find that keeping track of these items as you go, dedicating time to knocking them out, and marking them as complete is incredibly rewarding.
However, you can't operate in this mode forever. The high-priority tasks still need to be done. So timeboxing helps give you the right amount of space, while still getting back to urgent tasks quickly.
Hackathons
Once a quarter we run Hackathons, which I’ve found to be another great way to address this problem. If you’re frustrated enough that a feature hasn’t shipped –Hackathons are your chance to work on it! It can be in any domain, not even related to your current team.
We’ve shipped a number of hackathon projects that have a tremendous impact on our product. A few examples include:
Statbot, AI helper in the console
Sidecar, a no-code experimentation Chrome extension
Performance improvements that loaded main pages in the console 30% faster
Dev tooling improvements like speeding up tests by 50%
Balancing immediate needs with long-term goals
I used to get frustrated that the things I was excited about or that I saw would help resolve particular customer issues wouldn’t get prioritized. But the longer we’ve gone on, the more I’ve realized that we will get the right things done, in due time.
Sometimes what you have to prioritize is painfully obvious - like if payroll doesn’t get processed, you have to drop everything to make sure that happens. Other times, you need to choose one thing over another. It all boils down to what gets done first.