LIVE

Оценка сроков разработки ПО: как избежать типичных ошибок при планировании

31% IT-проектов доходят до финиша вовремя, в бюджете и с заявленной функциональностью. Остальные попадают в две категории: 52% становятся проблемными, 17% закрываются как проваленные. Это не сбой рынка.

Обновлено15 июля 2026 г.
Чтение12 мин
Оценка сроков разработки ПО: как избежать типичных ошибок при планировании

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

Оценка сроков разработки ПО редко ломается из-за одной ошибки. Обычно цепочка длиннее: требования описаны на уровне намерений, архитектурные зависимости не вскрыты, интеграции оценены как «обычные», тестирование вынесено за скобки, буфер заменен оптимизмом. На комитете это выглядит просто: дата есть, модели оценки нет.

Статистика провалов: почему оптимизм губит IT-проекты

По данным CHAOS Report 2023, структура результата в IT выглядит так:

Статус проектаДоляЧто это означает для управления
Успешный31%Срок, бюджет и функциональность удержаны одновременно
Проблемный52%Есть перерасход времени, денег или урезание scope
Проваленный17%Проект не дал ожидаемого результата или был остановлен

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

Основные причины перерасхода ресурсов по тому же отчету:

  • 37% — нечеткие требования. Не «плохая разработка», а входной дефект. Система не может быть оценена точнее, чем описана.
  • 32% — недостаточное вовлечение пользователей. Команда строит продукт без регулярной проверки бизнес-сценариев.
  • 29% — слишком оптимистичные сроки без запаса на риски. Календарь строится по лучшему варианту исполнения, а не по вероятному.

Для архитектурного комитета это означает одно: первичная оценка без контроля неопределенности не является планом. Это гипотеза. Ее нельзя использовать как обязательство перед бизнесом без диапазона, допущений и даты пересмотра.

Типовые ошибки планирования в IT проектах повторяются:

1. Оценивают сразу календарь, а не трудозатраты.

«Сделаем за три месяца» звучит как срок. Но внутри может быть 900 человеко-часов, две роли, одна внешняя API-зависимость и отсутствующий контур тестирования. Календарь без capacity-модели ничего не доказывает.

2. Смешивают разработку и delivery.

Написать код — не то же самое, что вывести функцию в production. В срок должны входить анализ, дизайн, ревью, тестирование, миграции, инфраструктура, security review, документация, rollout, rollback-план.

3. Не отделяют известные задачи от исследовательских.

CRUD-модуль, интеграция с платежным шлюзом и оптимизация latency в legacy-монолите не имеют одной природы. Их нельзя оценивать одним коэффициентом.

4. Привязывают оценку к желаемой дате.

Дата релиза часто возникает до декомпозиции. После этого команда подгоняет оценку. Это не планирование. Это бюджетирование риска без его признания.

5. Игнорируют стоимость переключений.

Два параллельных проекта на одну backend-команду не дают 50% capacity каждому. Потери уходят в контекст, синхронизацию, блокировки и ожидание ревью.

Срок разработки не оценивается по желаемой дате. Он выводится из scope, неопределенности, capacity и ограничений delivery.

Конус неопределенности: почему оценки на старте всегда ошибочны

Конус неопределенности Барри Боэма описывает неприятный для менеджмента факт: на раннем этапе проекта погрешность оценки может находиться в диапазоне от 0,25x до 4x от реальной длительности. То есть задача, которая в итоге займет 4 месяца, на старте может выглядеть как 1 месяц или как 16 месяцев. Оба результата возможны при слабой детализации.

Это не оправдание хаоса. Это модель зрелости информации.

На старте неизвестны:

  • точные бизнес-правила;
  • крайние сценарии;
  • ограничения legacy-систем;
  • качество внешних API;
  • требования по безопасности;
  • объем миграции данных;
  • реальная производительность команды;
  • количество согласующих сторон;
  • будущие изменения scope.

Чем ближе проект к реализации, тем больше неопределенность сжимается. Но только если есть процесс уточнения. Если требования не детализируются, конус не сужается. Он просто переносится в спринты, где начинает разрушать velocity.

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

Плохая формулировка:

Рабочая формулировка:

  • «При текущем уровне требований диапазон — 8–16 недель. После прототипа интеграции и детализации ролей доступа диапазон должен быть пересмотрен».

Для сайта, SaaS-модуля или внутреннего веб-сервиса это особенно критично. Запрос «как рассчитать время на разработку сайта» часто сводят к типу продукта: лендинг, кабинет, маркетплейс, портал. Это слабая классификация. Срок определяется не названием сайта, а набором технических переменных:

