Skip to content

Friction Map

This page breaks down review friction by code area — identifying which domains, file regions, and labels correlate with higher friction.

Parsed from conventional commit format type(scope): description. Only scopes with ≥5 PRs are shown.

ScopePRsMedian ReviewsMedian TTM (h)Changes Requested RateMedian Churn
github85.515.270.0%268.5
seer283.51.690.0%89.5
attachments53.013.400.0%113.0
onboarding73.0102.850.0%266.0
workflows142.518.640.0%152.5
aci172.018.720.0%76.0
autofix292.02.570.0%50.0
dashboards232.01.850.0%55.0
nav52.012.840.0%52.0
occurrences on eap62.024.350.0%89.5
  • github is the highest-friction scope by median reviews (5.5). The GitHub integration domain involves OAuth flows, pipeline state management, and security considerations — themes we see recurring in the discussion analysis.
  • onboarding has the longest TTM at 102.85 hours median, despite moderate review counts. This suggests bottlenecks other than review discussion (perhaps waiting for design approval or cross-team coordination).
  • seer and autofix are high-volume but relatively low-friction, suggesting these areas have clearer conventions or dedicated reviewer familiarity.
  • Zero formal CHANGES_REQUESTED across all scopes reinforces that Sentry’s friction manifests through comment threads, not formal review states.

File domain is derived from the first two path segments of changed files. This captures which parts of the codebase generate the most review discussion.

DomainPRsMedian ReviewsMedian TTM (h)Changes Requested RateMedian Churn
CODEOWNERS264.013.980.0%164.0
migrations lockfile53.016.140.0%182.0
static/gsApp133.019.460.0%145.0
tests/js63.02.470.0%68.5
tests/sentry1373.04.840.0%89.0
tests/snuba102.544.930.0%91.0
src/sentry2452.06.620.0%74.0
static/app2202.010.350.0%73.0
  • PRs touching CODEOWNERS have the highest median review count (4.0). These are cross-cutting changes that likely require approval from multiple code owners.
  • static/gsApp (legacy frontend namespace) has both high review counts and high TTM — possibly due to the complexity of maintaining legacy code alongside the newer static/app frontend.
  • tests/snuba has the highest TTM (44.93h) despite moderate review counts, suggesting these PRs involve complex data pipeline changes that take time to validate.
  • src/sentry (245 PRs, 49% of sample) and static/app (220 PRs, 44%) are the two dominant file domains, with relatively moderate friction levels.

Sentry’s label usage is sparse — most PRs carry only scope labels:

LabelPRsMedian ReviewsMedian TTM (h)
Trigger: Revert65.0varies
Scope: Backend2742.0varies
Scope: Frontend2392.0varies

The Trigger: Revert label is associated with the highest review counts. Revert PRs often signal a prior mistake that needs investigation, which drives additional discussion.

The backend/frontend split is roughly even (274 vs 239), but labels alone don’t provide enough granularity for meaningful friction segmentation. Title scope and file domain are more useful dimensions.

The domains with consistently elevated friction are:

  1. GitHub integration (github scope) — complex OAuth/security flows
  2. Onboarding (onboarding scope) — longest TTM, cross-team coordination
  3. Cross-cutting changes (CODEOWNERS-touching PRs) — multi-owner approval
  4. Legacy frontend (static/gsApp) — maintaining old patterns alongside new
  5. Snuba-related tests (tests/snuba) — complex data pipeline validation

These hotspots correlate with the discussion themes identified from comment analysis: security, state management, and API design are the dominant themes in these high-friction domains.