Friction Detector
Systematically identify friction across 10 categories that reduce development velocity, code quality, and team effectiveness.
Guiding Principle
"Friction is invisible until you measure it. Small frictions compound into massive slowdowns."
Procedure
Step 1 — Tooling & Build Friction
- Measure build/compile time and identify bottlenecks.
- Check for missing caching in build pipeline.
- Assess IDE support quality: type checking speed, autocomplete, error detection.
- Identify manual steps that should be automated.
- Score: 0 (no friction) to 10 (severe friction) per category.
Step 2 — Code & Architecture Friction
- Complexity friction: Functions/classes too large or complex to understand quickly.
- Coupling friction: Changes in one module require changes in many others.
- Naming friction: Inconsistent or misleading names that require context-switching.
- Pattern friction: Multiple patterns for the same problem (inconsistency).
- Abstraction friction: Wrong abstraction level — too abstract or too concrete.
Step 3 — Process & Workflow Friction
- Review friction: PR review bottlenecks, unclear review standards.
- Testing friction: Slow tests, flaky tests, difficult test setup.
- Deployment friction: Manual steps, long deployment times, risky rollbacks.
- Communication friction: Tribal knowledge, missing documentation, unclear ownership.
- Onboarding friction: Time to productivity for new team members.
Step 4 — Friction Report
- Score each of the 10 categories on a 0-10 scale with evidence.
- Calculate a total friction index (sum / 100).
- Identify the top 3 friction multipliers (frictions that make other frictions worse).
- Recommend friction-reduction actions ranked by effort vs. impact.
Quality Criteria
- Each friction score backed by specific evidence
[HECHO]
- All 10 categories assessed, not just the obvious ones
- Friction multipliers identified (cascading effects)
- Recommendations include effort estimates
Anti-Patterns
- Only measuring build time as a proxy for all friction
- Ignoring cognitive and process friction (they're harder to measure but often worse)
- Treating friction reduction as a one-time project instead of ongoing practice
- Blaming individuals instead of identifying systemic friction sources