Levitra online Vicodin Online Propecia online

Некоторые думают, что планированию и оценке нет места в agile. Это не так.

Рассмотрим несколько случаев, когда оценка необходима/желательна:

  • Оценка общего бюджета проекта – для заказчика часто это весьма важно
  • Оценка того, что будет сделано в данном milestone’e
  • Оценка того, что будет сделано в данном спринте
  • Отслеживание статуса

В дальнейшем будет рассматриваться именно экспертная оценка. Под экспертной оценкой понимается оценка, сделанная непосредственно для данной задачи одним или несколькими людьми (это могут быть и люди, не слишком хорошо знающие предметную область, не обязательно эксперты в традиционном понимании). То есть не рассматриваются обобщенные оценки, как, например, оценка по функциональным точкам или по аналогии.

Воспринимаемая и реальная точность

Так как эти два понятия в разных источниках называются и понимаются по-разному, то поясню, что под ними понимаю я.

Воспринимаемая точность – то, с какой степенью детальности мы даем оценку. Например, оценка в днях кажется более точной, чем оценка в неделях, а оценка в часах с двумя знаками после запятой более точной, чем в часах с одним знаком после запятой.

Реальная точность (верность, правильность, далее будет использоваться просто слово точность) – насколько наша оценка совпадает с тем, сколько на самом деле «стоит» данная задача.

Попробую пояснить на примере. Есть задача A. Две разные команды дали ей оценки 60 часов и 1 неделя соответственно. Предположим, что на самом деле задача заняла 4 дня. Первая оценка воспринимается более точной (используются часы), но вторая более правильной – она ближе к реальным затратам, т.е. она объективно более точная.

Типы оценки

Условно разобьём типы оценок на 4 категории:

  • Абсолютная оценка
  • Сравнительная оценка (оценка объема)
  • Оценка в виде диапазона
  • Вероятностная оценка

Абсолютная оценка самая простая – просто оценивается, сколько единиц времени займет данная задача.

Сравнительная оценка – во сколько раз больше данная задача займет в сравнении с базовой задачей.

Оценка в виде диапазона – для задачи выдается диапазон времени, за который она будет сделана (естественно, с какой-то подразумеваемой вероятностью).

Вероятностная оценка – на основании нескольких оценок строится одна (на основании какого-то закона распределения). Например, мы можем для каждой задачи давать три оценка – в лучшем случае/наиболее вероятно/в худшем случае. И затем на основе того, с какой степенью риска мы готовы работать, получаем итоговую оценку.

Единицы измерения

Можно выделить некоторые наиболее часто используемые единицы измерения в agile:

  • Реальные часы
  • Идеальные часы
  • Инженерные часы
  • Story points

Ниже термин «задача» понимается как история или задача в рамках истории.

Реальные часы

Показывает, сколько реального времени займет данная задача.

Плюсы:

  • Работа с реальными часами проще всего, особенно для начинающих команд
  • Если область известна, то оценка может быть довольно точной
  • Можно использовать эту же единицу для параметра to do (сколько времени еще надо для завершения задачи)

Минусы:

  • Оценка сильно зависит от неявных допущений участников (учтут ли риски, перерывы на чай/кофе/покурить и т.д.)
  • Сложно оценивать задачи в новой области/с использованием новой технологии
  • Не учитывает изменения уровня команды (со временем команда начинает лучше понимать проект, и некоторые начальные оценки становятся очень завышенными)
Идеальные часы

Вообще, под идеальными часами разные люди понимают разное. Я постарался разбить это понятие на два – идеальные часы и инженерные часы.

Идея идеальных часов в том, что программист не может быть постоянно100% загруженным, нужны перерывы, иногда возможно какие-то отвлекающие события, например, срочный запрос информации. Поэтому считается, что в день можно выполнить n идеальных часов (например, в день мы можем выполнить 6 идеальных часов).

Плюсы:

  • Можно не учитывать перерывы в оценке неявно
  • Оценка to do для задачи легко определяется

