новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts

Людинеумеютоценивать

Насчет неумения оценивать в абсолютных величинах, есть множество научных источников. С результатами самого веселого, из повстречавшихся мне, исследования, проведенным норвежским научно-исследовательским институтом Simula Research Lab хочу поделиться с вами тут.

Исследователи попросили несколько групп разработчиков дать оценку некоторых программистких задач, описанных в спецификации. В среднем, группы оценили работу в 100 часов (я пропорционально привел все данные в исследовании к круглым цифрам, чтобы было проще запоминать).

После чего, начались следующие эксперементы:

Увеличение количества страниц

В первоначальной спецификации был увеличен шрифт, увеличины страничные, межпараграфные и межстрочные отступы. В итоге та же самая спецификация получилась на большем количестве страниц, чем первоначальная (заметьте, содержание осталось прежним). “Новая” спецификация была выдана другим группам разработчиков с просьбой произвести оценку.
Результат: 150 часов, то есть в полтора раза больше, чем первоначальная.

Внесение дополнительной информации, не имеющей отношения к делу

Та же самая первоначальная спецификация была “разбавлена водой”. В нее была внесена информация, не имеющая отношения к оцениваемым задачам (различные комментарии, типа: что такое веб-дизайн, что такое логин, что такое пароли пользователей и тп). Новая спецификация снова была выдана другим группам разработчиков с просьбой произвести оценку.
Результат: 200 часов. Уже вдвое больше, чем первоначальная.

А это можете не делать

Снова за основу взяли первоначальную спецификацию, приложили к ней дополнительные пару листочков с описанием еще одной фичи и сказали группам разработчиков: “Оцените, пожалуйста, спецификацию, и, кстати, можете просто забыть о последних двух листах, нам эта функция не нужна, не оценивайте ее. (То есть, по сути, снова попросили оценить только первоначальную спецификацию).
Результат: 200 часов. Снова вдвое больше, чем первоначальная.

Заякоревание

Напоследок исследователи решили протестировать эффект “заякоривания” разработчиков. За основу взяли спецификацию, которая была оценена несколькими группами разработчиков в среднем в 500 часов. После чего, эту спецификацию брал Product Owner, нес команде и просил оценить, вскользь упоминая, что, мол, другие люди (которые, конечно, могут ошибаться, именно поэтому я пришел к вам) оценили эту спецификацию в Х часов.

Заякоревание вверх

Сначала Product Owner говорил, что другие оценили это в 1000 часов (помним, на самом деле 500), после чего команда оценивала сама.
Результат: 600 часов. На 20% больше, чем на самом деле.

Заякоревание вниз

Потом, Product Owner говорил, что другие оценили это в 50 часов (помним, на самом деле по прежнему 500), после чего команда оценивала сама.
Результат: 100 часов. А это в 5 раз меньше, чем на самом деле.
После всего этого напрашивается простой вывод: “Люди не умеют оценивать”.
У кого еще есть подобные веселые случаи, доказывающие, что люди не умеют оценивать? Делимся в комментариях.

Сергей Дмитриев Cовладелец Unusual Concepts

