posthog
posthog copied to clipboard
Sprint - Apr 29 to May 10, 2024
Global Sprint Planning
Last sprint before the offsite!
3 things that might take us down
- A volcano at the offsite
Team sprint planning
For your team sprint planning copy this template into a comment below for each team.
# Team ___
**Support hero:** ___
## Retro
<!-- Grab the high and low priority items from last time and add whether that item was completed or not -->
-
## Hang over items from previous sprint
<!-- For each item, decide to re-prioritise (and add below) or deprioritise -->
- Item 1. prioritised/deprioritise
## OKR
1. OKR, status (red/yellow/green) and action points if yellow/red
### High priority
-
### Low priority / side quests
-
Team "Analyze Your Product"
- Support hero: Marius
- Thomas is scheduled to be back
- Julian is here for a full week (hopefully) and then off for 2 working on replication issues
- Sandy is starting already this week!
Retro
- We're getting a new colleague tomorrow!
- Insights rolled out to everyone, fixing residue bugs now.
- About a dozen queries in complex combinations fail, but feels like we fixed at least as many old things that didn't work.
- Currently the biggest non-query issue is dashboards showing old insights. It is actively worked on.
- The amount of new stuff being reported has dropped significantly
- The rollout uncovered many of bugs. Could we have done better?
- A bit of short term pain for moving faster is worth it.
- What's better, one extra month of testing in the dark or one extra week of fixing exactly the right things? π€
Hang over items from previous sprint
- Bugs.
OKR
-
HogQL-based querying
- Convert the remaining legacy queries to HogQL and release to public (Thomas, Julian, Marius)
- π’ Insights β they are rolled out!! (still some bugs)
- βͺ Cohorts
- Remove legacy querying backend (Thomas, Julian)
- π Clean up or rewrite dashboardLogic π this sprint
- π Convert filters to query (insights, notebooks, activity log, experiments) π this sprint
- Missing Product Analytics features (Thomas, Julian)
- βͺ Breakdowns (multiple) in literally everything
- π Make a list based on GitHub issues from customer requestsβ¦ π this sprint
- βͺ Fix those issues
- Missing HogQL features (Tom, Marius)
- π Type system, JSON π Data Warehouse is on this
- βͺ Missing things when building funnels
- Convert the remaining legacy queries to HogQL and release to public (Thomas, Julian, Marius)
-
Querying and processing performance (Thomas, Julian)
- Global performance overview dashboards
- βͺ Insights
- βͺ Exports
- βͺ Cohort recalculations
- Query request tracing
- βͺ Possibly query runner Python optimizations
- βͺ Exports improvements
- βͺ Identify top 5 query optimizations in terms of impact
- Global performance overview dashboards
-
Artificial Hog / Post Intelligence (Michael)
- βͺ Ask a question to get a magical insight (aware of your taxonomy)
- βͺ Figure out infra for upgrading queries and models
- βͺ Product-wide framework for opting into sharing with OpenAI
-
Activation (side quest: Michael)
- βͺ Michael to work with Growth to identify optimizations to getting started with Product Analytics
High priority
Better tracked here: https://github.com/PostHog/meta/issues/130
- 100% of all insight results for everyone use the new HogQL backend @mariusandra
- Clean up insights - everyone
- Fix existing insight bugs - everyone
- Convert filters to query for the
/api/../insight
endpoints - Remove all old legacy code @thmsobrmlr
- Fix dashboardLogic @webjunkie
Low priority / side quests
Better tracked here: https://github.com/PostHog/meta/issues/200
- Fix shared dashboards reloads @Twixes
- Start developing the new insight features
- Project environments
Team Growth
Retro
Retro items
High priority
- @raquelmsmith
- [x] Support billing for person processing addon
- [ ] Dashboard creation from onboarding - nope
- [ ] Feature gating for activity panel - nope
- Migrate customers
- [ ] Feature gating for automatic provisioning - nope
- Migrate customers
- @xrdt
- [x] Create CustomerToStripeCustomer table so multiple stripe customers can be associated with a single django customer
- Make sure all invoices are synced correctly
- [x] Create CustomerToStripeCustomer table so multiple stripe customers can be associated with a single django customer
- @zlwaterfield
- [x] RFC for simpler upgrading
- [x] Move the Growth 2.0 dashboard to a Notebook and finish it the charts we have data for
- [x] Helping Ian improve Next.js documentation
- [ ] Continue email verification investigation
- [x] Review / test Michaelβs dark mode PR: https://github.com/PostHog/posthog/pull/21149
- [x] Looking at some recurring Sentry bugs (e.g https://github.com/PostHog/billing/pull/499)
- [x] CORS issue for Next.js reverse proxy
- [x] Billing as a product competition/market analysis and breakdown of possible features
- Metrics to watch:
- How many organizations sign up without a name: https://us.posthog.com/project/2/insights/SmImt4r7 (see if this is an indicator of lower chance to subscribe to paid plan)
- Sign up benefits - generic, vs product analytics focused vs logs: https://us.posthog.com/project/2/experiments/24738
Q2 Goals
β =finished π‘=in progress π΄=won't finish
- βͺ Create a flow in product analytics onboarding to fill out a dashboard template using actions (Raquel)
- π‘ Simplify our subscription flows (Zach, supported by Raquel)
- π‘ Launch pricing changes (Bianca, Raquel)
- π‘ Personless events - will help us reach more customers at an affordable price
- Data warehouse - it's becoming pretty useful, we should charge for it
- Session replay - we can reduce costs to improve retention and reach more people
This sprint
High priority
- @raquelmsmith
- Out 1.5 days this sprint
- [x] UI for person profiles addon
- [x] General project management & comms for person profiles addon
- [ ] Feature gating for activity panel
- Migrate customers
- [ ] Feature gating for automatic provisioning
- Migrate customers
- @xrdt
- [x] Put tasks into celery
- [x] Put sync_invoices tasks into celery so we can unlock parallelization and process isolation
- Now have grafana metrics
- [ ] Billing admin improvements
- [ ] Make plans_map json a series of selects so it's less error-prone
- [x] Find a way to enhance history messages for inlined objects (CustomerToStripeCustomer relation)
- [ ] compare_prices improvements
- [ ] Add tests, make sure things like compare prices when we are overriding price_id_overrides works.
- [x] Put tasks into celery
- @zlwaterfield
- [x] Get teams plan addon shipped
- [x] New Teams Plan in app Billing UI
- [ ] Work through changes to subscribe to all products - billing page, pricing page, activation logic, pay gates, etc. - will do next week
- [x] Better loading states for activate/deactivate subscriptions
- [x] Help Frank get Frank Django 3.10 out w/ upgrade to nginx
- [ ] (nice to have) Do some cleaning of the billing repo - looking at https://github.com/HackSoftware/Django-Styleguide and trying to make the logic a cleaner and easier to read / debug
- [x] Has first PR that pulls trust scores out into a service
- [ ] (nice to have) Look into email subscription (this seems like an important topic to make sure we're staying compliant - https://posthog.slack.com/archives/C043VJ93L3B/p1713538664642819)
Team Hogql-play
Support hero: @pauldambra
- bank holiday monday
- david out a few days
items from previous sprint
High priority
π‘ add an optional screenshot capture option to Android replay for people that want to trade performance for fidelity @marandaneto π‘ make usage report changes for mobile replay @pauldambra β UX improvements https://github.com/PostHog/posthog/issues/21302#issuecomment-2045882184 @daibhin
OKR
- OKR, status (red/yellow/green) and action points if yellow/red
- π‘ quality and consolidation
- mobile replay open beta
- replay captures every site
- people can find the valuable recordings
- π‘ Error tracking MVP
- π‘ Hire 2 amazing colleagues
High priority
- hiring (@pauldambra)
- hogql filters (@daibhin with @pauldambra supporting)
- Replace posthog-java with posthog (The core of the Android SDK written in Kotlin) issue. (@marandaneto )
- Fixes a long request feature such as feature flags for Java
- And critical issues such as this one
Low priority / side quests
- mobile usage report stuff @pauldambra
- persistent replay queue in posthog-js @pauldambra
- Remove last of the antd components @daibhin
- Explore new filtering UI options (what's possible post HogQL world) @daibhin
Team Infra
Hang over items from previous sprint
- π’ Get app onto Canary deploys now that we are on contour @danielxnj
- π’ Test out capture-rs traffic with contour @frankh
- π’ Interviews. @benjackwhite
- π’ Canary roll out to every deployment @frankh
- π’ Work with Xavier and the pipeline team on traffic mirroring using contour @frankh
- π‘ Get flagged PoC for proper permissions out @benjackwhite
- Still last work to do (couldn't do it due to security work)
- π‘ Work to improve security around DRF views @benjackwhite
- π‘ Secret management tooling PoC
- Vault deployed on dev. Slowly testing out the app deployments to use it
- π‘ Test out SEIM tooling
- π’ Moved Django to async
- π’ Static IP list for allow listing
OKR
- πͺ Deploy with confidence π‘
- Finalize our Canary Deploy process π‘
- Support rust capture to full release using traffic shaping π’
- π¨ Improved alerting and monitoring π‘
- Some updates to Loki to perform better
- π Deeper Security π’
- π° Continued cost control π’
- π Splitting up the monolith
High priority
- Get Vault UI and roles and accounts setup @danielxnj
- New kafka setup (i.e. correct zones and size for migrating over to) @danielxnj
- why? Space and performance limits raised the need to migrate over now
- Get some or all logs running into SIEM tool @danielxnj
- Documentation for Canary deploys so that people can use them @frankh
- Capacity planning dashboard with additional alerting @frankh
- Verify and then document / publicize the IP allow list stuff @benjackwhite
- Rollout security improvement fixes @benjackwhite
- CDP v1.5 - Webhooks destination filtered by Action @benjackwhite
Side quests
- Release Heatmaps work @benjackwhite
Team Data Shack
OKR Q2 2024
Objective
Release data warehouse to everyone
-
Key Results:
- Integration first experience
- schemas are reliable
- modeling of each integration is clear
- Good automatic roll up views and joins
- Wizard to onboard people
- Establish a solid pattern to build integrations
- Complete data warehouse experience in the rest of the app (insights, feature flags, experiments)
- Integration first experience
James as a Service -> Clickhouse as a Service
-
Key Results:
- Better Visibility
- Regularly testing backups
- Monitoring/alerting
- Mutations
- Moves
- Management
- Managing/killing mutations
- Self Serve
- Schema design feedback (James non blocking
- Schema management
- Automation
- Replace/Upgrade replicas
- Upgrading to 24.04
- Disk configs
- Better Visibility
Retro
Product
- [ ] @EDsCODE WIP property typing system for hogQL. This has been a struggle with internal and external usage where unknown types have caused errors so worth working through
- [ ] @EDsCODE multiple joins in a query and multiple level views
- [x] @EDsCODE Figure out Incremental syncs
- [-] @Gilbert09 finish onboarding wizard. Will give new users a solid understanding of how to take advantage of the data warehouse capabilities in posthog
Infra
- [x] π§βπ¬ We have a test EKS cluster up using Karpenter and are testing Altinity CH Operator
- [x] A new Superday for CH Engineering/Operator role
- [x] A dash of firefighting π§βπ
High priority
Product Tom on Product Analytics Support for 2 weeks
- [ ] @EDsCODE Postgres integration all connection options. Spike of customer requests that really want this working
Infra
- [ ] Fully upgrade CH clusters to 23.12 and fix data discrepancies
- [ ] Deploy CH on EKS cluster against NVME storage
- [ ] Develop plan for CHKeeper migration
- [ ] Delete need to be fixed
Team Feature Success
Support hero: @jurajmajerik
Days off:
Juraj: 2 days
Neil: 1 days
Retro
- Write RFC for Surveys branching logic, create wireframes, and talk to YC & RG - @jurajmajerik β β©
- Get the surveys preview fix over the line https://github.com/PostHog/posthog/pull/20321 - @jurajmajerik β β©
- Data collection participants bug - set default to 20% for happy path, 50% for edges - @jurajmajerik β
- Explore experiment metrics easily in insights - @neilkakkar β
- Learn Rust, and minimal PoC of new feature flags service - @neilkakkar -> Not as much progress as I'd like, switched focus a bit to get some community contributions over the line. We now have ability to:
- Change start date of running experiment
- Duplicate a survey
- Automatically stop a survey when X responses reached
Hang over items from previous sprint
OKRs
- Make sure feature flags can handle 10x current scale
- Polish new experiments UI & collect feedback
- Add most requested surveys functionality
High priority
- Surveys branching logic - @jurajmajerik
- Make sure Phani's onboarding goes well - @neilkakkar
- Create dumb feature flags service in rust, write down steps to make it production ready - @neilkakkar
- Make repeatedly showing dismissed surveys more ergonomic - https://github.com/PostHog/posthog/issues/17863 - @Phanatic
- https://github.com/PostHog/posthog/issues/21654 - @Phanatic
Low priority / side quests / maybe Neil will get to this next year
- Temporal queues for feature success - @neilkakkar
- Setup instrumentation for flip-flopping problem of experiment significance - @neilkakkar
Team Web Analytics
Support hero: n/a though might be doing EU on call next week, not confirmed the swap yet
Retro
High priority
- [x] personless events problem solving whack-a-mole
Low priority
- [x] Add session properties and values endpoint
- [ ] get session property filters in web analytics rolled out and working for all queries on the page
Hang over items from previous sprint
n/a
OKR
- Make querying fast enough for large customers
- Do personless events work where necessary (unknown amount of work)
- Iterate on customer feedback
- Product management work
High priority
- continue supporting personless events
- EU on call
- get session property filters in web analytics rolled out and working for all queries on the page (if not finished this sprint)
Low priority / side quests
- Rolling out the session property filters for all queries, not just on web analytics
- Ploughing through small feature requests for web analytics
Team Pipeline
Off: Tomas (1 week), Xavier (4 days), Brett & Ted (2 days) Support: Brett
Retro
High priority
- [x] Person processing add-on phase 2 (Brett)
- [x]
capture-rs
mirrors the/batch
traffic ~(without writing to Kafka)~ and its error rate matches the python version (Xavier)- Writes to events_blackhole Kafka topic, on EU only for now
π’ Batch exports metrics, logs and notification improvements for users (Tomas) π‘ Pipeline UI (Tiina)
Low priority / side quests
- [ ] Changing what data pipeline add-on covers (Tiina)
OKR
β =finished π’=on track to finish this quarter π‘=might not finish π΄=won't finish βοΈ=progressed last sprint ; β‘οΈ=planned work for this sprint
π’βοΈβ‘οΈ Deprecate posthog-events by moving to capture-rs fully (21659) π’β‘οΈ Visibility into what's in the ingestion queues and past performance (20985) π’β‘οΈ Fast configuration options to speed up incident recovery, e.g. by token send to overflow or drop (21662) π’βοΈ Iterate on person processing to make it faster and cheaper (21048) π’βοΈβ‘οΈ Batch exports UX improvements, e.g. error notifications and UI rewamp (21139) π’ Person data batch export (20339) π’ Support adding new products (21665) π’ Deprecate scheduler & jobs deployments, runEveryX plugins and kafkajs consumers (21656)
High priority
- [ ] Kafka migration (Brett)
- [ ] Capture-rs successfully processing all /batch requests on EU (Xavier)
- [ ] Changing what data pipeline add-on covers (Tiina)
- [ ] Fast configuration option to send events to overflow from capture for replay events (Tomas)
- [ ] Fixing partition stats (Ted)
Low priority / side quests
- [ ]