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

Оценка Что думает программист О чем он забыл Реальное время
30 секунд Совсем малелький кусок кода. Я точно знаю где и что поправить. требуется 30 секунд, чтобы это напечатать Во-первых надо включить компьютер, запустить окружение и найти это место. А еще надо время, чтобы это собрать, протестировать, отметить решенным и задокументировать этот фикс. 1 час
5 минут Это небольшой баг. Надо глянуть точный синтаксис в гугле и пофиксить. Редко сразу получается найти нужную информацию. После нахождения ее надо адаптировать к требованиям. Ну и время на билд и тестинг… 2 часа
1 час Я знаю, как это сделать, но надо написать немного кода, так что это займет некоторое время. Одного часа явно недостаточно для непредусмотренных случаев. Всегда найдется чему сломаться 2 часа
4 часа Надо немного запрограммить, но я знаю, как. Модуль “кавабунга” из нашего фреймворка как раз это делает, но надо свериться с документацией о том, как это вызвать. Навеное, одна из самых реалистичных оценок. Есть запас на непредусмотренные случаи, и задача еще “обозрима” 4 часа
8 часов Сначала надо отрефакторить класс Балунга и разделить его на два, потом вызвать кавабунгу и добавить пару полей к пользовательскому интерфейсу Балунга связана с половиной системы. Надо исправить порядка 40 файлов. Поля пользовательского интерфейса должны найти отражение в базе данных. 8 часов не хватит чтобы “обозрить” задачу. Кроме того, необоходимы дополнительные шаги, которые не включены в оценку. 12-16 часов
2 дня Надо написать довольно много. Добавить пару таблиц в базу данных, пользовательский интерфейс и логику ввода-вывода. 2 дня как правило не по силам обозрить большинству разработчиков. Что-то явно не учтено. Забываются и остаются вне оценки не просто мелочи, а целые куски функциональности. 5 дней
1 неделя Ох.. Большая задача. Черт его знает, как это решать, но нельзя сказать “Я не знаю”. Недели должно хватить, наверное. Надеюсь. Нельзя просить больше - сочтут некомпетентным. Задача за пределами понимания большинства программистов. Необходимо разбить ее на составные части и снабдить указанием, как она должна быть решена. Может найдется более простой путь, а возможно обнаружится, что необходимо еще больше работы. 2-20 дней

Оценка трудна. У каждого программиста есть планка, до которой сроки еще реалистичны. Оценивая задачу ниже этой планки можно забыть про технические мелочи (билдинг, тестирование). Более “тяжелые” трудно “обозрить”

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

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

Оригинал