#NoEstimates (Allen Holub)
Доклад от Allen Holub про вред оценок и почему подход no estimates - это единственный работающий процесс оценки работ.
Что плохого в оценках? Люди плохо справляются с оцениваем работы. В большинстве случаев люди ошибаются в оценке, причем не в оптимистичную сторону. Также. оценку как правило получают, когда полный объем работ неизвестен. Скорее всего в момент оценивания известен результат (мы хотим чтобы пользователь мог сделать Х), но не известен объем работ. В итоге человек дает неверную оценку для непонятного объема работ, который затем менеджмент воспринимает как обязательство и ставит deadline. А затем, чтобы успеть к дедлайну, все вокруг срезают углы (тут отрежем от безопасности, тут от тестируемости, тут от ценности). Это очень популярная процессная дисфункция - сначала спрашивать оценки, хотя они будут неверны, а затем воспринимать их как обязательство.
При этом, согласно исследованиям, только 20% проектов оцениваются более менее точно, что делает превращение оценок в сроки еще более плохим методом работы.
Многие называют непопадание 80%: проектов в срок - кризисом разработки. Но на самом деле, кризис не в том, что проекты не попадают в срок, а в том, что компании вместо фокуса на правильных фичах, которые будут кормить их годами, фокусируются на доставке в срок неправильных фичей (фича нас немного прокормит, но только если мы уложимся в бюджет)
Во многих проектах также есть большой беклог. Как правило, верхушка беклога - это очень важные вещи, дальше идут в целом хорошие фичи, а где-то начиная с середины - то что вообще не надо делать. Следующая дисфункция - это оценивание задач из беклога. Для задач 3го типа оценка - это лишняя работа т.к. задачи не будут сделаны. А иногда компании еще занимаются переоценкой всего беклога, если там что-то изменилось, увеличивая лишнюю работу кратно.
Если вспомнить историю классического производства, то там все начиналось с того, что процесс производства разделялся на примитивные работы, каждая из которых затем замерялась. Т.е. был прям отдельный человек с таймером, который замерял, кто на что тратит сколько времени и затем как-то принимали решение об оптимизации. Это в целом тоже плохо работало, поэтому на производстве Тойота этот таймер передали самим работникам. Т.е. теперь работники решали, как они работают и как им лучше это делать (возможно это метафора, я не понял, если честно). Это одна из вещей, которые сделали Тойота эталоном производственных процессов.
Вот то же самое и с разработкой. Вместо того, чтобы тратить время на оценивание работы, разработчики сами разберутся как делать оптимально. Заказчик же должен сфокусироваться на том, чтобы выбрать правильные и приоритетные фичи.
Как же все таки планировать работу? Тут Allen Holub приводит примеры от автора NoEstimates подхода. Он взял статистику по работе какой-то команды и построил Cummulative-Flow диаграмму. Она показывает отношение несделанной работы к сделанной в момент времени. Условно, на первой неделе у нас было сделано задач на 10 SP (стори-поинты), осталось 70 SP, а на второй мы сделали еще 8 и получилось 18SP, а в беклог добавили задач еще на 2 SP, итого осталось 64SP. Построив такую диаграмму мы можем интерполировать её и получить примерную дату, когда мы все завершим. Автор NoEstimates нашел интересную закономерность. Если оценивать одни и те же задачи в SP по шкале 1-3-5, по шкале 1-2-3 и считать все задачи за 1, то прогноз отличается не более чем на 10%. Но разница между временем оценки огромна - для оценки в SP нужно потратить много времени, для оценки задач в штуках достаточно 1 человека и уметь считать
Краткий итог:
- Оценка задач и превращение оценок в сроки - это дисфункция
- Задача заказчика - определить самую приоритетную работу и задекомпозировать её на мелкие куски, задача разработчика - эффективно выполнять работу
- Для того чтобы оценить работу, достаточно уметь считать в штуках
Рекомендую к просмотру тем, кто интересуется процессами.