ПеременнаяНизкая сложностьВысокая сложность
КонтентСтатические страницыЛичный кабинет, роли, workflow
ИнтеграцииОдна форма и почтаCRM, ERP, платежи, SSO, webhooks
ДанныеНет миграцииИмпорт, дедупликация, нормализация
НагрузкаНизкий трафикПики, SLA, кэширование, очереди
БезопасностьБазовая авторизацияRBAC, аудит, 2FA, compliance
DeliveryРучной deployCI/CD, staging, blue-green, rollback

Один и тот же «сайт» может быть собран за несколько недель или превратиться в корпоративный портал на месяцы. Термин не дает оценки. Декомпозиция дает.

Математика против интуиции: методы PERT и Wideband Delphi

Интуитивная оценка разработчика полезна как входной сигнал. Но она плохо работает как единственный источник срока. Разработчик часто оценивает чистую реализацию. Не очередь на review. Не ожидание доступов. Не повторное тестирование после изменения требований. Не инфраструктурную задержку.

Методики оценки трудозатрат в программировании нужны не для бюрократии. Они уменьшают влияние когнитивных перекосов.

PERT: три оценки вместо одной

PERT использует три значения:

  • O — optimistic: задача идет без блокировок, все входные данные готовы.
  • M — most likely: наиболее вероятный сценарий с обычными задержками.
  • P — pessimistic: проявились риски, но задача все еще реализуема без смены архитектуры.

Формула:

(O + 4M + P) / 6

Такой расчет дает ожидаемую длительность с учетом наиболее вероятного значения, но не игнорирует крайние сценарии. По сути, PERT заставляет команду проговорить риск в числах.

Пример. Интеграция с внешним сервисом:

  • O = 3 дня: документация корректная, sandbox работает, авторизация стандартная.
  • M = 7 дней: есть расхождения в API, нужна обработка ошибок и retry.
  • P = 18 дней: sandbox нестабилен, часть полей не документирована, нужен обходной workflow.

Расчет:

(3 + 4×7 + 18) / 6 = 8,16 дня

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

Где PERT работает хорошо:

  • интеграции;
  • миграции;
  • задачи с понятным результатом, но разной степенью риска;
  • performance tuning с измеримым target;
  • backend-функции с зависимостями от внешних систем.

Где PERT работает хуже:

  • продуктовые исследования;
  • UX-поиск без утвержденных гипотез;
  • R&D;
  • переписывание legacy без инвентаризации;
  • задачи, где неизвестен сам способ реализации.

Wideband Delphi: оценка без давления авторитета

Wideband Delphi появился в 1970-х годах в работах Барри Боэма и Джона А. Фаркуара. Суть метода: несколько экспертов оценивают задачи анонимно, затем расхождения обсуждаются, после чего оценка повторяется до консенсуса.

Ключевой элемент — анонимность первой оценки. Она снижает влияние senior-разработчика, менеджера, архитектора или владельца бюджета. Это важно. В противном случае команда часто принимает первую громкую оценку как якорь.

Процесс выглядит так:

1. Модератор готовит набор задач и допущений.

2. Эксперты независимо дают оценки.

3. Диапазоны раскрываются без привязки к авторам.

4. Команда обсуждает причины расхождений.

5. Требования уточняются.

6. Оценка повторяется.

7. Фиксируется согласованный диапазон и список рисков.

Wideband Delphi полезен там, где есть несколько доменов:

  • frontend;
  • backend;
  • DevOps;
  • security;
  • data;
  • QA;
  • product analytics.

Например, задача «добавить SSO» для backend-разработчика может выглядеть как интеграция с identity provider. Для DevOps — как настройка окружений и секретов. Для security — как аудит токенов, lifecycle сессий и прав доступа. Для QA — как матрица ролей и негативные сценарии. Одна оценка не покрывает систему.

Если оценка не прошла через роли, она покрывает только точку зрения автора оценки.

Сравнение методов

ПараметрPERTWideband Delphi
Основная цельРассчитать ожидаемую длительность задачиПолучить экспертный консенсус
Входные данныеТри оценки: O, M, PОценки группы экспертов
Сильная сторонаФормализует риск в числахВскрывает расхождения между ролями
Слабая сторонаТребует адекватных исходных оценокТребует времени и модерации
Лучшее применениеЗадачи с понятным результатомСложные cross-functional блоки
Типичный артефактОжидаемая длительностьДиапазон, допущения, список рисков

Оптимальный стек для оценки обычно не выбирает один метод. Он комбинирует:

  • декомпозицию до задач;
  • PERT для задач с вариативностью;
  • Wideband Delphi для спорных и междоменных блоков;
  • отдельный риск-реестр;
  • проектный буфер;
  • регулярную переоценку.

Искусство буферизации: как закладывать риски в график

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

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