Минусы:

  • Сложно оценивать задачи в новой области/с использованием новой технологии
  • Не учитывает изменения уровня команды (со временем команда начинает лучше понимать проект, и некоторые начальные оценки становятся очень завышенными)
  • Возможны сложности с биллингом
Инженерные часы

Под оценкой в инженерных часах подразумевают то, сколько времени надо на реализацию данной задачи, предполагая, что известно, как ее решить, и мы можем работать непрерывно. Для перевода в реальные часы используется какой-то стандартный коэффициент, который учитывает время на исследование, перерывы т.д. (например, 3).

Плюсы:

  • Допущения участников в целом одинаковы
  • Нет необходимости постоянно учитывать стандартные активности (базовое исследование, тесты, исправление ошибок), они включаются в коэффициент

Минусы:

  • Необходима практика, чтобы оценка стала более-менее правильной
  • Если в проекте большая доля исследований, причем сильно отличающаяся для разных задач, то оценка часто будет неверной
  • Возможны сложности с биллингом
  • Иногда сложно использовать для вычисления того, сколько времени еще надо на завершение данной задачи
Story points

Story point – это абстрактная единица размера, имеющая смысл только для данного проекта. Для оценки в story points, как правило, используются не абсолютные, а относительные оценки.

Чтобы оценить задачи в story points, необходимо из всех задач выбрать ту, которая будет предпоследней по длительности (почти самой короткой). Считается, что эта задача займет 1 story point. Для всех остальных задач определяется, во сколько раз они больше, и ставится соответствующая оценка в story points.

Важно помнить, что это не оценка задачи по времени – это оценка размера. И не стоит неявно преобразовывать в единицы времени.

Для перевода оценок из story points в затраты времени используется оценка нескольких задач в единицах времени (например, днях или часах). Эту оценку может делать как каждый член команды индивидуально, так и эксперт(ы). Затем на основании этих оценок вычисляется, сколько примерно понадобится реального времени, чтобы сделать 1 story point.

Плюсы:

  • Можно достаточно успешно оценивать задачи из незнакомой области/на незнакомой технологии
  • Изменяя коэффициент преобразования story point в затраты времени, мы можем учесть разные уровни команды/уровень риска проекта
  • Как показывает практика, программисты лучше учитывают объем задачи, чем время, необходимое на ее реализацию, так что оценка в story points при достаточной практике является одной из самых верных

Минусы:

  • Желателен опыт оценки в story points
  • Часто тяжело выбрать базовую задачу
  • Для того, чтобы оценки были сравнимы, базовая задача должна быть одна и та же
  • Сложно использовать для вычисления to do в рамках одной задачи
  • Заказчику почти всегда необходима оценка реальных затрат (а иногда еще и календарный график)

Продолжение следует

В следующей статье я планирую рассмотреть оценку на разных уровнях (проект, версия, спринт) и то, как именно проводить оценку. Если есть какие-либо пожелания/предложения по тому, какие вопросы стоит раскрыть, пишите!

Об авторе

Dmitry Zdanovich
Dmitry Zdanovich

Занимаюсь управлением разнообразными IT проектами. Последние несколько лет использую agile подход. Активно интересуюсь выстраиванием процессов, созданием команд, communities, корпоративной культурой, да и вообще много чем :-).


Добавить комментарий

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

You must be logged in to post a comment. Click here to login.

RSS комментариев Комментарии:

Мы частенько пользуемся оценкой в стори поинтах для оценки новых проектов, а потом определяем каков объем этого стори поинта.
Но. Разница между стори поинтами и идеальными часами только в снятии психологической инерции — отойти от понятия час вообще.
Я не понял из статьи почему в SP лучше оценивать неизвестную технологию, чем в идеальных часах. При оценке проекта по новой технологии оценка вообще превращается в творческий процесс жонглирования цифрами с напущением научной стилистики: “А вот здесь мы используем коэффициент новой технлогии! Примем его равным… логарифмическому затуханию математического ожидания от функции количества чашек кофе, выпиваемого программистом!” В процессе можно доказать, что этот коэффициент равен 1,5-2 в среднем по проекту.

