Skip to content

Commit f11e18f

Browse files
annikaschmidclaudecleo-pleurodon
authored
docs(handbook): clarify release vs. launch process and early access flow (#18600)
* docs(handbook): clarify release vs. launch process and early access flow Restructures the phase 4 section to distinguish releases (product team) from launches (marketing), documents the early access features vs. feature previews distinction, and normalizes team name casing (marketing/billing) to sentence case. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * images * Update contents/handbook/product/releasing-new-products-and-features.md Co-authored-by: Cleo <cleo@posthog.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: Cleo <cleo@posthog.com>
1 parent 867c76c commit f11e18f

2 files changed

Lines changed: 69 additions & 45 deletions

File tree

contents/handbook/marketing/product-announcements.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ For new product announcements we generally apply the following best practices:
8585
- Ensure the product has at least one tutorial created for it at launch. [example](/docs/feature-flags/tutorials)
8686
- Ensure launch activities (such as changelog) link clearly to the docs.
8787
- Ensure the product is added to email and in-app onboarding flows.
88-
- Ensure the product is added to the [pricing page](/pricing) (this is typically owned by the product team's PM and the <SmallTeam slug="billing" />)
88+
- Ensure the product is added to the [pricing page](/pricing) (this is typically owned by the product team's PM and the <SmallTeam slug="billing" /> as part of the product's release)
8989
- Add a 🚀 annotation in [our PostHog project](https://us.posthog.com/project/2/data-management/annotations) on the launch date, so the launch's impact is visible on dashboards.
9090
- Submit an [art request](/handbook/brand/art-requests) for any creative assets needed for the email campaign, blog post, social media posts etc...
9191

contents/handbook/product/releasing-new-products-and-features.md

Lines changed: 68 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,26 @@ New products at PostHog go through four phases:
1818
1. **Setting up** - Initial planning and alpha development behind a feature flag
1919
2. **Alpha** - Slowly adding customers you've spoken with to the feature flag
2020
3. **Beta** - Opening up to all users who want to opt-in
21-
4. **General availability (GA)** - Full launch with pricing and marketing
21+
4. **General availability (GA)** - Full release with pricing, and marketing launch
2222

23-
PostHog includes a variety of early access features in [the feature previews section of a users' settings page](https://app.posthog.com/settings/user-feature-previews), as well as a roadmap of feature previews which are coming soon.
23+
Please refer to the new product RFC for what the actual steps are. Duplicating them here would cause them to go out-of-sync extremely quickly. We'll simply explain the rationale behind each of the stages.
2424

25-
Items in the feature previews section can be toggled on or off if users want to try a feature out. Items in the coming soon section enable users to register their interest so that we can contact them with updates. Both sections work only at the user-level and not at the org or project level.
25+
### Early access features vs. feature previews
2626

27-
Please refer to the RFC for what the actual steps are. Duplicating them here would cause them to go out-of-sync extremely quickly. We'll simply explain the rationale behind each of the stages.
27+
Two related concepts power most of the lifecycle below, and it's worth being precise about them because they're easy to confuse:
28+
29+
- **Early access features** are what *you* (the product team) create and manage in the [Early Access Management](https://us.posthog.com/early_access_features) tab. Each early access feature is linked to a feature flag and moves through stages — `draft``concept``alpha``beta``general availability` — that control who gets the feature. This is the producer side.
30+
- **Feature previews** are the *user-facing* UI where people opt in to your early access features, in [the feature previews section of their settings](https://us.posthog.com/settings/user-feature-previews). It has two tabs: **Previews**, where users toggle active (`alpha`/`beta`) features on or off to try them, and **Coming soon**, where they register interest in `concept`-stage features so we can contact them with updates. This is the consumer side.
31+
32+
In short: you set a feature's stage in **Early Access Management**, and users act on it in **feature previews**. Both work at the user level only, not the org or project level.
2833

2934
## Phase 1: Setting up a product
3035

31-
Adding items to the coming soon menu early offers several advantages. It enables us to gauge interest in a new feature via sign-ups, equips our marketing teams with news they can promote to users, and ensures that betas can have sample users ready from the moment they launch.
36+
Create an early access feature in the `concept` stage early. Concept-stage features appear in the **Coming soon** tab of feature previews, and adding them early offers several advantages. It enables us to gauge interest in a new feature via sign-ups, equips our marketing teams with news they can promote to users, and ensures that betas can have sample users ready from the moment they launch.
3237

3338
When someone joins a coming soon waitlist (in-app or on posthog.com), a `$feature_enrollment_update` event with `$feature_enrollment_stage: concept` is sent to Customer.io through a data pipeline, and they immediately receive a simple confirmation that they're on the waitlist. See [onboarding and lifecycle emails](/handbook/marketing/onboarding-and-lifecycle-emails#the-waitlist-alpha-beta-onboarding-flow) for the full flow.
3439

35-
Coming soon features can either be large or small, so use your judgement about what is of interest to users, but it should be something that you expect to work on in the next 3-6 months.
40+
Concept features can either be large or small, so use your judgement about what is of interest to users, but it should be something that you expect to work on in the next 3-6 months.
3641

3742
## Phase 2: Alpha
3843

@@ -42,45 +47,48 @@ During alpha, you're testing with a small group of customers you've specifically
4247

4348
Beta is when you open up the product to all users who want to opt-in. Betas do not need to have been in `concept` stage first.
4449

45-
<CalloutBox icon="IconInfo" title="Moving from Concept to Beta" type="fyi">
50+
### Moving a feature to beta
4651

47-
Once you are ready to move an item from the coming soon roadmap to a beta which users can interact with, update the stage from `concept` to `beta` (or `alpha`). Users who registered interest during the concept stage are automatically opted in to the new stage, and a `user moved feature preview stage` event fires for each of them — when the `from` property is `concept` and the `to` property is `alpha` or `beta`, this triggers an automatic email letting them know the feature is enabled and now available, and asking for feedback.
52+
In [Early Access Management](https://us.posthog.com/early_access_features), update the feature's stage from `concept` to `beta` (or `alpha`). This does two things:
4853

49-
Make sure your early access feature flag includes a `product_key` on the payload field to give people access to the product in their sidebar. Check the new product RFC for more details.
54+
- The feature moves from the **Coming soon** tab into the **Previews** tab of feature previews, so users can opt in to enable it.
55+
- Users who registered interest during the `concept` stage are automatically opted in to the new stage, and a `user moved feature preview stage` event fires for each of them — when the `from` property is `concept` and the `to` property is `alpha` or `beta`, this triggers an automatic email letting them know the feature is enabled and now available, and asking for feedback.
5056

51-
</CalloutBox>
57+
Make sure the linked feature flag includes a `product_key` on the payload field to give people access to the product in their sidebar. Check the new product RFC for more details.
5258

53-
### Beta requirements
59+
To give customers a minimum amount of information and usability, set up the early access feature so that:
5460

55-
A beta doesn't need to be perfect, but it should provide value to the user and have base elements of functionality. It doesn't need to be feature complete, but it should provide more than a mocked up front end. We aim not to leave items in beta unless they are in active development. All betas should be clearly documented.
61+
- It has a title and short description
62+
- It has a 'Give feedback' button
63+
- It has documentation (marked as beta) linked to it
64+
- It has a [feature owner](/handbook/engineering/feature-ownership)
65+
- It has a `product_key`
5666

57-
Betas do not need to be performant for high-volume users and can have big bugs, but should be clearly marked as such in the UI.
67+
Titles, descriptions, and links are all set on the early access feature in [Early Access Management](https://us.posthog.com/early_access_features). Product teams are responsible for [writing documentation](/handbook/engineering/writing-docs), but the <SmallTeam slug="content" /> can help, if needed.
5868

59-
<CloudinaryImage
60-
src="https://res.cloudinary.com/dmukukwp6/image/upload/goodbeta_daa2ddca2a.png"
61-
alt="An example of a good beta"
62-
className="dark:hidden"
63-
/>
64-
<CloudinaryImage
65-
src="https://res.cloudinary.com/dmukukwp6/image/upload/goodbeta_dark_1dd8b2e833.png"
66-
alt="An example of a good beta"
67-
className="hidden dark:block"
68-
/>
69+
<div className="flex justify-center">
70+
<CloudinaryImage
71+
src="https://res.cloudinary.com/dmukukwp6/image/upload/goodbeta_daa2ddca2a.png"
72+
alt="An example of a good beta"
73+
className="dark:hidden"
74+
/>
75+
<CloudinaryImage
76+
src="https://res.cloudinary.com/dmukukwp6/image/upload/goodbeta_dark_1dd8b2e833.png"
77+
alt="An example of a good beta"
78+
className="hidden dark:block"
79+
/>
80+
</div>
6981
<Caption>Betas should include a title, description, feedback button, payload with `product_key` and link to basic docs</Caption>
7082

71-
All betas should follow the best practices below in order to provide a minimum amount of information and usability for customers.
83+
### Beta requirements
7284

73-
- Betas in the feature preview menu should include a title and short description
74-
- Betas in the feature preview menu should include a 'Give feedback' button
75-
- Betas in the feature preview menu should have documentation (marked as beta) linked to them
76-
- Betas should have a [feature owner](/handbook/engineering/feature-ownership)
77-
- Betas should have a `product_key`
85+
A beta doesn't need to be perfect, but it should provide value to the user and have base elements of functionality. It doesn't need to be feature complete, but it should provide more than a mocked up front end. We aim not to leave items in beta unless they are in active development. All betas should be clearly documented.
7886

79-
Product teams are responsible for [writing documentation](/handbook/engineering/writing-docs), but the <SmallTeam slug="content" /> can help, if needed. Titles, descriptions, and links can be added using [the early access menu](https://us.posthog.com/project/2/early_access_features).
87+
Betas do not need to be performant for high-volume users and can have big bugs, but should be clearly marked as such in the UI.
8088

8189
<CalloutBox icon="IconInfo" title="Launching a new beta?" type="fyi">
8290

83-
It's helpful to let the Marketing teams know when new betas are added. They'll then add the beta to [the changelog](/changelog), organize any marketing announcements, plan [a full announcement](https://github.com/PostHog/meta/issues/new?template=launch-plan-.md) for full release, create an email onboarding flow to help you collect user feedback, and anything else you need. You can let them know via [the Marketing Slack channel](https://posthog.slack.com/archives/C08CG24E3SR).
91+
It's helpful to let the marketing team know when new betas are added. They'll then add the beta to [the changelog](/changelog), organize any marketing announcements, plan [a full announcement](https://github.com/PostHog/meta/issues/new?template=launch-plan-.md) for full release, create an email onboarding flow to help you collect user feedback, and anything else you need. You can let them know via [the marketing Slack channel](https://posthog.slack.com/archives/C08CG24E3SR).
8492

8593
</CalloutBox>
8694

@@ -94,30 +102,46 @@ Regardless, replies to this Google Group are relayed into the [#posthog-feedback
94102

95103
Teams can collect additional feedback if needed and the <SmallTeam slug="website" /> is able to help with creating feedback emails or funnels.
96104

97-
## Phase 4: Launching to general availability
105+
## Phase 4: Releasing & launching to general availability
98106

99107
Once a beta is mature enough, you may want to launch it into general availability (GA).
100108

101-
**If you're planning to launch your product in a specific quarter, you MUST let the Marketing team know at the start of the quarter.**
109+
For clearer ownership, we distinguish between releases and launches.
102110

103-
Smaller features which don't require [major announcements](/handbook/marketing/product-announcements) should be announced internally via the [Tell PostHog Anything channel](https://posthog.slack.com/archives/C0351B1DMUY) so other teams are aware.
111+
From the [handbook page on product launches](/handbook/marketing/product-announcements):
112+
113+
> A **release** is when a product or feature becomes available to existing users for the first time. This is the product team's responsibility. The PM or team lead drives it, using their own release checklist. A release can be gradual, targeted, or fully open.
114+
>
115+
> A **launch** gets a product in front of existing and new people – potentially millions who've never heard of us. This is led by marketing with the product marketer working from the launch checklist. If there is disagreement within a team about whether something is ready to launch, that team's lead should make the decision - it's either on or it's off ("we want to launch, but not yet" is off).
116+
117+
### Releases
118+
119+
Releases are typically owned by the team lead or the PM. When planning a release, consider the following:
120+
121+
- **Product readiness** - Is the product ready for GA? Because a GA product is available to PostHog's whole user base, it should meet higher standards for feature set and quality than a beta product.
122+
- **Pricing** - Does the release include pricing? A GA release typically does, as per our [pricing principles](/handbook/engineering/feature-pricing).
123+
- **Release goals** - What do we want to get out of this release (and launch)? Are there objectives or metrics we want to target?
124+
- **Rollout plan** - How is the product going to be rolled out, to whom, and over what timeframe (e.g. 20% of users day over day)? Create cohorts if applicable.
104125

105-
You can set the feature flag to release to 100% of users BEFORE the Marketing launch, you don't need to wait for it.
126+
For complex new product releases, we recommend setting up a Slack channel to coordinate with marketing and billing, and a Slack canvas that answers the above topics, linking to the new product RFC, pricing RFC and launch checklist for this product.
106127

107-
See [product announcements](/handbook/marketing/product-announcements) for marketing requirements during launch.
128+
### Launches
129+
130+
See [product announcements](/handbook/marketing/product-announcements) for details.
131+
132+
**If you're planning to launch your product in a specific quarter, you MUST let the marketing team know at the start of the quarter.**
133+
134+
Smaller features which don't require [major announcements](/handbook/marketing/product-announcements) should be announced internally via the [Tell PostHog Anything channel](https://posthog.slack.com/archives/C0351B1DMUY) so other teams are aware.
108135

109-
> **How do I work with marketing and billing teams?**
110-
> The short version here is to try and give other teams as much notice as possible when starting a launch cycle. Marketing and billing teams typically ask for two weeks of notice before a major launch, as a minimum. It's the responsibility of the team lead to ensure these teams are aware of upcoming launches.
136+
### Edge case: open betas
111137

112-
## Who's responsible?
138+
Sometimes we run an **open beta**, most often for AI products. Here we need to ship pricing earlier than usual because of the costs incurred, and we want to start marketing earlier too. However, the product quality doesn't necessarily meet our GA bar yet, which is why we keep the beta label.
113139

114-
The Team Lead is typically responsible for:
140+
For open betas, follow the same process you would for GA: a release first, then a marketing launch.
115141

116-
- Creating and managing the RFC
117-
- Keeping Marketing and Billing teams informed about product progress
118-
- Ensuring timely communication (at least 2-3 weeks notice before a major launch)
142+
### How do I work with marketing and billing teams?
119143

120-
Team members can be assigned specific tasks within the RFC checklist.
144+
> The short version here is to try and give other teams as much notice as possible when starting a release & launch cycle. Marketing and billing teams typically ask for two weeks of notice before a major launch, as a minimum. It's the responsibility of the team lead to ensure these teams are aware of upcoming launches.
121145
122146
## Related resources
123147

0 commit comments

Comments
 (0)