Если команда оценила чистую разработку в 400 часов, календарное планирование по 400 часам будет ошибкой. Для проектного плана нужно рассматривать минимум 600 часов эквивалентной емкости, если нет доказательств обратного.

Буфер должен быть видимым. Нельзя прятать его в каждой задаче без контроля. Иначе менеджмент не понимает, где запас, а команда расходует его локально.

Рабочее разделение:

  • Task buffer — небольшой резерв внутри сложной задачи.
  • Integration buffer — запас на стыковку модулей, API, данных, окружений.
  • Release buffer — резерв перед production: bug fixing, regression, rollout.
  • Management reserve — резерв на изменения вне команды: согласования, новые ограничения, внешние провайдеры.

Плохая схема: каждая задача завышена на 30%, никто не знает общий резерв.

Рабочая схема:

УровеньГде хранитсяКто управляетДля чего используется
ЗадачаВнутри оценки исполнителяTech leadЛокальные технические риски
ФичаВ плане эпикаEngineering managerСтыки между компонентами
РелизВ release planDelivery ownerРегрессия, стабилизация, rollout
ПроектВ портфелеSteering committeeScope change, внешние зависимости

Почему срываются сроки разработки софта при наличии буфера. Основные причины:

1. Буфер не защищен от scope creep.

Бизнес добавляет «маленькие» изменения. Они съедают резерв до этапа стабилизации.

2. Буфер не привязан к рискам.

В плане есть две недели «на всякий случай», но нет списка событий, которые эти две недели покрывают.

3. Буфер учитывает разработку, но не delivery.

Команда оставляет запас на код, но не оставляет на тестовую среду, security review, приемку и production freeze.

4. Буфер назначен до анализа зависимостей.

Резерв в 20% бесполезен, если ключевая внешняя API-команда отвечает раз в неделю.

5. Буфер не пересчитывается.

После изменения требований план продолжает жить в старой версии. Это прямой путь к накопленному отклонению.

Буферизация должна идти после классификации задач по риску.

Минимальная классификация:

  • Known knowns. Понятные задачи. Есть аналогичный опыт. Низкая вариативность.
  • Known unknowns. Риски известны. Нужны spike, прототип, консультация, доступы.
  • Unknown unknowns. Область не исследована. Нужен отдельный discovery до фиксации срока.

Нельзя планировать unknown unknowns как known knowns. Это базовая архитектурная ошибка.

Декомпозиция: где оценка становится управляемой

Оценка крупного блока «личный кабинет» бесполезна. Ее нельзя проверить. Ее нельзя адекватно распределить. Ее нельзя привязать к рискам.

Управляемая оценка начинается с декомпозиции до элементов, у которых есть:

  • понятный результат;
  • владелец;
  • зависимость;
  • критерий готовности;
  • оценка трудозатрат;
  • риск;
  • метод проверки.

Пример декомпозиции для модуля авторизации:

БлокЗависимостиРискЧто должно войти в оценку
Login/passwordUI, backend, DBНизкийФормы, валидация, хранение хэшей, ошибки
Password resetEmail providerСреднийТокены, срок жизни, шаблоны писем, rate limit
RBACМатрица ролейВысокийМодель прав, guards, тесты, админский интерфейс
SSOIdentity providerВысокийProtocol flow, окружения, сертификаты, logout
Audit logТребования безопасностиСреднийСобытия, хранение, поиск, retention
QAВсе блокиСреднийПозитивные, негативные, регрессионные сценарии

Такой уровень нужен не всегда. Но для enterprise-систем, SaaS-платформ и веб-сервисов с ролями он обязателен. Иначе оценка превращается в агрегат неизвестных.

Декомпозиция должна фиксировать не только работу разработчиков. В план попадают:

  • аналитика требований;
  • архитектурное решение;
  • дизайн API;
  • дизайн данных;
  • UI/UX;
  • backend;
  • frontend;
  • infrastructure as code;
  • CI/CD;
  • тестовые данные;
  • автоматизированные тесты;
  • ручное QA;
  • observability;
  • security;
  • документация;
  • приемка;
  • релиз.

Если хотя бы одна категория системно отсутствует, оценка будет занижена. Обычно первыми выпадают QA, DevOps, observability и документация. Потом они возвращаются в проект как «непредвиденные работы».

Регулярный контроль: как удерживать проект в рамках плана

План без ревизии деградирует. Для проектов длительностью от 6 до 12 месяцев задачи нужно пересматривать не реже одного раза в две недели. Первая критическая точка контроля должна быть пройдена в середине проекта. На практике ждать середины опасно. К этому моменту часть отклонений уже необратима.

Контроль должен измерять не занятость, а продвижение к результату.

