TSYSGroupHandbook/SourceMaterial/strategy/prioritization.md

209 lines
6.5 KiB
Markdown

---
title: Prioritization
sidebar: Handbook
showTitle: true
---
As there is a lot of autonomy at PostHog, it's useful to have a common framework for how to make prioritization decisions.
## Our mission
Our mission is to increase the number of successful products in the world.
To achieve this, we will need revenue to be able to re-invest into making a better product.
## How is our Product-Market Fit?
Below is a table of how we see our product-market fit for various sizes of companies and various job roles.
<span class="table-borders">
<table>
<tr>
<td></td>
<td>Enthusiast</td>
<td>Startup</td>
<td>Scaleup</td>
<td>Enterprise</td>
</tr>
<tr>
<td>Engineers / PMs with technical expertise</td>
<td style="background:var(--success)"></td>
<td style="background:var(--success)"></td>
<td style="background:var(--warning)">Scalability<br />Advanced analytics</td>
<td style="background:var(--warning)">Scalability<br />Advanced analytics</td>
</tr>
<tr>
<td>Non-technical PMs, marketing, sales, business</td>
<td style="background:var(--warning)">Too technical</td>
<td style="background:var(--warning)">Too technical<br />Feature set / integrations</td>
<td style="background:var(--warning)">Too technical<br />Feature set / integrations</td>
<td style="background:var(--warning)">Too technical<br />Feature set / integrations</td>
</tr>
<tr>
<td>Analysts</td>
<td style="background:var(--success)"></td>
<td style="background:var(--success)"></td>
<td style="background:var(--warning)">Direct SQL access<br />Plugins for data lakes</td>
<td style="background:var(--warning)">Direct SQL access<br />Plugins for data lakes</td>
</tr>
<tr>
<td>Enterprise procurement</td>
<td style="background:var(--muted)"></td>
<td style="background:var(--muted)"></td>
<td style="background:var(--muted)"></td>
<td style="background:var(--warning)">SOC 2<br />VPC</td>
</tr>
</table>
</span>
As you can see, we have good product-market fit with engineers generally, and specifically for enthusiasts and startups.
## Value
Now let's look at how building things for the different size companies helps us achieve our two goals:
1. Increase the number of successful products in the world
2. Increase revenue so we can re-invest in #1
Given scores from 1-5, here's how each type of company stacks up against those two values.
<span class="table-borders">
<table>
<tr>
<td></td>
<td>Enthusiast</td>
<td>Startup</td>
<td>Scaleup</td>
<td>Enterprise</td>
</tr>
<tr>
<td>Successful products</td>
<td>Low (1/5)</td>
<td>Very high (5/5)</td>
<td>High (4/5)</td>
<td>Low (1/5)</td>
</tr>
<tr>
<td>Revenue</td>
<td>Low (1/5)</td>
<td>Mid (2/5)</td>
<td>High (4/5)</td>
<td>Very high (5/5)</td>
</tr>
<tr>
<th>Combined</th>
<th>Low (1/5)</th>
<th>High (3/5)</th>
<th>High (3.5/5)</th>
<th>High (3/5)</th>
</tr>
</table>
</span>
## Putting it together
When thinking of building a new feature, we can combine the product-market fit table and the priority table into one.
We have three options for each box:
- Deprecate: stop supporting
- Maintain: fix bugs but don't introduce new features
- Grow: fix bugs, do marketing and make PostHog easier to get started with but don't build new features.
- Build: all of the above + building new features specifically for these categories
<span class="table-borders">
<table>
<tr>
<td></td>
<td>Enthusiast</td>
<td>Startup</td>
<td>Scaleup</td>
<td>Enterprise</td>
</tr>
<tr>
<td>Engineers</td>
<td style="background:var(--muted)" rowspan="3">Maintain</td>
<td style="background:var(--success)">Build</td>
<td style="background:var(--success)">Build</td>
<td style="background:var(--success)">Build</td>
</tr>
<tr>
<td>Non-technical roles</td>
<td style="background:var(--muted)">Maintain</td>
<td style="background:var(--muted)">Maintain</td>
<td style="background:var(--muted)">Maintain</td>
</tr>
<tr>
<td>Analysts</td>
<td style="background:var(--muted)">Maintain</td>
<td style="background:var(--success)">Build</td>
<td style="background:var(--success)">Build</td>
</tr>
<tr>
<td>Enterprise procurement</td>
<td style="background:var(--muted)" colspan="3">N/A</td>
<td style="background:var(--success)">Build</td>
</tr>
</table>
</span>
## Comparing features
If you're trying to decide between two things to work on, a useful exercise can be the following:
1. Estimate the number of successful products that could come out of each category globally (example numbers given)
2. Estimate the amount of revenue we could grab from those categories (example numbers given)
3. Estimate how many of the successful products we could create if we had this feature
4. Estimate how much revenue we could get if we had this feature
5. Repeat steps 1-4 for the feature you're trying to compare
For example, for our virtual private cloud feature we came up with the following numbers:
<span class="table-borders">
<table>
<tr>
<td></td>
<td>Enthusiast</td>
<td>Startup</td>
<td>Scaleup</td>
<td>Enterprise</td>
</tr>
<tr>
<td>Global successful products</td>
<td>10m</td>
<td>1m</td>
<td>10k</td>
<td>10k</td>
</tr>
<tr>
<td>Global revenue</td>
<td>$0</td>
<td>$240m</td>
<td>$500m</td>
<td>$4B</td>
</tr>
<tr>
<td>Additional successful products from feature</td>
<td>0%</td>
<td>5%</td>
<td>5%</td>
<td>10%</td>
<th>51.5k</th>
</tr>
<tr>
<td>Additional revenue from feature</td>
<td>0%</td>
<td>15%</td>
<td>15%</td>
<td>30%</td>
<th>$1,311m</th>
</tr>
</table>
</span>
The point of this exercise is not to come up with the 'correct' numbers. The point is to go through a thought exercise that'll help you figure out the impact of what you're working on.
The idea also isn't that you should do this for every feature you build. Instead, you'll now have a framework for how to think about the impact of what you're building.