Короткий ответ
Разбиваю работу на этапы (сбор требований, проектирование модели данных, пайплайн, визуализация, тестирование, документация), оцениваю каждый отдельно методом аналогии с похожими прошлыми проектами и добавляю явный буфер на риски (качество исходных данных, смена требований).
Как это работает подробнее
оценка проекта целиком одним числом почти всегда недооценивает scope creep и скрытые издержки; декомпозиция по этапам с независимой оценкой и явным учётом неопределённости (диапазон, а не точка) даёт более реалистичный и защищаемый прогноз.
Что использовать на практике
- На практике: по каждому этапу даю диапазон (оптимистично/реалистично/пессимистично), опираясь на опыт похожих задач; явно перечисляю риски, которые могут сдвинуть срок (неполная документация источников, нестабильный API, смена требований стейкхолдеров на середине); итоговую оценку даю как диапазон с указанием допущений, а не единственное число.
- Пример: Оценка по этапам (в днях, реалистичный сценарий): - сбор требований и согласование метрик: 3 - проектирование модели данных: 4 - ETL-пайплайн: 7 - дашборды: 5 - тестирование и сверка данных: 3 - документация и передача: 2 Итого: 24 дня реалистично, диапазон 18–32 дня с учётом риска нестабильного источника данных. Проверка: после завершения проекта сравнить фактическое время по этапам с оценкой, чтобы откалибровать будущие оценки трудозатрат.
Подводные камни
- Частые ошибки: давать одну точную цифру в днях без диапазона и без перечисления допущений, из-за чего любое отклонение воспринимается как «провал оценки»; не закладывать время на изменение требований в процессе; оценивать только техническую реализацию, забывая про согласования, ревью и демонстрации.