Плюсануть
Поделиться
Отправить
Класснуть
Линкануть
Вотсапнуть
Запинить
Ещё по теме
Студент Unusual Concepts делится ценными советами по сдаче экзамена PSM и PSPO 1. Цена попытки — 200$, но лучше сходить на тренинг Unusual Concepts. Рекомендую! Выйдет в четыре раза дороже, но оно того стоит. 2. Внимательно и вдумчиво изучить scrum guide на английском (!) языке. Что угодно делайте, чтобы понять и запомнить всё, что там написано. Мне лично помогло рисовать mind maps. Кому-то помогает внимательно прочесть 3 раза. 3. Пройти open assessments на сайте scrum.org (open, product owner, developer). Nexus не надо. Здесь задача в том, чтобы понять логику того, кто эти тесты делал (эта же самая логика используется и в сертификационном экзамене). Проходить советую вдумчиво, читая то, что написано. Не советую тупо запоминать вопросы и ответы на них, т.к. хотя в экзамене и есть copy-paste из open assessment, их, во-первых, всего лишь около половины, а во-вторых, это вам только помешает понять суть. Из этих же соображений советую тренироваться по одной попытке на каждый open assessment и потом перерыв. Потом опять по одной на каждый и опять перерыв. Идеально, если чередовать с изучением scrum guide. Обязательно читаем результаты теста! Там годные комментарии к ответам. Добивайтесь устойчивого 100% результата. 4. Если у вас с английским языком проблемы — то советую подтянуть. Лучший способ, на мой взгляд, делать всё, что я тут описал, но со словарём. Добиваемся, чтобы весь scrum guide и все open assessments были понятны без словаря. Во время экзамена словарь держите под рукой — попадаются непонятные слова, но целиком полагаться на него не стоит (один товарищ пытался загонять все вопросы в он-лайн переводчик, и в результате получил 53% правильных ответов). 5. Сертификационный экзамен сдаётся на сайте scrum.org, где другой интерфейс, чем у тестовых экзаменов. Это может добавить мандража, если станет неожиданностью. Но существенных отличий там нет. Разве только можно закладки ставить. 6. Перед сдачей самого экзамена убеждаемся, что у нас есть час времени, когда точно никто не будет отвлекать и интернет точно не отвалится. Я перестраховывался 3g модемом, но, слава Богу, не пришлось. 7. Во время экзамена ни в коем случае не надо париться над сложными вопросами! Если вопрос сложный, то выбирайте то, что вам кажется верным, ставьте на вопрос закладку (bookmark) и идите дальше. Большинство вопросов (около 60 из 80), при условии что всё вышеописанное вами сделано добросовестно, вы отобъёте за 30 минут. Оставшиеся 30 минут можно потратить, чтобы внимательно и вдумчиво разобрать все закладки. У меня даже получалось в интернете поискать варианты в это время. 8. Не надо ставить закладку на все вопросы, в которых у вас есть сомнения. Ставьте закладку только там, где вы вообще не уверены. Иначе получится неприятная картинка, когда сначала вы закладки ставили на средне-сложные вопросы, а потом стали ставить только на очень сложные, и в результате под конец теста у вас не 20 закладок, а 40, и времени в обрез. 9. Помните — это экзамен. Не надо быть самоуверенным, а то завалить его проще простого. Но и мандражить сильно не надо. Просто тщательно подготовьтесь, и всё будет хорошо. Оригинал поста в Фейсбуке
Андрей Толмачев рассказывает, как разрешить взаимное недовольство Владельца Продукта и Команды Разработки.

Условия задачи

Представьте такую ситуацию. Вы — новый Скрам-мастер. Ваша Команда Разработки состоит из системного аналитика, двух разработчиков и двух специалистов по тестированию. Длина Спринта — две недели. Команда работает со сложной системой на старой платформе, поэтому для каждого элемента Бэклога Продукта аналитика, разработка и тестирование попадают в отдельные Спринты. В течение последнего Спринта Команда не успела сделать работу, взятую в Спринт, поэтому на Ретро Владелец Продукта допытывается, кто чем занимался в течение Спринта. Владелец Продукта жалуется, что Команда работает очень медленно. Члены Команды жалуются, что бизнес контролирует и микроменеджит их. Как разрешить взаимное недовольство Владельца Продукта и Команды Разработки? Давайте разбираться.

Что происходит

Для каждого элемента Бэклога Продукта аналитика, разработка и тестирование попадают в отдельные Спринты — это означает, что элемент будет готов к выпуску только через три Спринта. В таком случае истинная длина Спринта равна шести неделям — это больше, чем допускает Руководство по Скраму.
Максимальная продолжительность Спринта — один календарный месяц. При большем сроке планирования возможны изменения целей, увеличение сложности и рост рисков.
Руководство по Скраму Когда Команда редко поставляет готовый Инкремент, то редко получает обратную связь от стейкхолдеров и клиентов. В результате:
  • возрастает риск сделать не то, что надо. Способность реагировать на изменения падает;
  • стабильность процесса падает, прогнозировать работу сложно. Например, тестирование выявляет дефекты через недели после разработки. Баги обнаруживаются поздно, поэтому объём «поддержки» будет меняться от Спринта к Спринту;
  • рабочий процесс перестаёт быть прозрачным.
