Each feature at PostHog has an Engineering owner. This owner is responsible for maintaining the feature (keep the lights on) and championing any efforts to improve it (e.g. by bringing up improvements in sprint planning).
When a bug or feature request comes in, we tag it with the relevant label (see labels below). The owner is responsible for then prioritizing any bug/request that comes in for each feature. This does not mean working on every bug/request, an owner can make the deliberate decision that working on something is not the best thing to work on, but every request should be looked at.
💡 The Team Platform works a bit differently. Each subteam owns certain parts of PostHog. Among other things, this helps reduce any lead time when critical fixes are needed. Please review the Team Platform page for further details.
You can also view the list directly in GitHub and filter issues there.
|Actions||Team Product Analytics||feature/actions|
|Actors Modal||Team Product Analytics||feature/actors-modal|
|Annotations||Team Product Analytics||feature/annotations|
|API Structure||Security + core updates owned by Team Pipeline. Features owned by the relevant small team||feature/api-structure|
|Application Performance Monitoring (APM)||Team Product Analytics||feature/apm|
|Async migrations||Team Pipeline||feature/async-migrations|
|Client libraries||Security + core updates owned by Team Pipeline. Features owned by the relevant small team||feature/pipeline|
|Correlation Analysis||Team Experimentation||feature/correlation-analysis|
|Dashboards||Team Product Analytics||feature/dashboards|
|Data Management||Team Product Analytics||feature/data-management|
|Events||Team Product Analytics||feature/events|
|Feature Flags||Team Experimentation||feature/feature-flags|
|Funnels||Team Product Analytics||feature/funnels|
|Group Analytics||Team Product Analytics||feature/group-analytics|
|Lifecycle||Team Product Analytics||feature/lifecycle|
|Paths||Team Product Analytics||feature/paths|
|Platform (US + EU)||Team Infrastructure||feature/platform|
|Project Home Page||Team Product Analytics||feature/home|
|Property Filters||Team Product Analytics||feature/filters|
|Recordings||Team Session Recording||feature/recordings|
|Retention||Team Product Analytics||feature/retention|
|Saved Insights||Team Product Analytics||feature/saved-insights|
|Session Analytics||Team Product Analytics||feature/sessions|
|Settings (personal & project)||@liyiy||feature/settings|
|Stickiness||Team Product Analytics||feature/stickiness|
|Toolbar||Team Product Analytics||feature/toolbar|
|Trends||Team Product Analytics||feature/trends|
Why did we establish feature owners?
At our Engineering Offsite in February 2022 we realized the issue that some bugs and maintenance tasks may have been falling through the cracks because there were no clear owners.
Don't just copy other products
Some of the features we are building may exist in other products already. It is fine for us to be inspired by them - there's no need to reinvent the wheel when there is already a standard way our users expect things to work. However, it is not ok for us to say 'let's copy how X does it', or to ship something with the exact same look and feel as another product. This is bad for two reasons:
- We're highly unlikely to overtake everyone else if we just build the open source version of everything that is already out there.
- We may expose ourselves to legal risk/challenges from those companies, especially if they can point to a public issue where we have said 'let's copy X'.