[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -1,67 +1,243 @@
|
||||
---
|
||||
id: wiki-2026-0508-axify
|
||||
title: Axify
|
||||
title: Axify (Engineering Productivity Platform)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-FB7EF7]
|
||||
aliases: [Axify, DORA dashboard, value stream mapping, engineering metrics, AI impact measurement]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.9
|
||||
tags: [auto-reinforced]
|
||||
source_trust_level: B
|
||||
confidence_score: 0.85
|
||||
verification_status: applied
|
||||
tags: [dora, devops-metrics, engineering-productivity, value-stream, ai-impact, axify, observability]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: "[P-Reinforce] Continuous Worker - Axify"
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: SaaS
|
||||
framework: Axify Platform
|
||||
---
|
||||
|
||||
# [[Axify|Axify]]
|
||||
# Axify
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> Axify는 엔지니어링 리더와 소프트웨어 개발 팀의 생산성 및 배포 성과를 측정하고 최적화하도록 돕는 플랫폼입니다 [1-3]. DORA 지표, 가치 흐름 매핑(VSM), 개발자 생산성 등 다양한 소프트웨어 엔지니어링 지표를 실시간으로 추적 및 시각화합니다 [2, 4]. 특히 AI 기반 코드 리뷰 도구 등 새로운 기술의 도입이 개발 주기와 실제 배포 결과에 미치는 영향을 객관적인 데이터로 비교하고 분석하는 기능을 제공합니다 [5, 6].
|
||||
## 📌 한 줄 통찰
|
||||
> **"매 engineering productivity 의 데이터화"**. 매 DORA + value stream + AI 도입 의 measure. 매 vanity metric (사용량) 의 X — 매 actual outcome (lead time, deploy freq) 의 track. 매 modern engineering leader 의 dashboard.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
- **소프트웨어 딜리버리 및 지표 추적:** Axify는 DORA 지표 대시보드, 소프트웨어 엔지니어링 지표 추적, 목표 설정 및 진행률 보고 기능을 제공합니다 [2, 7]. 또한 가치 흐름 매핑(Value Stream Mapping)을 통해 전체 소프트웨어 개발 과정의 시각적 지도를 제공하여 배포 효율성을 높입니다 [2, 4].
|
||||
- **Axify Intelligence:** 엔지니어링 리더를 위한 AI 의사결정 파트너 기능입니다 [1, 2]. 범용 LLM과 달리 조직의 실제 저장소, 파이프라인, 과거 장애 기록 등 실제 전송 데이터를 기반으로 분석을 수행합니다 [8]. 지표가 변동된 원인을 설명하고 구체적인 워크플로우 조정 방안을 추천하며, 챗봇 인터페이스를 통해 사용자가 직접 질문하고 권장 조치를 적용할 수 있습니다 [8].
|
||||
- **AI 도입 영향(AI Impact) 측정:** AI 리뷰 에이전트와 같은 도구 도입 시, 단순한 사용량 지표(가짜 지표)가 아니라 팀 단위의 실제 PR(Pull Request) 주기 시간, 최초 리뷰까지의 시간, AI 지원 커밋 비율, 제안 수락률 등의 실질적 행동 변화를 추적합니다 [9-11]. 나아가 PR 데이터와 배포 데이터를 연결하여 배포 빈도 및 변경 리드 타임(Lead time for changes)이 AI 도입 전후로 어떻게 달라졌는지 명확한 추세 분석을 가능하게 합니다 [10, 12].
|
||||
- **통합성 및 활용 사례:** Slack, Microsoft Teams, Jira, [[Azure DevOps|Azure DevOps]], GitHub, GitLab 등 개발팀이 널리 사용하는 기존 도구들과 원활하게 통합됩니다 [7]. Axify를 도입한 BDC는 최대 51%의 배포 속도 향상을, Newforma는 22배 많은 배포 성과를 달성한 사례가 있습니다 [13].
|
||||
## 📖 핵심
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** AI 분야의 자동 자산화 수행.
|
||||
### 매 product
|
||||
- 매 SaaS platform.
|
||||
- 매 engineering leader 의 target.
|
||||
- 매 DORA + VSM + AI impact.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** Axify Intelligence, DORA Metrics, Value Stream Mapping
|
||||
- **Projects/Contexts:** AI Adoption and Impact Measurement, Developer Productivity Tracking
|
||||
- **Contradictions/Notes:** 소스 내에서 상충되는 의견은 발견되지 않았습니다. 다만 Axify는 새로운 AI 리뷰 도구를 단순히 설치하거나 제안 횟수 자체를 세는 것(Vanity metrics)만으로는 배포 개선을 증명할 수 없다고 지적하며, 실제 성과(DORA 지표 등)로 이어지는지 측정하는 것의 중요성을 강조합니다 [5, 9, 14].
|
||||
### DORA Metrics (4 key)
|
||||
1. **Deployment Frequency**: 매 production 의 deploy 빈도.
|
||||
2. **Lead Time for Changes**: 매 commit → prod 의 시간.
|
||||
3. **Mean Time to Recover (MTTR)**: 매 incident 의 회복.
|
||||
4. **Change Failure Rate**: 매 deploy 후 의 incident 비율.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-18*
|
||||
→ 매 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% |
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
### Value Stream Mapping (VSM)
|
||||
- 매 idea → prod 의 entire flow.
|
||||
- 매 wait time vs work time.
|
||||
- 매 bottleneck identify.
|
||||
- 매 Kanban / Lean 의 origin.
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
### Axify Intelligence
|
||||
- 매 LLM-powered analyst.
|
||||
- 매 generic LLM 가 X — 매 org 의 repo / pipeline / incident 의 학습.
|
||||
- 매 metric 변동 의 cause analysis.
|
||||
- 매 chatbot 의 query.
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
### 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 |
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
### 매 integration
|
||||
- **VCS**: GitHub, GitLab, Bitbucket, Azure DevOps.
|
||||
- **CI/CD**: Jenkins, CircleCI, GitHub Actions.
|
||||
- **Issue**: Jira, Linear.
|
||||
- **Chat**: Slack, MS Teams.
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
### 매 case study
|
||||
- **BDC**: 매 51% deploy speed 향상.
|
||||
- **Newforma**: 매 22× deploy 의 frequency.
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
### 매 alternative
|
||||
- **LinearB**: similar.
|
||||
- **Faros AI**: data layer.
|
||||
- **Code Climate Velocity**: similar.
|
||||
- **Sleuth**: incident-focused.
|
||||
- **Pluralsight Flow**: open-source-friendly.
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
## 💻 패턴
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
### DORA collection (custom)
|
||||
```python
|
||||
from datetime import datetime, timedelta
|
||||
from github import Github
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
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
|
||||
```python
|
||||
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
|
||||
```python
|
||||
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)
|
||||
```python
|
||||
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
|
||||
```python
|
||||
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
|
||||
- 부모: [[Engineering-Productivity]] · [[DevOps]] · [[SRE]]
|
||||
- 변형: [[DORA-Metrics]] · [[Value-Stream-Mapping]] · [[Engineering-Metrics]]
|
||||
- 응용: [[LinearB]] · [[Sleuth]] · [[Faros-AI]]
|
||||
- Adjacent: [[CI-CD]] · [[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]] · [[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 |
|
||||
|
||||
Reference in New Issue
Block a user