Lesson 5 of 30 ~15 min
Course progress
0%

Productivity Metrics

Které metriky sledovat pro měření AI produktivity.

Měření produktivity AI nástrojů vyžaduje správné metriky. Pojďme se podívat na nejdůležitější.

Primární metriky

1. Time Savings

# Měření úspory času
class TimeSavingsTracker:
    def __init__(self):
        self.tasks = []
    
    def record_task(
        self,
        task_type: str,
        ai_time_minutes: float,
        estimated_manual_time: float
    ):
        self.tasks.append({
            "type": task_type,
            "ai_time": ai_time_minutes,
            "manual_time": estimated_manual_time,
            "savings": estimated_manual_time - ai_time_minutes,
            "savings_percent": (estimated_manual_time - ai_time_minutes) / estimated_manual_time * 100
        })
    
    def summary(self) -> dict:
        total_ai = sum(t["ai_time"] for t in self.tasks)
        total_manual = sum(t["manual_time"] for t in self.tasks)
        
        return {
            "total_tasks": len(self.tasks),
            "total_ai_time_hours": total_ai / 60,
            "total_manual_time_hours": total_manual / 60,
            "total_savings_hours": (total_manual - total_ai) / 60,
            "average_savings_percent": sum(t["savings_percent"] for t in self.tasks) / len(self.tasks)
        }

# Příklad
tracker = TimeSavingsTracker()
tracker.record_task("code_review", ai_time_minutes=5, estimated_manual_time=30)
tracker.record_task("documentation", ai_time_minutes=15, estimated_manual_time=60)
tracker.record_task("debugging", ai_time_minutes=10, estimated_manual_time=45)

2. Output Quality

# Měření kvality výstupu
class QualityTracker:
    def __init__(self):
        self.outputs = []
    
    def record_output(
        self,
        task_type: str,
        quality_score: float,  # 0-1
        required_edits: int,
        bugs_found_later: int
    ):
        self.outputs.append({
            "type": task_type,
            "quality": quality_score,
            "edits": required_edits,
            "bugs": bugs_found_later
        })
    
    def summary(self) -> dict:
        return {
            "average_quality": sum(o["quality"] for o in self.outputs) / len(self.outputs),
            "average_edits": sum(o["edits"] for o in self.outputs) / len(self.outputs),
            "total_bugs": sum(o["bugs"] for o in self.outputs),
            "first_time_success_rate": len([o for o in self.outputs if o["edits"] == 0]) / len(self.outputs)
        }

3. Throughput

# Měření propustnosti
class ThroughputTracker:
    def __init__(self):
        self.daily_counts = {}
    
    def record_day(
        self,
        date: str,
        tasks_with_ai: int,
        tasks_without_ai: int  # Baseline
    ):
        self.daily_counts[date] = {
            "with_ai": tasks_with_ai,
            "without_ai": tasks_without_ai,
            "multiplier": tasks_with_ai / max(tasks_without_ai, 1)
        }
    
    def productivity_multiplier(self) -> float:
        if not self.daily_counts:
            return 1.0
        return sum(d["multiplier"] for d in self.daily_counts.values()) / len(self.daily_counts)

Sekundární metriky

Developer Satisfaction

# NPS-style survey
def ai_satisfaction_survey() -> dict:
    return {
        "question": "How helpful was AI in completing your tasks today?",
        "scale": "1-10",
        "frequency": "weekly",
        "segments": ["coding", "documentation", "debugging", "research"]
    }

Learning Curve

# Jak rychle se zlepšuje využití
class LearningCurveTracker:
    def __init__(self):
        self.weekly_data = []
    
    def record_week(
        self,
        week_number: int,
        success_rate: float,
        avg_attempts_per_task: float
    ):
        self.weekly_data.append({
            "week": week_number,
            "success_rate": success_rate,
            "attempts": avg_attempts_per_task
        })
    
    def improvement_rate(self) -> float:
        if len(self.weekly_data) < 2:
            return 0
        first = self.weekly_data[0]["success_rate"]
        last = self.weekly_data[-1]["success_rate"]
        return (last - first) / first * 100

Benchmark Categories

TaskMetricTarget
Code reviewTime per PR< 10 min
Bug fixTime to resolution-50%
New featureLines per hour+100%
RefactoringBugs introduced< baseline
DocumentationPages per day+200%

Content tasks

TaskMetricTarget
Blog postDraft time< 30 min
EmailResponse time-60%
ReportsCreation time-70%
TranslationWords per hour+300%

Dashboard Template

def generate_ai_dashboard(tracker_data: dict) -> dict:
    return {
        "summary": {
            "total_hours_saved": tracker_data["time_savings"]["total"],
            "money_saved": tracker_data["time_savings"]["total"] * hourly_rate,
            "productivity_multiplier": tracker_data["throughput"]["multiplier"],
            "quality_score": tracker_data["quality"]["average"]
        },
        "trends": {
            "time_savings_trend": "increasing",  # Calculate from data
            "adoption_rate": tracker_data["users"]["active"] / tracker_data["users"]["total"]
        },
        "breakdown_by_task": [
            {"task": "code_review", "savings": "4h/week"},
            {"task": "documentation", "savings": "3h/week"},
            {"task": "debugging", "savings": "2h/week"}
        ],
        "roi": {
            "monthly_cost": tracker_data["costs"]["total"],
            "monthly_savings": tracker_data["time_savings"]["total"] * hourly_rate,
            "roi_ratio": savings / cost
        }
    }

Správné metriky jsou základ pro měření skutečné hodnoty AI.