Имхо, story point и идеальный час - разные единицы измерения. Story point измеряет объем задачи. Час - абсолютная единица времени, story point - сравнительная единица объема (хотя можно и считать ее сравнительной единицей времени, главное, не переводить ее напрямую в часы).

Как правило, даже для новых технологий можно оценить, во сколько раз больше работы потребуется для одной user story, чем для другой (естественно, примерно). А вот оценить время - гораздо сложнее.

Согласен, что на практике оценка проекта на новой технологии весьма нетривиальна :-)

Привет, хорошая статья!
Не совсем согласен с объективной оценкой задачи А. Мне кажется, что оценка в 60 часов подходит команде разработки но абсолютно ничего не говорит клиенту о том, “Когда будет сделана задача А?” и именно с этой точки зрения оценка в 1 неделю и объективнее. С другой стороны, чтобы ответить на вопрос “Сколько стоит?” мы всеравно будем пользоваться своими 60 часами. Поэтому, мне кажется что все зависит от того, где мы оценки применяем.

Оценка story point’ами очень сильно напоминает мультик из детства где удава меряли попугаями и слонами. В попугаях больше получилось (http://ru.wikipedia.org/wiki/38_%D0%BF%D0%BE%D0%BF%D1%83%D0%B3%D0%B0%D0%B5%D0%B2) :)
Не могли бы вы поподробнее рассказать про преимущства оценки Story Point’ами по сравнению с часами? Спасибо заранее.

По поводу воспринимаемой и реальной точности. 4 дня = 32 часа, 1 неделя = 40 часов. В случае, когда оценка делалась в часах, мы ошиблись на 28 часов, а когда в неделях - на 0.2 недели, Имхо, ошибка на 28 единиц больше, чем на 0.2 единицы. Когда человек видит оценку, он сразу делает какие-то предположения о границах, в которых эта оценка может отличаться от реальности, и эти границы, как правило, выражены в тех же единицах, что и сама оценка. В целом, нет смысла делать всегда оценку в часах - для больших/сложных задач она не точнее, чем оценка в более крупных единицах.
Когда нам нужно будет посчитать, сколько стоит, то никто не мешает перевести недели в часы.

Story points.
Я не могу сказать, что оценка в story points однозначно лучше или хуже, чем оценка в часах - у них разные области применения. Я применяю story points для оценки user stories из product backlog, а часы - для оценки задач в sprint backlog.
Попробую в отдельной статье сформулировать подробнее, когда есть смысл использовать story points, а когда - часы (возможно, в третьей части, практикуме).

Может быть только я чего-то не понял… Откуда разница в 28 часов между 32-мя и 40ка часами? :)

В статье был пример про две оценки - 1 неделя и 60 часов. 28 часов - это разница между реальными затратами (4 дня) и второй оценкой.

Хехе, следуя такой логике то ошибиться на 0.95 года куда лучше чем на 28 часов. Ммм?

Ну в общем я понял. Спасибо. Думаю стоит попробовать story points у себя на проектах.

Вот теперь понятно, что ссылка делалась на статью.
Воспринимаемая точность это понятие психологическое. К сожалению, биллинг (зараза) покажет все очевидно, как вы там воспринимали точность в мелочах. :)
На счет оценок в story point — главная причина использования данной методики это снятие психологической инерции. Отказ вообще от понятия “час”. Во-первых, для оценки большого количества задач верхнего уровня час слишком маленькая единица. Во-вторых, как ни бейся все воспринимают “часы” по разному. Кто-то считает их “идеальными”, кто-то переводит в “реальные”. Поэтому есть такое решение вообще уйти от понятия “час”.

Не нашли ответа в комментариях? Воспользуйтесь листом рассылки сообщества Agile.by. Подробнее о листе рассылки вы можете прочитать здесь. Или просто послать свое сообщение на адрес: agile-belarus@googlegroups.com.


Наши партнеры и проекты: