← Назад к вопросам

Что показывает Capacity?

1.8 Middle🔥 191 комментариев
#Личный опыт и карьера#Ожидания и мотивация

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что показывает Capacity в IT-проектах?

Capacity (вместимость, пропускная способность) — это ключевой практический показатель в управлении командами и проектами. Он не является теоретическим идеалом или пожеланием, а строго измеряемой величиной, которая отвечает на главный вопрос: «Сколько работы способна выполнить наша команда за заданный промежуток времени?»

Говоря простыми словами, если Scope (объём работ) — это «что нужно сделать», а Velocity (скорость) — это «с какой скоростью мы двигались в прошлом спринте», то Capacity — это точный, реалистичный прогноз «сколько мы можем взять на себя в предстоящем спринте». Это основа для реалистичного планирования и избегания перегрузки команды.

Ключевые аспекты, которые показывает Capacity:

  • Реальная доступность команды: Capacity — это не просто количество человек, умноженное на 8 рабочих часов в день. Она учитывает отпуска, больничные, обучение, совещания, административные задачи и другие виды непроектной деятельности. Он показывает «чистое» время, которое команда может посвятить работе над бэклогом продукта.
  • Ограничение Work in Progress (WIP): Чёткое понимание ёмкости позволяет ограничивать количество задач, находящихся в работе одновременно. Это фундаментальный принцип Kanban и ключ к сокращению времени цикла (cycle time) и повышению предсказуемости потока работ.
  • Прогнозирование сроков: Сравнивая общий объём работ (в story points, идеальных днях или часах) с текущей ёмкостью команды, менеджер может рассчитать примерные сроки завершения проекта или релиза.
  • Выявление узких мест и перегрузок: Анализ ёмкости на уровне отдельных ролей (например, разработчики vs тестировщики) или отдельных членов команды помогает выявить дисбаланс. Если ёмкость тестирования значительно меньше ёмкости разработки, это создаст «бутылочное горлышко» и приведёт к накоплению непротестированного кода.
  • Основа для переговоров с руководством или заказчиком: Цифры ёмкости — это объективные данные. Когда поступает запрос на срочную работу или изменение приоритетов, проект-менеджер может наглядно показать: «Наша ёмкость на спринт — 100 стори-поинтов. Чтобы взять эту новую критичную задачу (20 поинтов), нам необходимо изъять из плана эквивалентный по объёму пункт. Что вы предлагаете отложить?»

Практический расчёт Capacity: формула и пример

Наиболее распространённый подход к расчёту — отталкиваться от идеальных человеко-часов, с последующим переводом в story points, если это необходимо.

Базовая формула расчёта ёмкости команды на спринт:

# Псевдокод для расчёта Capacity команды из N человек
def calculate_team_capacity(sprint_days, team_members):
    total_capacity_hours = 0

    for member in team_members:
        # 1. Определяем доступные часы в день (обычно 6-7, а не 8)
        available_hours_per_day = member.focus_hours # например, 6.5

        # 2. Учитываем отсутствия (отпуск, обучение, больничный)
        days_absent = member.days_absent # например, 2 дня отпуска
        effective_working_days = sprint_days - days_absent

        # 3. Рассчитываем индивидуальную ёмкость
        individual_capacity = available_hours_per_day * effective_working_days

        # 4. Суммируем в общую ёмкость команды
        total_capacity_hours += individual_capacity

    return total_capacity_hours

# Пример для команды из 3 человек на 2-недельный спринт (10 рабочих дней)
sprint_length_days = 10
team = [
    {'name': 'Dev1', 'focus_hours': 6, 'days_absent': 0},
    {'name': 'Dev2', 'focus_hours': 6, 'days_absent': 2},  # В отпуске 2 дня
    {'name': 'QA', 'focus_hours': 7, 'days_absent': 1},    # Обучение 1 день
]

team_capacity_hours = calculate_team_capacity(sprint_length_days, team)
print(f"Общая ёмкость команды на спринт: {team_capacity_hours} часов")
# Расчёт: Dev1: 6ч * 10д = 60ч; Dev2: 6ч * 8д = 48ч; QA: 7ч * 9д = 63ч.
# Итого: 60 + 48 + 63 = 171 идеальный час.

Как это используется на практике в Agile/Scrum:

  1. Перед планированием спринта расчитывается общая ёмкость в часах.
  2. На основе исторической velocity (например, 30 story points за 160 часов) устанавливается прогнозная ёмкость в поинтах для нового спринта (в данном случае ~32 point).
  3. Команда выбирает из бэклога продукта задачи, сумма story points которых не превышает эту прогнозную цифру.

Таким образом, Capacity — это не абстракция, а главный инструмент реалистичного планирования, управления ожиданиями стейкхолдеров и защиты команды от выгорания из-за хронической перегрузки. Грамотное управление ёмкостью напрямую влияет на предсказуемость результатов, качество продукта и здоровую атмосферу в коллективе. Это фундамент для устойчивого темпа разработки (sustainable pace).