По этим причинам Команда Разработки теряет доверие Владельца Продукта и стейкхолдеров, следовательно, давление возрастает и начинаются конфликты.

Решение

Скрам-мастер не может решить проблему самостоятельно, но может помочь своей Команде следующим образом:
  • объяснить описанную выше системную динамику и её вредные последствия. Скрам-команда должна понимать, что правило Скрама про Done Increment каждый Спринт — это естественное системное решение их проблемы;
  • помочь сформулировать или пересмотреть минимальный DoD, который может быть выполнен в течение Спринта и который обеспечит готовность Инкремента к релизу;
  • научить Команду Разработки правильно декомпозировать элементы Бэклога. Небольшие элементы в Бэклоге Продукта способствуют ранней поставке, оптимизации ценности Продукта и улучшению потока работы;
  • помочь договориться взять в следующий Спринт хотя бы один небольшой элемент Бэклога, но довести его до состояния Done;
  • визуализировать поток работы. Прозрачность — залог успеха;
  • устранить простои в работе. Для этого Скрам-мастер обучает Команду хорошим инженерным практикам, например, общему владению кодом, стимулирует развитие T-shaped или E-shaped людей в Команде, заключает командные соглашения;
  • объяснить Владельцу Продукта, что причина задержек — технический долг и убедить его выплатить.
Используйте Ретроспективу, чтобы найти лучшие решения по устранению препятствий. Помните, что эти решения — эксперименты, не факт, что они принесут ожидаемый эффект. Поэтому инспектируйте результаты прошлых решений и адаптируйте решения на следующих Ретроспективах.

Итоги

Готовый Инкремент в конце Спринта — это важнейшие правило Скрама, которое помогает избежать роста рисков, потери предсказуемости и гибкости. Описанные причинно-следственные связи полезно знать, чтобы понимать, почему Скрам требует соответствующий DoD, готовый к релизу Инкремент каждый Спринт. Следующие действия могут помочь в достижении этой цели:
  • декомпозиция работы на небольшие PBI;
  • визуализация потока работы в Спринте и поиск основных узких мест;
  • устранение «простоев» работы с помощью командных соглашений, хороших инженерных практик и развития T-shaped или Е-shaped людей;
  • планомерная ликвидация технического долга.
Комментарии
Дмитрий Блинов, 19 июня 2018

Сергей, привет! Помню, в универе самым опасным словом от лектора было слово "очевидно". Прочитав комментарии, видится, что под вопрос ставится утверждение "оценивать должен тот, кто будет выполняться задачу". Для меня это именно "очевидно", однако есть ли какие-то другие объяснения этого?

» Ищем гребешок для причесывания Беклога Блог о проактивном бизнесе, 22 сентября 2014

[…] которые бы ими не пользовались. Главная причина – люди не умеют оценивать  в абсолютных величинах, поэтому стори-поинты лучше, […]

Сергей Дмитриев, 06 ноября 2012

Спасибо за комментарий, Алексей, хочу кое с чем поспорить.

более четкое ТЗ позволяет уменьшить запас часов на “зализывание ран”

Алексей, у меня всегда возникали проблемы с определением того момента когда ТЗ становится "более четким"? :)
что спецификация строится по общепринятым в организации правилам, к которым привыкли разработчики

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

И тут тоже не соглашусь с вами, прорабатывать требования должен не менеджер с тим-лидом, а вся команда.

Сергей Дмитриев, 06 ноября 2012

Согласен с вами, однако не весь прошлый опыт одинаково применим к оценкам. Если мы оцениваем инсталляцию Drupal в очередной (сотый) раз, то наш предыдущий опыт применим. А если мы делали проект по интеграции с одним банком, а теперь будем делать с другим, то не очень.
Тут неплохо учитывать неоднозначность мира (к примеру по Cynefin модели Дэйва Сноудена) или ей подобных.

