Из известного мультфильма:
— я хочу измерить свой рост!
— два слоненка
— пять мартышек
— 38 попугаев и одно попугайское крылышко


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

Что ж, чтоб не горело, там где сидело, предлагаю разработать некую систему оценок

Дано:
1) многие менеджеры не любят диапазоны в оценках
2) [ходят слухи] на задачу тратится все отведенное время
3) слишком много вариантов для оценки (1 час, 2 часа, 3, 4, 5,… n)
4) роль тимлида не учтена

Один известный дизайнер* как-то ввел термин «единица смысла», уточнив при этом: "… а именно, выписать их на листочек… Листочек в редких случаях окажется заполненным до середины, даже если писать крупным почерком." Ecли предположить, что середина листочка — это приблизительно десять пунктов, путем нехитрых вычислений постановим (почему, собственно, и не постановить :): любая задача — это два дня. Точка.

На любую задачу менеджера смело называйте оценку в два дня — если задача большая, всегда можно показать, что уже сделано (за два дня), если небольшая — дописать тесты, написать документацию, почистить код. Тут идея в том, что за два дня нужно обязательно сделать что-то законченное, что-то самостоятельное (какой бы смысл вы ни вкладывали в это слово). За два дня можно делать таски, которые, как сказал один известный румын** на одной известной однобуквенной conf [перевод мой]: «хочется видеть пул-реквесты, которые огонь, которые прям хочется вмержить». Двухдневные таски хороший инструмент. Но что делать, если хочется запланировать 153.75 часов, а писать слишком длинный список лень? Все верно — та-дам, создать большую задачу.

Большая задача это задача, которая терпима к ошибке (к одной большОй ошибке или к нескольким маленьким ошибочкам :) То есть мы делаем таску, поняли, что ошиблись, откатились к нулевому дню, делаем таску заново. Итого, просуммировав: два дня + ошибка + два дня = равно четыре дня. Большая задача это четыре дня. (Другими словами, на большую таску можно смотреть как на таску с большим кол-вом неизвестных при старте). Все это прекрасно, скажете вы, но что делать, если хочется пофиксить багу сегодня, сейчас (ну, то есть, вчера)? Та-ДАм — маленькая задача.

Берем рабочий день разработчика, это где-то 8 (7,6,5...) часов и делим на кол-во задач, которые стандартный (он же средний) разработчик может сделать (тут важно не забыть время на все pr change requests). Путем медитации и калькулятора получаем 3 часа, менеджеру говорим 4 часа, так как это полдня работы. Итого, маленькая задача это 4 часа.

Мне кажется, роль тимлида как-то потеряна, как-то тупо не учитывается при эстимейтах (банально, вы скажете — ну в принципе да :) Менеджерам мы сообщаем оценки в терминах трех задач, но тимлиду говорим, что мальнькая задача это 0-4 часов, задача (она же таска) это 0.5-2 дня, большая задача 2-4 дня. И тут открывается дзен тимлида, капитана судна, главного-преглавного. Если разработчик постоянно выполняет таски по верхней границе эстимейта — командный дух похерен.

… Что же делать? Да *** его знает, наверно, смотреть «Что? Где? Когда?» и учиться-учиться-учиться.

* www.artlebedev.ru/kovodstvo/sections/148
** Andrei Alexandrescu, DConf