5 min read • Guide 396 of 877
Code Quality Tracking
Code quality affects velocity, bugs, and team morale. Good quality tracking identifies trends and improvement areas. Bad tracking becomes bureaucratic overhead that teams ignore. This guide covers practical code quality measurement.
Quality Metrics
| Metric | Measures | Target |
|---|---|---|
| Test coverage | Test breadth | Trending up |
| Bug density | Defect rate | Trending down |
| Complexity | Maintainability | Stable/decreasing |
| Review time | Process health | < 1 day |
Key Metrics
What to Track
CODE QUALITY METRICS
════════════════════
TEST COVERAGE:
─────────────────────────────────────
What to track:
├── Line coverage (basic)
├── Branch coverage (better)
├── Coverage on new code (best)
├── Coverage trend over time
└── Direction matters
Good approach:
├── New code must maintain coverage
├── Track trend, not absolute
├── Identify untested critical paths
├── Quality of tests matters too
└── Meaningful coverage
BUG METRICS:
─────────────────────────────────────
├── Bugs found in production
├── Bug density (bugs per KLOC)
├── Time to fix
├── Escaped defect rate
├── Trend over time
└── Quality indicator
CODE COMPLEXITY:
─────────────────────────────────────
├── Cyclomatic complexity
├── Cognitive complexity
├── File/function length
├── Dependency count
├── Hot spots (complex + changed often)
└── Maintainability
CODE REVIEW:
─────────────────────────────────────
├── Time to first review
├── Time to merge
├── Review comments trend
├── Review thoroughness
├── Process health
└── Collaboration measure
Quality Gates
Automated Checks
QUALITY GATES
═════════════
CI PIPELINE GATES:
─────────────────────────────────────
Stage 1: Build
├── Compiles
├── Linting passes
├── Format check
└── Basic health
Stage 2: Tests
├── Unit tests pass
├── Integration tests pass
├── Coverage not decreased
└── Functional quality
Stage 3: Analysis
├── Security scan
├── Dependency check
├── Complexity check
├── Static analysis
└── Deep quality
EXAMPLE PIPELINE:
─────────────────────────────────────
build → lint → test → coverage → security → deploy
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
Must Must Must Check Check
pass pass pass trend alerts
QUALITY GATES CONFIG:
─────────────────────────────────────
# Example quality rules
coverage:
new_code_coverage: >= 80%
coverage_change: >= 0% # No decrease
complexity:
max_function_complexity: 15
max_file_length: 400
security:
high_severity: block
medium_severity: warn
Tracking in GitScrum
Integrating Quality
GITSCRUM QUALITY TRACKING
═════════════════════════
TASK LABELS:
─────────────────────────────────────
├── bug: Defects found
├── tech-debt: Quality work
├── refactor: Code improvement
├── test: Test addition
└── Categorize quality work
DEFINITION OF DONE:
─────────────────────────────────────
Include quality:
├── ☐ Tests written
├── ☐ Code reviewed
├── ☐ No new warnings
├── ☐ Documentation updated
├── Quality baked in
└── Not afterthought
BUG TRACKING:
─────────────────────────────────────
├── Log all bugs
├── Track source (dev, QA, prod)
├── Severity labels
├── Time to fix
├── Trend analysis
└── Quality visibility
QUALITY REPORTS:
─────────────────────────────────────
Sprint report includes:
├── Bugs created vs fixed
├── Tech debt addressed
├── Test additions
├── Quality trend
└── Regular review
Improvement Process
Getting Better
QUALITY IMPROVEMENT
═══════════════════
IDENTIFY HOTSPOTS:
─────────────────────────────────────
Focus effort:
├── Complex + frequently changed
├── High bug density areas
├── Untested critical paths
├── Developer pain points
├── Data-driven focus
└── Biggest impact
ALLOCATE TIME:
─────────────────────────────────────
Regular investment:
├── 10-20% for quality work
├── Each sprint, some improvement
├── Part of feature work
├── Not a separate phase
├── Continuous investment
└── Sustainable approach
MEASURE IMPROVEMENT:
─────────────────────────────────────
Track over time:
├── Coverage trending up?
├── Bug density trending down?
├── Complexity stable?
├── Team velocity stable/up?
├── Quality enabling speed?
└── Progress visible
CELEBRATE WINS:
─────────────────────────────────────
├── Note quality improvements
├── Share in retros
├── Recognize effort
├── Build momentum
└── Positive reinforcement
Best Practices
For Quality Tracking
- Trends over absolutes — Direction matters
- Automate gates — Quality in CI
- Part of definition of done — Baked in
- Regular investment — Each sprint
- Focus on hotspots — Biggest impact
Anti-Patterns
QUALITY TRACKING MISTAKES:
✗ Hard coverage numbers
✗ Quality as separate phase
✗ Metrics without action
✗ Gaming metrics
✗ Ignoring trends
✗ No automation
✗ Blame on quality issues
✗ Quality vs speed false choice