d8a80f6272
이름만 다른(표기 변형) [[위키링크]]를 대상 문서의 canonical 제목으로 치환해 끊겼던 1,200개 링크를 연결. 제목/파일명 정규화 일치만 적용하고 별칭 매칭은 과병합 위험으로 제외(애매성 가드). 원본은 _link_reconcile_backup/ 에 백업. 도구: Datacollect/scripts/link_reconcile_apply.mjs Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7.7 KiB
7.7 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | verification_status | tags | raw_sources | last_reinforced | github_commit | tech_stack | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wiki-2026-0508-axify | Axify (Engineering Productivity Platform) | 10_Wiki/Topics | verified | self |
|
none | B | 0.85 | applied |
|
2026-05-10 | pending |
|
Axify
📌 한 줄 통찰
"매 engineering productivity 의 데이터화". 매 DORA + value stream + AI 도입 의 measure. 매 vanity metric (사용량) 의 X — 매 actual outcome (lead time, deploy freq) 의 track. 매 modern engineering leader 의 dashboard.
📖 핵심
매 product
- 매 SaaS platform.
- 매 engineering leader 의 target.
- 매 DORA + VSM + AI impact.
DORA Metrics (4 key)
- Deployment Frequency: 매 production 의 deploy 빈도.
- Lead Time for Changes: 매 commit → prod 의 시간.
- Mean Time to Recover (MTTR): 매 incident 의 회복.
- Change Failure Rate: 매 deploy 후 의 incident 비율.
→ 매 Google "Accelerate" 책 의 5-year research.
DORA tier
| Tier | Deploy freq | Lead time | MTTR | CFR |
|---|---|---|---|---|
| Elite | On-demand | <1 hr | <1 hr | 0-15% |
| High | weekly-monthly | 1 day-1 week | <1 day | 16-30% |
| Medium | monthly | 1 week-1 month | <1 day | 16-30% |
| Low | <monthly | 1-6 months | >1 week | 16-30% |
Value Stream Mapping (VSM)
- 매 idea → prod 의 entire flow.
- 매 wait time vs work time.
- 매 bottleneck identify.
- 매 Kanban / Lean 의 origin.
Axify Intelligence
- 매 LLM-powered analyst.
- 매 generic LLM 가 X — 매 org 의 repo / pipeline / incident 의 학습.
- 매 metric 변동 의 cause analysis.
- 매 chatbot 의 query.
AI Impact 측정 (vs vanity metric)
| Vanity (X) | Real (✓) |
|---|---|
| 매 PR 의 # | 매 PR cycle time |
| 매 AI 의 사용량 | 매 first review time |
| 매 suggestion 의 # | 매 acceptance rate |
| 매 line 의 generated | 매 deploy frequency |
| 매 활성 user | 매 lead time |
매 integration
- VCS: GitHub, GitLab, Bitbucket, Azure DevOps.
- CI/CD: Jenkins, CircleCI, GitHub Actions.
- Issue: Jira, Linear.
- Chat: Slack, MS Teams.
매 case study
- BDC: 매 51% deploy speed 향상.
- Newforma: 매 22× deploy 의 frequency.
매 alternative
- LinearB: similar.
- Faros AI: data layer.
- Code Climate Velocity: similar.
- Sleuth: incident-focused.
- Pluralsight Flow: open-source-friendly.
💻 패턴
DORA collection (custom)
from datetime import datetime, timedelta
from github import Github
g = Github('token')
repo = g.get_repo('org/repo')
def deployment_frequency(weeks=4):
cutoff = datetime.now() - timedelta(weeks=weeks)
deploys = [d for d in repo.get_deployments()
if d.created_at > cutoff and d.environment == 'production']
return len(deploys) / weeks # 매 deploys per week
def lead_time(weeks=4):
cutoff = datetime.now() - timedelta(weeks=weeks)
deploys = [d for d in repo.get_deployments()
if d.created_at > cutoff and d.environment == 'production']
lead_times = []
for d in deploys:
commit = repo.get_commit(d.sha)
lead_times.append((d.created_at - commit.commit.author.date).total_seconds() / 3600)
return median(lead_times) # hours
def mttr(weeks=4):
cutoff = datetime.now() - timedelta(weeks=weeks)
incidents = fetch_incidents(cutoff) # 매 PagerDuty / Sentry / etc.
return median(i.resolved_at - i.started_at for i in incidents).total_seconds() / 3600
def change_failure_rate(weeks=4):
deploys = count_deploys(weeks)
incidents = count_incidents(weeks, related_to_deploy=True)
return incidents / deploys
Value Stream visualization
def value_stream_data(repo, weeks=4):
cutoff = datetime.now() - timedelta(weeks=weeks)
stages = {
'idea_to_first_commit': [],
'first_commit_to_pr': [],
'pr_to_review': [],
'review_to_merge': [],
'merge_to_deploy': [],
}
for ticket in fetch_tickets(cutoff):
commits = ticket.linked_commits()
prs = ticket.linked_prs()
deploys = ticket.linked_deploys()
if commits and ticket.created_at:
stages['idea_to_first_commit'].append(commits[0].time - ticket.created_at)
# ... etc
return {stage: median(times) for stage, times in stages.items()}
AI Impact measurement
def ai_review_impact(before_date, after_date):
"""매 AI 의 도입 전 / 후 의 metric 비교."""
metrics = ['lead_time', 'pr_cycle_time', 'first_review_time',
'deploy_frequency', 'change_failure_rate']
return {
m: {
'before': calculate(m, ref_date=before_date, window=4),
'after': calculate(m, ref_date=after_date, window=4),
}
for m in metrics
}
# 매 statistical significance check
def is_significant(before_samples, after_samples, alpha=0.05):
from scipy import stats
_, p = stats.ttest_ind(before_samples, after_samples)
return p < alpha
Slack notification (DORA)
import slack_sdk
def post_weekly_dora():
metrics = {
'deploy_freq': deployment_frequency(),
'lead_time_hours': lead_time(),
'mttr_hours': mttr(),
'cfr_pct': change_failure_rate() * 100,
}
text = f"""*Weekly DORA*
:rocket: Deploys: {metrics['deploy_freq']:.1f}/week
:stopwatch: Lead time: {metrics['lead_time_hours']:.1f}h
:wrench: MTTR: {metrics['mttr_hours']:.1f}h
:fire: CFR: {metrics['cfr_pct']:.1f}%"""
slack_client.chat_postMessage(channel='#engineering', text=text)
Outcome > vanity check
def is_real_improvement(metric_before, metric_after, vanity_metric_change):
"""매 vanity 의 increase 가 매 real metric 의 improve?"""
real_improvement = metric_after['lead_time'] < metric_before['lead_time']
if vanity_metric_change > 0 and not real_improvement:
return 'WARN: vanity-only — 매 사용량 ↑ 가, 매 lead time 의 변화 X'
return 'OK' if real_improvement else 'NEUTRAL'
🤔 결정 기준
| 상황 | Tool |
|---|---|
| Modern team | Axify / LinearB |
| Open-source / DIY | Custom DORA script |
| Incident-focused | Sleuth |
| Data warehouse | Faros AI |
| Manual | GitHub Insights |
| Free tier | Pluralsight Flow |
기본값: DORA + VSM + AI impact 의 monthly review.
🔗 Graph
- 부모: DevOps · SRE
- 변형: DORA-Metrics · Value-Stream-Mapping · Engineering-Metrics
- Adjacent: CI CD · Git Branching Strategies · Code-Review · Goodharts-Law
🤖 LLM 활용
언제: 매 engineering metrics 의 design. 매 AI tool 도입 의 ROI 의 measure. 매 productivity dashboard. 언제 X: 매 individual surveillance (toxic). 매 single metric goal (Goodhart).
❌ 안티패턴
- Vanity metric 만: 매 사용량 ↑ 가, 매 outcome X.
- Individual measure: 매 surveillance.
- Single metric goal: 매 game.
- No baseline: 매 before-after 비교 X.
- Real-time alert 의 noise: 매 fatigue.
- No statistical sig: 매 noise 의 trend mistake.
🧪 검증 / 중복
- Verified (DORA "Accelerate" book, Axify docs).
- 신뢰도 B.
- Related: Quality_Code_Review_Modern · Git Branching Strategies · Goodharts-Law · CI CD.
🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-04-18 | Auto-mapped |
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — DORA + VSM + AI impact + 매 GitHub API DORA collection code |