Алексей Голдаев, 04 ноября 2012

1. Если мы получаем пояснительную записку от клиента в которой подробнейшим образом и жестко заданы требования, то оценка получится меньше чем в случае с "водой".
Если добавить воды - то это может послужить обходным путём для "пропихивания" дополнительных фич. Так мы делаем вывод, что заказчик не точно знает чего хочет и нам нужен будет запас на "слив" этой воды в последствие и доработку недетализированных или размытых требований.
Аргумент: более четкое ТЗ позволяет уменьшить запас часов на "зализывание ран".
Метод борьбы: Если предположить, что спецификация строится по общепринятым в организации правилам, к которым привыкли разработчики, то оценки будут получатся более регулярными.
Итого - менеджер и технический специалист (тим-лид) должны перерабатывать требования в типовой и привычный для всей организации документ.
Ситуация - А это можете не делать - например мобильная версия сайта - эта фича, которую можно просто забыть. А если заказчик в дальнейшем хочет использовать наши статические страницы как разные типы данных, каждой из которых будет принадлежать древовидная структура и тд. То естественно такой ход нужно предусмотреть в архитектуре.
Якоря - отличный пример рыночной экономики. Введение программиста в работу по оценке - это в том числе торговля - если есть возможность продать себя дороже (в данном случае запас безхозного времени) - он это сделает.
Т.е. всё станет на свои места если иметь ввиду что оценку вы получаете не сферического проекта в вакууме, а именно того где в скором времени прольются слезы и кровь беззащитных апологетов информационных технологий.

Сергей Дмитриев, 13 марта 2012

Спасибо за комментарий, Евгений.

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

Тут хочу с вами не согласится, наиболее точную оценку все-таки дают те, кто непосредственно будет эту работу выполнять.
А что касается опыта предыдущих проектов, если мы инсталлируем друпал 1000 раз подряд, то, да согласен, предыдущий опыт имеет смысл. Если же мы занимаемся инновациями, интегрируемся со сторонними системами, наш предыдущий опыт все равно не поможет нам произвести точные оценки.

Evgen, 20 февраля 2012

Если речь идет о аутсорсе, то определять с точностью до часа и не требуется. Менеджер балансирует между возможной себестоимостью работ и риском что заказчику покажется ценник слишком дорогим. Наиболее точную оценку дают действительно менеджер и архитектор исходя из опыта на предыдущих проектах. А насколько она окажется верной - можно узнать только попробовав.
Ведь успех проекта, это не только грамотная оценка, но и работа с командой и минимизация рисков. Одна и та же команда с одной и той же оценкой может как сдать проект раньше, так и спихнуть его много позже срока.

Lakshmi, 14 января 2012

Оценки должны основываться на прошлом опыте. Чтобы довать более менее адекватные оценки необходимо базироваться на базе знаний

Сергей Дмитриев, 05 декабря 2011

К сожалению 60 летний опыт разработки ПО показывает, что такой подход не работает. Ни архитектор, ни менеджер, не могут сказать кто и за сколько сможет сделать ту или иную задачу.

Murad, 05 декабря 2011

Если речь о разработке ПО, то у исполнителей должен быть архитектор и менеджер. Они разбивают задачу на подзадачи, описывают элементы системы, устанавливают требования к ним, определяют порядок разработки и распределеют разработчиков.
Но самое главное - именно эти люди накапливают опыт работы по ТЗ! Поэтому они и должны этим заниматься.

Сергей Дмитриев, 24 ноября 2011

когда время на оценку 100- и 500-страничного документа примерно одинаковое.
хочу уточнить, это не документы были 100 и 500 страничные, страниц было от 3 до 7, а 100 и 500 это было количество часов, в которое разработчики оценили работу.
Если оценка делалась на основе проработки и декомпозиции документа на конкретные и понятные задачи, оценки всегда более-менее точны.
Исследование как раз и делалось с декомпозицией и проработкой и все равно доказало что оценки - это гадание на кофейной гуще.
Мне кажется, дело тут в том, что в больших и подробных документах за деревьями сложно разглядеть лес, и времени на оценку уходит больше.
Тут вы совершенно правы, есть очень примечательный график, с кривой неопределенности оценки. Там как раз, это хорошо видно, чем больше вкладываемся в рассасывание деталей, тем больше "леса" мы строим и сами же в нем и запутываемся.

Виктор Глушенков, 21 ноября 2011

По опыту могу сказать, что психологические эффекты, описанные в исследовании, оказывают сильное влияние, когда время на оценку 100- и 500-страничного документа примерно одинаковое. Если же на оценку 500-страничного «ТЗ» потратить в 5 раз больше, то и оценки будут адекватнее.
Опять-таки, психологическое влияние оценок других команд будет так же сильно, если собственная оценка во многом делалась на глазок, или что называется «пальцем в небо». Если оценка делалась на основе проработки и декомпозиции документа на конкретные и понятные задачи, оценки всегда более-менее точны. Или, по крайней мере, куда точнее данных на глазок. Бороться с психологическими эффектами можно осознанностью принимаемых решений.
Третье, что хотелось сказать: есть ещё психологическое влияние прошлого опыта работы над подобными проектами. Проблемы других проектов заставляют людей перестраховываться и увеличивать оценку.
Наконец, оценки данные по исходному ТЗ чуть менее, чем всегда будут пальцем в небо. Мы обычно делаем их на основе тщательного обсуждения с заказчиком и изучения предметной области и существующего «багажа» системы. При этом фактически рождается ещё один документ, хоть и не 100-страничный, а оригинальный может сократиться и до 20 листов.
Ещё что интересно, при таком подходе оценки, данные по краткому документу, оказываются точнее, чем если бы у нас было подробное описание всех вариантов использования и пользовательского интерфейса. Мне кажется, дело тут в том, что в больших и подробных документах за деревьями сложно разглядеть лес, и времени на оценку уходит больше.
Адекватная оценка — это уже этап разработки системы, она требует соответствующего времени и ресурсов.
А исследование само по себе интересное.

Сергей Дмитриев, 04 ноября 2011

Просто Murad похоже хотел сказать, что есть кто-то кто знает лучше :). В таком случае хочу спросить, может ли какой-нить эксперт по чтению книг, сказать мне, за сколько я прочитаю нового Гарри Поттера? Задумайтесь об этом...
Все таки разработка софта, это не приборостроение, и к сожалению, гораздо меньше проектов у нас, когда есть "аналогичные работы" с которыми мы можем что-то сравнить (если мы не друпал инсталлируем нашему 1000-ому клиенту). Скорее всего, никто не интегрировался до этого, с системами именно этого клиента, и прочие инновационные штучки, до нас тоже никто не делал.

Andrey Kalganov, 04 ноября 2011

Так исследование же это и доказывает :-) Оценивали же как раз те, кто собирался делать ;-). А если серьезно,
то действительно... начинаешь задумываться... надо ли отдавать оценку на откуп "не профессиональной" оценке. На днях узнал, как оценка делалась в советский времена в одном институте, занимающемся приборостроением (оценка делалась на работы по разводке печатных плат): оценка делалась начальником на основе плотности монтажа * на квалификацию исполнителя. Делаешь раньше срока - оплачиваемый отгул, не укладываешься - лишают премии или еще что. Знающие люди говорят, что система работала отлично :) Т.е. оценка это статистика по аналогичным работам * на квалификацию.

Сергей Дмитриев, 31 октября 2011

Очень хочу конструктивно с этим поспорить. А кто же еще может сделать оценку, кроме как те люди, которые непосредственно будут делать работу?

Murad, 31 октября 2011

Просто оценкой не разработчики должны заниматься

Люди не умеют оценивать | Agile.by, 30 октября 2011

[...] Дмитриев пишет в своем блоге о том что может оказать влияние на оценку [...]