Перейти к содержимому
ToolSimu

B2B, агентства и операции · Интерактивный симулятор

Симулятор узкого места QA и спринта: когда разработчики опережают мощность тестирования

Разработчики заканчивают функции быстрее, чем тестировщики успевают их проверять, а очередь между ними незаметно съедает ценность. Оцените ожидание, ошибки, ушедшие к клиентам, и ещё одного тестировщика.

Пульт управления

Инженеры, создающие функции. Больше разработчиков повышает выработку, но не скорость тестирования.

8

Функции, которые разработчик заканчивает и передаёт в QA за месяц.

2,5

Люди, которые проверяют функции перед выпуском.

2

Сколько функций один тестировщик может полностью проверить, перепроверить и принять за месяц.

7

Выручка, удержание клиентов или экономия, которые функция приносит, когда достигает пользователей.

855 000 ₽

Сколько теряет каждая функция за каждый месяц ожидания в очереди — в потерянной выручке или доверии клиентов.

72 000 ₽

Запускает обратный стресс-тест и 1000 прогонов Монте-Карло для текущего сценария.

Чистый результат за месяц

705 600 ₽

Каскадный домино-поток

Каждый этап питает следующий. Зелёный означает безопасно, жёлтый — предупреждение, красный — критично.

  1. 1

    Выработка разработчиков

    20

    функций завершается в месяц

    Критично

  2. 2

    Нагрузка на QA

    143%

    мощности QA востребовано

    Критично

  3. 3

    Средняя очередь

    18

    функций ждут тестирования

    Критично

  4. 4

    Стоимость ожидания

    3 млн ₽

    задержка очереди и переключение контекста в месяц

    Критично

  5. 5

    Результат конвейера

    706 тыс. ₽

    чистыми в месяц

    Предупреждение

Деньги показаны в валюте «RUB» в условном масштабе, а не по актуальному обменному курсу.

Подробное руководство

Симулятор узкого места QA и спринта: когда разработчики опережают мощность тестирования

Аналитический обзор отрасли

Программная команда — это конвейер, а конвейер не может выпускать быстрее самой медленной стадии. Когда разработчики заканчивают больше функций, чем тестировщики успевают проверить, лишняя работа не исчезает, а встаёт в очередь. Руководители видят занятых разработчиков и заполненную доску спринта и заключают, что команда продуктивна. Но функция, которая создана и не проверена, ничего не заработала, и каждую неделю ожидания она теряет ценность. Добавление разработчиков в такой ситуации повышает фонд оплаты труда и длину очереди одновременно и оставляет выпущенный объём ровно там, где он был.

Суть проблемы — разрыв между двумя скоростями. Выработка разработчиков равна числу разработчиков, умноженному на число функций, которые заканчивает каждый. Мощность QA равна числу тестировщиков, умноженному на число функций, которые способен проверить каждый. Выпущенные функции — меньшее из двух, а разница между ними — скорость роста очереди. Поскольку очередь накапливается месяц за месяцем, её стоимость не остаётся постоянной, а нарастает. Команда, которая немного превышает мощность, выглядит нормально в первом спринте и явно сломанной к шестому, поэтому проблему легко игнорировать, пока она не станет большой.

Эффект домино показывает последовательность. Высокая выработка разработчиков поднимает долю востребованной мощности QA выше ста процентов. Эта нагрузка заставляет очередь расти, что задерживает каждую функцию за ней. Ожидание напрямую стоит ценности, а также возвращает разработчиков к старой работе через исправления ошибок и вопросы, так что их время теряется на переключение контекста. Перегруженные тестировщики торопятся, и больше дефектов уходит к клиентам. Каждая стадия питает следующую, поэтому небольшая перегрузка во втором блоке может окрасить в красный последний за несколько спринтов.

Айсберг отделяет фонд оплаты труда от стоимости узкого места. Над водой находятся зарплаты разработчиков и QA, которые видят все. Под водой лежат четыре затраты, редко получающие строку: ценность, потерянная, пока функции ждут, стоимость ошибок, дошедших до клиентов из-за поспешного тестирования, время разработчиков, потерянное на переключение контекста, и сверхурочные, которые тестировщики работают при перегрузке. Вместе они могут превышать стоимость дополнительного тестировщика, который их устранил бы. Используйте симулятор, чтобы найти соотношение разработчиков и QA, при котором ваш конвейер перестаёт окупаться, а затем сравните его с добавлением тестировщика.

Формулы и методология

Модель считает помесячно в установившемся режиме. Выработка разработчиков равна числу разработчиков, умноженному на функции каждого. Мощность QA равна числу тестировщиков, умноженному на функции каждого. Выпущенные функции — меньшее из двух. Очередь растёт на разницу каждый месяц, а средняя очередь за шестимесячное окно равна половине шестикратного прироста. Стоимость задержки — это средняя очередь, умноженная на стоимость задержки. Разработчики теряют 1 % времени на переключение контекста за каждую функцию в очереди, не более 20 %. Пропущенные дефекты растут с перегрузкой.

Выработка разработчиков
P = разработчики × функции на разработчика
Функции, завершённые и переданные в QA за месяц.
Выпущенные функции
S = мин(P, тестировщики × функции на тестировщика)
Конвейер может выпустить только то, что проверило тестирование.
Очередь
Q = макс(0, P − мощность) × 3
Среднее число функций в ожидании за шестимесячное окно, поскольку очередь растёт линейно.
Стоимость пропущенных дефектов
E = S × (3 % + 15 % × перегрузка) × 4 000
Дефекты, доходящие до клиентов, растут по мере перегрузки QA, по 4 000 за каждый.
Результат конвейера
Итог = S × ценность − фонд оплаты − Q × стоимость задержки − E − налог контекста − сверхурочные QA
Месячный результат. Безубыточная нагрузка — та, при которой он достигает нуля.

Каскадная эластичность

Разрыв между выработкой разработчиков и мощностью QA — самый чувствительный фактор, потому что он одновременно управляет очередью, задержкой, переключением контекста и пропущенными дефектами. Ценность функции напрямую масштабирует выпущенный объём. Фонд оплаты труда линеен и действует как порог, поэтому добавление одного тестировщика нередко окупается многократно.

Три реальных примера

Старт на собственных средствах

Продуктовая команда из трёх человек

Три разработчика и один тестировщик работают над небольшим продуктом. Разработчики заканчивают шесть функций в месяц, а тестировщик может проверить семь, поэтому очереди нет. Загрузите этот сценарий, чтобы увидеть сбалансированную небольшую команду, где выпуск равен созданию и нет узкого места, которое нужно устранять.

Растущий средний бизнес

Сбалансированная организация с двадцатью четырьмя разработчиками

Крупная организация держит семь тестировщиков на двадцать четыре разработчика и инвестирует в автоматизацию, поэтому QA слегка превышает выработку разработчиков. Очереди минимальны, а выпущенная ценность высока. Загрузите этот сценарий, чтобы увидеть, почему здоровое соотношение сохраняет большую команду прибыльной.

Кризис типа «чёрный лебедь»

Десять разработчиков и два перегруженных тестировщика

Десять быстрых разработчиков заканчивают тридцать функций в месяц, но два тестировщика могут проверить только десять. Очередь растёт на двадцать функций в месяц, ошибки уходят к клиентам, а разработчики постоянно возвращаются к старому коду. Загрузите этот сценарий, чтобы увидеть, как проблема соотношения превращает большой фонд оплаты труда в убыток.

Матрица отраслевых ориентиров

ПоказательОпасная зонаСреднее по отраслиЛучшие 10 %
Разработчиков на одного тестировщикаБолее 8:13–5:1Около 2–3:1 с автоматизацией
Нагрузка на QA (выработка разработчиков относительно мощности)Более 130 %90–105 %Менее 90 %
Средняя очередь в ожидании тестированияБолее 10 функций2–4 функцииМенее 2
Дефекты, уходящие в промышленную эксплуатацию, на выпускБолее 10 %3–6 %Менее 2 %
Время цикла от готовности до выпускаБолее 4 недель1–2 неделиМенее 3 дней

Переменные и рычаги

Разработчики

Инженеры, создающие функции. Больше разработчиков повышает выработку, но не скорость тестирования.

Рычаг: Не добавляйте разработчиков, пока не вырастет мощность тестирования; ограничьте объём работы в процессе, чтобы команда заканчивала меньше, а выпускала больше.

Функций, завершаемых разработчиком в месяц

Функции, которые разработчик заканчивает и передаёт в QA за месяц.

Рычаг: Ограничьте число функций, начатых за спринт, тем, что QA способен проверить, потому что законченная, но непроверенная работа ничего не приносит.

Тестировщики QA

Люди, которые проверяют функции перед выпуском.

Рычаг: Добавьте тестировщиков или встройте инженеров по тестированию в команду, потому что каждый тестировщик освобождает блок функций, которые сейчас ждут.

Функций, проверяемых тестировщиком в месяц

Сколько функций один тестировщик может полностью проверить, перепроверить и принять за месяц.

Рычаг: Автоматизируйте регрессионные тесты и заранее записывайте критерии приёмки, чтобы тестировщики проверяли новую работу, а не повторяли старые проверки.

Ценность выпущенной функции

Выручка, удержание клиентов или экономия, которые функция приносит, когда достигает пользователей.

Рычаг: Расставляйте приоритеты функций по ценности и отбрасывайте малоценные, поскольку мощность тестирования тратится на всё, что попадает в очередь.

Стоимость задержки на функцию в месяц

Сколько теряет каждая функция за каждый месяц ожидания в очереди — в потерянной выручке или доверии клиентов.

Рычаг: Выпускайте меньшие приращения чаще, что сокращает ожидание каждой функции и снижает стоимость задержки.

Как пользоваться этим симулятором

  1. 1Введите число разработчиков и число функций, которые каждый заканчивает за месяц.
  2. 2Задайте число тестировщиков и сколько функций может проверить каждый.
  3. 3Оцените ценность выпущенной функции и стоимость задержки на функцию в месяц.
  4. 4Посмотрите на пять костей домино и отметьте, когда нагрузка на QA превышает сто процентов.
  5. 5Сравните с планом дополнительного тестировщика во вкладке «Параллельная вселенная» и поделитесь ссылкой.

Каких ошибок избегать

  • Оценивать разработчиков по числу законченных функций. Работа, ожидающая тестирования, — это запасы, а не выработка.
  • Усреднять за долгий период. Очередь, растущая каждый месяц, вначале выглядит маленькой, а позже большой.
  • Считать тестировщиков статьёй затрат, которую нужно сократить. При узком месте мощность тестировщика — самая ценная мощность в конвейере.
  • Учитывать только стоимость задержки. Пропущенные ошибки и переключение контекста нередко её превышают.

Часто задаваемые вопросы

Почему добавление разработчиков не повышает выпущенный объём?

Потому что выпуск ограничен самой медленной стадией. Дополнительные разработчики увеличивают очередь перед QA, что повышает затраты, но не скорость выпуска.

Достаточно ли соотношения разработчиков и тестировщиков для планирования?

Это начало, но полезное сравнение — выработка относительно мощности. Автоматизация, качество требований и тип продукта могут сильно менять соотношение.

Как оценивается стоимость задержки?

Как месячная потеря на каждую ожидающую функцию — в потерянной выручке, удержании клиентов или доверии. Это допущение, поэтому проверьте низкое и высокое значения и посмотрите, какое преобладает.

Почему дефекты растут при перегрузке?

Торопящиеся тестировщики пропускают случаи и реже перепроверяют. Модель добавляет пропущенные дефекты пропорционально тому, насколько спрос превышает мощность.

Что показывает сценарий с дополнительным тестировщиком?

Он показывает отдачу от ещё одного тестировщика и автоматизированной регрессии, которые повышают мощность QA и обычно убирают очередь. Вкладка на 24 месяца показывает, когда это окупается.

Насколько это точно?

Это учебная плановая модель с показанными допущениями, а не инженерная или финансовая консультация. Подставьте собственные данные о пропускной способности и затратах.

Это учебная модель планирования с заявленными допущениями. Она не является финансовой, налоговой или юридической консультацией. Подставьте собственные данные и проверяйте важные решения у квалифицированного специалиста.