Искусство и наука об оценки в IT:
Наука оценки хорошо развита и хорошо поддерживается программными инструментами.
Искусство оценки преимущественно основано на эмпирических правилах и их еще нужно немного доработать.
Эта статья основана на материалах Steve McConnell из Construx и часть материалов как были остались картинками.
Смертные грехи
Грех №1 Путать цели с оценками
Проводите различия:
Установка целей — ключевая часть искусства оценивания.
Когда вас попросят дать оценку, определите, действительно ли вы должны оценивать или лучше выяснить, как достичь цели.
Лучше всего рассматривать это как итеративный процесс который выравнивание цели и оценки.
Грех №2 Говорить «да», когда вы действительно имеете в виду «нет»
Почему разработчики говорят «да».
Очень трудно составить энергичную, правдоподобную и рискованную защиту оценки, которая не основана на количественных методах, подтверждена небольшим количеством данных и заверена в основном догадками менеджеров.
Фред Брукс (1975)
Особенности коммуникаций в компании:
Разработчики программного обеспечения, как правило, интроверты и относительно молоды
Специалисты по маркетингу и продажам, как правило, более экстравертны и организационно выше разработчиков, с которыми они договариваются
Очень легко скатиться в продавливание
Грех №3 Приверженность к ранним оценкам в конусе неопределенности
Брать на себя обязательства можно только по оценкам на поздних этапах, когда вы понимаете суть работы.
Самые точные оценки — поздние.
Грех №4 Предположение, что недооценка не влияет на результаты проекта
Ошибки планирования влияют нелинейно на проект. С течением времени накапливаются ошибки и дефекты, а также начинают все чаще выстреливать риски.
Грех №5 Оценка в «Невозможной зоне»
Загадка
Предположим, вы едете вверх по холму 1 милю со скоростью 30 миль в час.
Как быстро вам нужно ехать вниз по холму, чтобы в среднем за всю поездку средняя скорость составляла 60 миль в час?"
Вариация на тему греха #5
Общепринятное определение оценки гласит: 'Оценка — это самое оптимистичное предсказание, которое имеет ненулевую вероятность сбыться'... Принятие этого определения неизбежно приводит к методу, называемому «какая самая ранняя дата, когда вы не можете доказать, что не закончите оценивание».
Том ДеМарко (1982)
Оценки — это вероятностные утверждения.
Что происходит, когда вы берете номинальную оценку и сжимаете ее? Не существует такого понятия, как «оценка в одной точке», которая была бы правильной или имела бы смысл. Все оценки включают по крайней мере неявные вероятности (даже если оценщик этого не знает).
Сжатие расписания и "Невозможная зона".
Компромисс между затратами и графиком.
Все исследователи находят некоторый компромисс между сжатием графика и затратами. Никто не считает, что компромисса нет. Предполагается, что максимально возможное сжатие графика составляет около 25%.»
Тут вспоминается старый пост: https://t.me/junior_pm/17
Не создавайте оценки в «невозможной зоне».
Вернемся к вопросу. Какое решение загадки?
Грех №6 Переоценка полезности от новых инструментов
Полезный эффект от новых инструментов или методов есть Есть и проблемы:
Необходимо заплатить цену за обучение при первом использовании
Максимальная эффективность не достигается при первом использовании
Первое использование часто сопряжено с ошибками
Ранние заявления об эффективности часто основаны на экспертном использовании - иногда разработчиками или авторами, изобретшими инструмент или метод!
Результат меньше ожидаемого, когда он появляется
Новые инструменты и методы увеличивают риски
Лучшее предположение — потери производительности от начального использования нового инструмента или метода.
Грех №7 Использование только одного метода оценки
Используйте несколько методов:
Сложно быть уверенным в оценках, созданных только одним методом, — это способствует проблеме «энергичной защиты» Брукса.
Ведущие организации используют несколько техник оценки.
Создавайте оценки разными способами и ищите сходимость или разброс между оценками.
Грех №8 Не использование программного обеспечения для оценки
Используйте программное обеспечение для оценки:
Лучшая поддержка для науки оценки — это инструменты.
Оценки, созданные с помощью инструментов, могут иметь большую достоверность, чем оценки, созданные вручную.
Хорошие инструменты для работы с оценками: https://github.com/FocusedObjective/FocusedObjective.Resources
Грех №9 Не включение в оценку влияния рисков
Учет рисков при оценке:
Проекты по разработке программного обеспечения по своей природе нестабильны и связаны с рисками.
Общий риск (RE) — это ожидаемое значение перерасхода бюджета на проекте.
Оценка RE — это там, где начинается «буферное планирование».
Грех №10 Предоставление импровизированных оценок
Обращайтесь к оценке как к мини‑проекту.
Определите стандартизированную процедуру оценки.
Элементы стандартизированной процедуры:
Четкое описание неопределенности оценки.
Использование нескольких подходов к оценке.
План повторной оценки на заранее определенных этапах проекта.
Определение момента, когда «оценки» становятся «обязательствами».
Разбивайте большие оценки на меньшие оценки.
Разделяйте системы на модули Разделяйте большие задачи на маленькие задачи Используйте статистическое свойство, называемое «законом больших чисел» — высокие и низкие значения склонны уравновешиваться друг друга.
Заключение
Плохие оценки (или цели) — это норма.
Возможны хорошие оценки!
Представленные здесь смертные грехи и эмпирические правила — это только верхушка айсберга.
Несмертные грехи, но тоже грехи
Грехи №20– №11
Грех №20
Давать оценку «этого», чтобы составить план прежде чем кто‑либо узнает, что «это».
Грех №19
Верить, что наиболее достоверные оценки происходят от людей с наиболее мощными голосовыми связками.
Грех №18
Думать что все оценки конвертируются друг в друга. Переводить деньги в календарные сроки и сторипойнты в дни.
Грех №17
Строить планы на новый проект опираясь на первоначальный план прошлого проекта. Игнорируйте фактические сроки и прошлый опыт.
Грех №16
Предполагать, что отдел продаж лучше оценивает программные проекты, чем разработчики.
Грех №15
Давайте оценку, игнорируя рабочие моменты:
посещение встреч...
переключения на другие проекты...
поддержку ключевых клиентов...
отпуска...
болезни...
чрезвычайные ситуации...
Грех №14
Представлять оценки с высокой степенью точности («67,5 часа»), которые поддерживаются только низкой степенью точности («±2 месяца»).
Грех №13
Считать, что инструменты оценки (такие как Монте‑Карло) не могут сравниться с вычислительной мощностью из системы менеджера, ручки и салфетки.
Грех №12
Рассуждать так: «Чем раньше мы профакапим сроки, тем больше времени у нас будет на их опережение».
Грех №11
Утверждать, что разработчики могут научить лучше оценивать. Выносить это как решения с ретроспективы.
Комментарии (11)
iprogramerhabr
07.04.2023 14:38Кто-то налажал с нумерацией грехов
Renewal_Studio Автор
07.04.2023 14:38Да не, так специально задумано) Первые 10 это смертные грехи, а потом в обратной порядке несмертные
zarfaz
07.04.2023 14:38+1Респект, мсье. Очень и очень даже хороший рид. Всё что знал по полочкам разложил и разьяснил. Особенно зашла ссылочка на тг про методы сжатия сроков
Luchnik22
Спасибо за список, не знаю как сформулировать кратко мысль (отдельную статью можно написать на эту тему), поэтому задам вопросом, который возможно наведёт на интересные мысли - зачем вообще нужна оценка, если более или менее планировать получается максимум на две недели?
Renewal_Studio Автор
Тут сложно. Сейчас будет лонгрид)
Есть разные виды оценок и они нужны для разного. Например, есть оценка проекта в деньгах - отвечает на вопрос какова себестоимость, а есть оценка проекта в сложности - отвечает скорее на вопрос вывезет ли например эта команда или этот ПМ. В целом есть много разных видов оценок)
У тебя вопрос касается оценки сроков, видимо именно продолжительности. Такая оценка может тоже использоваться для разных целей - нр, влезет в условный "спринт" или нет, а также для того чтобы понять сколько выставлять прайс клиенту за доработку и тд
На тему планов - да, чем больше интервал планирования, тем меньше точность. Но это же не отменяет ценность планов как штуки которая дает немного больше определенности и фокуса. А еще планирование позволяет тебе увидеть потенциальные проблемы и придумать чего с ними делать. В общем долгосрочное планирование тоже очень полезно. Да и не везде изменчивость настолько велика, чтобы 2 недели было нашим максимумом горизонта планирования
sshikov
Arhammon
План, по науке, уже давно не жесткая вещь - спланировали, сравнили с фактом, поменяли план и по новой итерации. Если по старинке считать план неизменяемым будет или штурмовщина или рестрикция или одновременно...
Renewal_Studio Автор
Агась. Поэтому лучше относится к нему по-простецки, он штука живая и нужен для удобства, как список покупок в магазин
Arhammon
Отличная аналогия со списком покупок, возьму на заметку - если в магазине гнилая капуста, мы не покупаем её просто потому, что она в плане покупок. Мы меняем план - или идем сейчас в другой магазин или переносим покупку на следующий визит.