Плохие метрики:

  • процент загрузки команды;
  • количество закрытых задач без веса;
  • количество встреч;
  • subjective status «в работе»;
  • burn down без учета новых требований.

Рабочие метрики:

  • завершенные артефакты по Definition of Done;
  • отклонение фактической трудоемкости от оценки;
  • изменение scope за период;
  • расход буфера;
  • количество блокеров старше заданного SLA;
  • дефекты по severity;
  • lead time от задачи до production;
  • доля задач, возвращенных из QA;
  • готовность критического пути.

Для контроля сроков нужен не один отчет, а контур управления:

1. Baseline.

Зафиксированная версия плана: scope, оценки, зависимости, буферы, допущения.

2. Change log.

Все изменения требований проходят через журнал. Без этого перерасход выглядит как ошибка команды, хотя причиной может быть рост scope.

3. Risk register.

Риски имеют владельца, вероятность, impact, mitigation и дату пересмотра.

4. Milestone review.

Проверяется не активность, а готовность конкретных инкрементов.

5. Re-estimation.

После крупных изменений срок пересчитывается. Не комментируется устно. Пересчитывается.

6. Decision gate.

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

Контроль без decision gate не работает. Он только фиксирует ухудшение.

Для проекта на 6–12 месяцев минимальная частота ревизии — каждые две недели. Но частота зависит от риска:

Тип проектаЧастота контроляПричина
Небольшой веб-сервис с понятным scopeРаз в 2 неделиНизкая неопределенность, короткий цикл
SaaS-модуль с интеграциямиЕженедельноВнешние зависимости, API, приемка
Legacy modernizationЕженедельно или чащеВысокая техническая неопределенность
R&D или performance-проектПо завершению spike-этаповНужны измеримые промежуточные результаты
Enterprise rolloutРаз в неделю + gate перед релизомМного согласующих сторон и production-рисков

Оптимальный стек планирования: от оценки к обязательству

Оценка становится обязательством только после прохождения нескольких слоев. До этого это прогноз.

Рабочая цепочка:

1. Scope framing.

Определить границы продукта. Что входит. Что явно не входит. Какие бизнес-сценарии обязательны.

2. Assumptions log.

Зафиксировать допущения: доступность API, готовность дизайна, наличие тестовых данных, SLA внешних команд, требования безопасности.

3. WBS-декомпозиция.

Разбить продукт на модули, фичи, технические задачи и delivery-задачи.

4. Классификация неопределенности.

Разделить known knowns, known unknowns, unknown unknowns. Для второй и третьей группы назначить spike или discovery.

5. Оценка задач.

Использовать PERT для вариативных задач. Применять экспертную оценку только там, где есть исторические данные.

6. Wideband Delphi для спорных блоков.

Привлечь представителей ролей. Снять расхождения до фиксации даты.

7. Capacity planning.

Посчитать доступную емкость команды с учетом отпусков, поддержки, параллельных проектов, code review, meetings, on-call.

8. Буферизация.

Применить коэффициент и распределить резерв по уровням. Минимум 1,5x для первичной оценки, если проект содержит существенную неопределенность.

9. Календарный план.

Перевести трудозатраты в календарь. Учесть зависимости и критический путь.

10. Контур контроля.

Задать периодичность ревизии, метрики, пороги эскалации и владельцев решений.

Эта схема не гарантирует 100% точность. Такой гарантии нет. Особенно на старте, где Конус неопределенности допускает многократную погрешность. Но схема снижает вероятность системного самообмана.

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

Перед фиксацией срока на уровне бизнеса должны быть закрыты контрольные пункты:

  • scope описан на уровне проверяемых функций;
  • требования имеют владельца и процедуру изменения;
  • крупные блоки декомпозированы;
  • интеграции оценены отдельно;
  • delivery, QA, DevOps и security включены в план;
  • PERT применен к задачам с риском;
  • спорные оценки прошли через Wideband Delphi;
  • capacity команды посчитана реалистично;
  • буфер выделен явно, а не спрятан в задачах;
  • ревизия плана назначена не реже одного раза в две недели для средних и длинных проектов;
  • есть decision gate для сдвига сроков, урезания scope или изменения стека.

Если этих пунктов нет, дата релиза не является планом. Это неподтвержденное обещание. Для enterprise-разработки такой формат неприемлем.

Частые вопросы

Статистика провалов: почему оптимизм губит IT-проекты?
По данным CHAOS Report 2023, структура результата в IT выглядит так:
Конус неопределенности: почему оценки на старте всегда ошибочны?
Конус неопределенности Барри Боэма описывает неприятный для менеджмента факт: на раннем этапе проекта погрешность оценки может находиться в диапазоне от 0,25x до 4x от реальной длительности.