This post lists the key insights from this article, from Brandon Chu, GM Platform at Shopify.
All highly functioning teams must prioritize. Not once a month, not once a week — but rigorously, and ruthlessly. There is always a way to accomplish your goal faster than you currently plan to
The craft of making prioritization decisions is one of the most difficult skills to impart on teams because of how complex those decisions can become, and while it’s usually a core responsibility of product managers, the best teams are the ones where everyone is maniacally prioritizing towards the same goal, and doing so in a way that’s consistent with each other.
A Framework for Prioritization
Prioritization in product management can be broken down into two scopes:
- Prioritization between projects — this is about determining what project your team should do next.
- Prioritizing work within a project —this is about how efficiently you can execute a project.
Prioritizing between projects
A rigorous process to solve the puzzle: What will my team invest in next?
Answering this question may require rigour, but the process isn’t complicated:
- Estimate return on investment for each project (by estimating the amount of customer value that will be produced, and the time it will take to finish the project)
- Apply three constraints: dependencies, timelines, and team composition
- Put the puzzle together — sequence projects based ROI + constraints
Prioritizing work within a project
The only way to combat the speed and chaos of building products is to develop a ruthless mindset, one that is constantly aware of the work a team is doing and challenges them on the necessity of that work.
Having a ruthless mindset meansaccepting reality. It’s a realization that you will have to make hard choices every day on where to focus. It’s a realization that shipping the perfect product is an illusion, and that trade-offs are always required to ship.
1. Building prioritization systems
You can’t afford to have a prioritization meeting every time a bug pops up, so one of the highest leverage things you can do is to create a system that determines when to fix bugs or when to move on.
Here’s an example of one that I’ve found productive for my teams:
2. Using product assumptions to make quality vs. speed trade offs
If you think about your product, there are three situations you can be in with respect to these product assumptions:
- The problem you’re trying to solve is an assumption
- The solution to fulfill a known problem is an assumption
- Neither are assumptions (you know exactly what’s needed and why)
3. The Time Value of Shipping
Software only creates value for customers, once it’s shipped.
Let’s consider the following scenarii:
When faced with this choice, the author usually encourages teams to be ruthless and ship it. Here’s why:
- If customers knew the full context and could make the decision for us, the majority of them would want us to ship it.
- In the long run, if a team consistently follows this strategy, the number of times a customer will fall on the good side of that 80%|20% will even out, and as a result, relative to a company that always waits for 100%, customers will get exponentially more value over time as the effect of constantly getting features earlier compounds.
Prioritizing work within a project: Ruthless mindsets are unnatural
Most teams in the industry aren’t incentivized to be ruthless prioritizers, despite it being a core meme of product companies.
Why? A perfectly polished product tends to receive a lot of praise internally. Too bad it took two years to ship. Too bad we rarely think about all the customers that churned because they never thought it would come.
Challenge your team to be better. Challenge them to be ruthless.