---
id: wiki-2026-0508-axify
title: Axify (Engineering Productivity Platform)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Axify, DORA dashboard, value stream mapping, engineering metrics, AI impact measurement]
duplicate_of: none
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-05-10
github_commit: pending
tech_stack:
  language: SaaS
  framework: Axify Platform
---

# 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)
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 비율.

→ 매 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)
```python
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
```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
- 부모: [[DevOps]] · [[SRE]]
- 변형: [[DORA-Metrics]] · [[Value-Stream-Mapping]] · [[Engineering-Metrics]]
- 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 |
