Время

Заметки об оценке

* * *

Что значит оценить?

Всякое действие направленное на снижение неопределенности называется измерением1. Между оценкой и измерением невидимая грань: часто разница лишь в точности предоставляемого результата измерения. Самый точный способ измерить сколько времени что-то займет — включить секундомер и сделать дело.

* * *

Sprachspiel и «жук в коробке»

Исследования Людвига Витгенштейна совершили переворот в представлениях о том, как язык функционирует в коммуникации. В своих поздних работах он замечает, что люди играют в «языковые игры». Всякое слово имеет значение только в контексте некой коммуникативной игры. Чувство юмора, например, строится на способности подмечать двусмысленность — пересечение нескольких таких игровых контекстов сразу: наркоман-мазохист упоролся ремнем. Для понимания шутки внутренние языковые модели рассказчика и слушателя должны совпадать до нужной степени.

Услышав слово «оценка», мы часто наделяем его каким-то своим личным смыслом по привычке. Думаем, что собеседник имеет ввиду ровно то же самое, что и мы. Часто это не так. Важно понять, в самом ли деле человека интересует время в его вопросе. Стив Макконнелл2, например, предлагает различать estimate (прогноз или просто оценка), target (цель, deadline) и commitment (принятие ответственности, обязательство).

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

Часто пункт назначения — цель или дедлайн — уже известны. Если выставка проходит с 23 по 30 марта, то необходимость набрать лайки и понравиться вполне очевидна и оправдана: встреча с новыми потенциальными инвесторами назначена — демо-версия должна желательно блестеть. Так ли важна здесь точность прогноза, которую довольно сложно и дорого достичь? Быть может и нет. Поэтому чаще всего, чтобы хоть как-то компенсировать неопределенность, гнут железный треугольник. Вопрос меняет свою структуру превращаясь из «сколько точно времени это займет» во «что конкретно можно сделать к этому времени точно».

Если через год после релиза фичи X ожидается 600 новых пользователей ($1 стоит услуга для 1 человека), а через месяц работы над фичей Y ожидается лишь 50, то даже такая грубая оценка вспоможение для рождения более взвешенного решения. Пусть 600 постоянных пользователей в абсолютном значении и больше 50, однако «сарафан» из последних идеально отобранных кандидатов может в значительной степени скорректировать планы развития всей программы, когда спустя два месяца её эксплуатации появится уже 1000 новых пользователей, но с предпочтениями, о которых ранее даже не приходилось задумываться. Такое рассуждение может отменить разработку фичи X полностью и использовать ограниченные средства в месте другом. Работа в течение года в погоне за количеством в 12 раз больше может быть не самой лучшей инвестицией. А может быть и хорошей, если работа одного человека в течение года, будет дешевле работы нескольких групп в течение того же месяца. Именно для того, чтобы помогать делать правильные решения в условиях повышенной неопределенности, и нужна оценка3.

* * *

Что делает компьютер?

Безошибочно и буквально следует вашим желаниям. Какую точность оценки можно ожидать? Если длина среднего человеческого шага где-то 1 метр, то современный процессор с тактовой частотой 4 ГГц совершит почти 4 миллиарда шагов за 1 секунду, то есть «пройдёт» 4 миллиона километров. За 45 секунд вы сможете пешком добраться до Марса (около 175 миллионов километров от Земли), за 15 секунд совершить 1500 кругосветных путешествий, прогулка до Луны займет лишь 1/10 секунды. Какую точность оценки мы ожидаем услышать от человека, который по долгу службы вынужден существовать в этом бескрайнем пространстве, что без должной заботы само по себе4 превращается в вязкое непроходимое болото для него самого и коллег? Какую степень уверенности и привлекательности должно излучать лицо «ресурса»5, чтобы озвучиваемая точность оценки вызывала доверие инвестора?

* * *

Слабая переговорная позиция

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

* * *

Без удовольствия

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

* * *

Команда или набрали по объявлению

Игра внутри организации разработчика не обязательно кооперативная, а сам процесс разработки можно моделировать в терминах теории игр. Равно как и процесс финансирования проекта.

* * *

«Дикари»8

Вы прокладываете маршрут пешего похода по Калифорнийскому побережью из точки А в точку Б на карте. Глядя с высоты МКС на свой маршрут, вы будете видеть ровную стройную линию предстоящего пути. Стоит спуститься на высоту птичьего полета и вам станут заметны некоторые серьезные оттяпанности береговой линии. Её первоначальная гладкость уступит место извилистому живому пейзажу, проступят непроходимые участки и карта в целом подгрузит множество новых деталей, которые не были заметны с высоты первой космической скорости. Позумив еще чуть-чуть, вы обнаружите, что не учли сильные перепады высот ландшафта некоторых из участков пути, а это значит, что вам понадобится кое-какое снаряжение для их преодоления. Оно в свою очередь увеличит вес ваших рюкзаков, а значит уменьшит скорость прохождения всей дистанции. Измерить точно, сколько времени займет путь, не исследовав его вдоль и поперек — довольно сложно. Даже имея релевантный опыт прокладки маршрутов в похожих обстоятельствах в одной и той же географической широте.

* * *

Избранные или победившие в лотерею?

Вы один из нескольких десятков победителей дубайского спортлото. Шейх мультимиллиардер с нескрываемым удовольствием и за просто так готов оплатить все, что вы сможете вынести из местного бесконечного молла за 15 минут. Каждый из счастливчиков может позволить себе взять что угодно на будущее. Никто не станет останавливать ваши любые порывы к стяжательству. Одному нужен новенький шмот для любимой баси. Другая думает о своем дедушке и будет рада найти противопролежневый матрас и грелку. Вон тому лысому в бобочке нужна плойка и телевизор. У всех счастливчиков существует возможность договориться о стратегии и тактиках, которые позволят извлечь максимально возможную пользу из этих 15 минут уникального шопинга. Стоит ли им всем быть каждому самому по себе? Какие именно процессы, о которых возможно договориться, приведут к оптимальному всеобщему благу? Можно ли после этих 15 минут вместе остаться в теплых и дружеских отношениях чтобы еще долгое время после совершать совместные набеги на прилавки? Вы же помните, что для компьютера 15 минут в шагах это 10 полётов к Марсу и обратно? Маску и не снилось.

* * *

«Война и мир»9

«Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта? Ну представь, что ты писатель и поддерживаешь проект "Война и мир". У тебя ТЗ — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь "шёл дождь", сохраняешь, вылетает сообщение об ошибке "Наташа Ростова умерла, продолжение невозможно". Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение "Поручик Ржевский умер." Выясняется, что он в следующей главе облокачивается о столб, которого уже нет...»

* * *

1

Дуглас Хаббард. Как измерить все, что угодно.

2

Steve McConnell, Software Estimation: Demystifying the Black Art.

3

"Responding to change over following a plan." https://agilemanifesto.org/

4

https://en.wikipedia.org/wiki/Software_rot

5

Есть много людей, для которых это и подобные определения — не ирония вовсе.

6

Customer collaboration over contract negotiation. https://agilemanifesto.org/

7

Здесь инвестор и программист в широком смысле этих слов. Агенты экономических взаимоотношений. Можно быть самому себе инвестором и использовать все текущие сбережения для того чтобы создать что-то такое, что в будущем не только окупится, но и будет иметь большую ценность для многих. Для одного $500.000 первого раунда это игра ва-банк, для другого всего лишь вошедшее в привычку изменение циферек в компьютере после ежегодного прокручивания наследства на финансовых рынках. https://neal.fun/printing-money/

8

https://www.quora.com/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3/answer/Michael-Wolfe

9

RSDN