Позвольте мне перенести Вас на некоторое время назад. Представьте, что Вы стоите вместо со мной у одной из досок и пытаетесь объяснить коллегам Вашу новую концепцию метрик. Если сказать про мои чувства в тот момент — это было отчаяние. Я со всей отчётливостью понимал, что к сожалению, мои слова не смогли дойти до собеседников. Никто из участников встречи совершенно не воспринял ни одной моей мысли. Они мне не верили.

Не верили не потому, что я не логично изложил суть или сказал что-то глупое. Нет. С этой точки зрения всё было хорошо. “То, что ты предлагаешь — это действительно интересно и инновационно, но… давай-ка мы все-таки сделаем всё по-старому”. Как же обидно было это слышать.

Я разрабатывал систему метрик, ориентировать на которые должны были несколько тысяч человек. Представьте, что Вы совершенно чётко осознаете, что люди вокруг вас упорно и настойчиво, всеми своими силами стремятся упасть в глубочайшую яму, цена падения в которую невероятно высока. Вы просто не имеете права допустить, чтобы это произошло, понимаете? Просто не имеете права!

Но в тот момент я как собачка смотрел преданными глазами на коллег и ничего не мог сказать. Знаете, есть несколько выдающихся человек в мире, которые мне очень нравятся. И один из них — Илон Маск. После очередного неудачного запуска ракеты Фалькон в его компании царило полное уныние. Несмотря на то, что день был очень тяжелым, несмотря на 20 часов, проведенных на ногах и постигший его удар, Маск выступил перед компанией, поддержал сотрудников и завершил свою речь словами: “Сам я никогда не сдамся. Никогда!”

Слова Маска тогда сами собой всплыли у меня в голове: “Я не сдамся!”.

Лихорадочные мысли упорядочились в понимание того, что мои собеседники просто не видели различий, не видели подтверждения моих теоретических раскладок. Может быть они им даже верили, но не хотели тратить деньги компании на разработку того, что “скорее всего не сработает”. Т.е. мне надо было показать реальные отличия когортного представления метрик от обычного — показать в чём засада обычных “слащавых” метрик и в чём когорты их бьют.

Но как это сделать, если никаких данных нет, необходимые метрики еще никем не собираются и никакого инструментария к ним тоже нет и в помине? Как быть? Единственный способ, с помощью которого можно было показать хоть что-то — смоделировать всё в обычном Excel.

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

Для чего мы используем метрики? Чтобы сократить time-to-market — время прохождения командами всей цепочки разработки программного продукта.

В качестве примера в демонстрационном наборе данных анализировалось время успешного прохождения командой стенда развёртывания DevOps (проверки дистрибутивов на корректность).

Задача — понять, сколько времени команды тратят на прохождение стенда и улучшаются ли их показатели. Вот что представляли из себя данные (созданы с помощью сервиса www.generatedata.com ):

image

Первое, что приходит на ум — посмотреть как команды проходят стенд.

По оси X — месяц, начиная с 01.01.2017. По оси Y — количество команд, прошедших стенд.

image

Даже беглый анализ показывает, что такого рода график совершенно бесполезен, потому что не отражает объективной картины — одна и та же команда делает множество сборок и проходит стенд несколько раз в год и это никак на графике не видно.

Да и вообще, непонятно как анализировать такой график и что обозначают все эти росты и падения. Одним словом, обычная бесполезная метрика наподобие посещаемости сайта.

Ок. Попробуем посчитать среднюю длительность прохождения стенда командами:

image

“Какой хороший график!” — воскликнул мой собеседник увидев эту картинку на экране.

— Всё понятно: команда Finance — самая лучшая, а Tech Support — худшая. Среднее время время прохождения стенда — 3 месяца. Красота! Мы устроим соревнование и будем давать премию за сокращение срока прохождения стенда

— Ээээ…. Постойте-постойте. Тут явно что-то не так…

— Да что может быть не так? Всё супер! То, что нужно

И именно тут когортный анализ проявил себя во всей красе. Типичный вид таблицы, предоставляющей время прохождения стенда по когортам:

image

Уверен, что Вы тоже не поверили бы такой таблице. Но несмотря на кажущуюся непонятность, таблица открывает настоящую новую вселенную метрик и показывает картину в совершенно ином свете. Оказывается, что самая “худшая” команда, Tech Support, на самом деле чуть ли не самый крутой передовик, сокративший время прохождения стенда более, чем на 100%:

image

Разве можно за это наказывать? Да за это награждать надо!

Твёрдый середнячок Accounting на самом деле работает из рук вон плохо, постоянно ухудшая свои результаты:



А самая «лучшая» команда Finance и вовсе настолько сильно увеличила время, что значение первого столбца не видно за сильно увеличившимся вторым:



Но ведь это полностью меняет всю картину! Понимаете?! Полностью! Всё становится ровно наоборот, шиворот-навыворот. Вот, оказывается, где скрывается та самая засада.

Как видите, “среднее по больнице” отражает совершенно неверную искажённую картину мира, которая в принципе не может быть использована для принятия управленческих решений. Принципиально не может. А вот когорты, наоборот, дают нужный ответ — улучшаются или ухудшаются показатели конкретных команд и на сколько.

Да, может быть они и не отвечают на вопрос, кто лучший, но вот надо ли это знать вообще?..

Именно поэтому когортный анализ — это будущее, наступившее уже сейчас. Это именно то, что нужно повсеместно внедрять везде, где есть измерения, метрики и графики.

Присоединяйтесь вместе со мной к команде приверженцев когортного анализа! И успехов в работе.

P.S.: Было приятно видеть отвисшие челюсти собеседников при повторном показе.

Комментарии (21)


  1. varenich Автор
    12.10.2017 22:21

    Да, сравнил динамику. Можно смотреть динамику не только по отношению с собственной группе, но и по другим тоже. Когорты — разбиение по интервалам. Т.е. в когорту попадают объекты, родившиеся в этом интервале. Они могут быть как их одной группы так и из нескольких


    1. staticlab
      13.10.2017 08:28

      Я попытался воспроизвести ваш пример. На самом деле очень много нюансов для новичков в статье упущено, из-за этого её действительно очень трудно понять сходу, что и lxsmkv отмечает. Я даже попробовал посмотреть ваши предыдущие статьи — обычно такой стиль изложения подразумевает множество статей, в которых вначале раскрывается теория, а затем уже даются практические примеры. Например, было бы очень хорошо приложить исходный набор данных. Далее, в целом рассказать о сути когортного анализа. Наконец, по шагам воспроизвести построение сводной таблицы и сводных диаграмм в Экселе, поскольку, во-первых, нужно создать дополнительные колонки, а во-вторых, правильно ими воспользоваться.


      На самом деле ваша методика очень интересная и полезная, но именно методическая информация изложена весьма невнятно. Вот даже этот ваш комментарий это иллюстрирует: непонятно, на что и кому вы отвечаете, а без этого теряются контекст и смысл. Возможно из-за такого дёрганого изложения вас и не понимают. Так что вам, скорее, надо быть не Илоном Маском, а Стивом Джобсом — тот умел внятно и красиво презентовать свои продукты.


  1. stychos
    12.10.2017 23:14

    Какое-то стойкое чувство дежавю возникло, будто давным-давно уже читал Вашу статью. Но точно знаю, что не читал, да и не моя это область вовсе. Интересные данные.


  1. Oxoron
    12.10.2017 23:25

    А самая «лучшая» команда Finance и вовсе настолько сильно увеличила время, что значение первого столбца не видно за сильно увеличившимся вторым:

    При этом максимальное «среднее по длительности» у команды Finance = 0.6. У Tech Support максимальное «среднее по длительности» = 3.
    Вот и получается, динамика у сапорта лучше финансистской, абсолютные показатели — хуже. Для того же вывода достаточно было достроить еще один (простой) график в Экселе.

    Ничего не имею против когортного анализа (даже не знаю что это), но на основании только лишь приведенного примера говорить о серьезном преимуществе перед Экселем я бы не стал.


    1. Bonart
      13.10.2017 00:20

      Абсолютные показатели могут отражать не качество работы команд, а объективную разницу между задачами и объемом легаси в проектах.
      И да, если вы премируете по метрике, то ящик Пандоры с фальсификациями уже широко открыт.


  1. novice2001
    12.10.2017 23:51

    А что, команда Tech Support теперь проходит стенд за отрицательное время?


  1. Bonart
    13.10.2017 00:16

    Кстати, все проекты Илона Маска в настоящий момент убыточны. Тоже передовик производства.


  1. SbWereWolf
    13.10.2017 02:28

    тема сисек не раскрыта, в чём суть кагортного анализа? Лучше изложить в новой статье.


  1. lxsmkv
    13.10.2017 02:57

    Люди не хотят принимать то, что они не не могут охватить умом, им легче использовать то что они хорошо понимают. (Есть даже какое-то когнитивное искажение с этим связанное). Это все равно что команду которая всю жизнь работала с subversion пытаться перевести на git. Они не поверят в то, что это удобно потому что это не понятно.
    Все-таки когортный анализ заставляет людей делать интеллектуальный кульбит. Далеко не способны делать умственные кульбиты. И уж тем более не на собрании, когда все скорее думают от том, когда же он закончится. Я даже в спокойной домашней обстановке перечитывал пассажи статьи по нескольку раз, поскольку не знаком с темой. И только после этого, и то приблизительно, понял о чем речь. К сожалению исходня таблица представленна не полностью, а последняя таблица недостаточно хорошо обьяснена, чтобы можно было проследить путь трансформации данных. А если заставить людей на собрании понимать такое — это будет полный провал. Тут нужно проводить дидактическую редукцию до уровня «У Саши было две конфеты..»


  1. michael_vostrikov
    13.10.2017 05:44

    Я правильно понимаю, вы взяли данные не за все время, а просто дополнительно разбили по месяцам?


    1. staticlab
      13.10.2017 08:03

      Собственно эта разбивка и выделяет когорты.


      1. michael_vostrikov
        13.10.2017 09:24

        Ясно, спасибо, просто рассказано как будто инновация какая-то.


    1. varenich Автор
      13.10.2017 10:20

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


  1. michael_vostrikov
    13.10.2017 10:17

    Итак, задача:

    Задача — понять, сколько времени команды тратят на прохождение стенда и улучшаются ли их показатели.
    Нас интересуют параметры команда, длительность прохождения, а также динамика длительности.

    На первом графике ни одного из них нет, так что непонятно, почему вообще он появился.
    На втором графике нет динамики. Улучшение подразумевает 2 измеряемых значения, а не одно.
    И только потом появляется то, что нам нужно. Причем когорты особо и не нужны.

    Для максимальной информативности надо рассматривать длительность каждого прохождения. То есть для каждой команды будет такой же график, как первый, только по горизонтали порядковый номер измерения, по вертикали длительность. Тогда будет видно, что у Finances у одного измерения даты совпадают, как и у Payroll на скриншоте, поэтому там 0, и это не команда стала в миллион раз дольше работать, а просто ошибка в данных. А по абсолютным показателям Finances лучшая, без всяких кавычек.


    1. varenich Автор
      13.10.2017 10:29

      Понятие «Лучшая» — весьма относительно. Вы учитываете, что объем разработки разный у разных команд и это напрямую влияет на длительность прохождения стенда? И за это наказывать?
      Лично я считаю, что сравнение лучшая-худшая вообще категорически нельзя использовать для команд


      1. michael_vostrikov
        13.10.2017 10:42

        Это вы ввели понятие лучшая или нет. Объем разработки у вас в статье не учитывается.
        Я не предлагаю кого-то наказывать, я лишь показал, что ничего не становится «наоборот».


  1. sayanlar
    13.10.2017 10:20

    То есть, вместо того, чтобы сравнивать текущие показатели групп между собой, вы сравнили их динамику по отношению к собственным ранним показателям? Это и есть когортный анализ?


  1. Mimus_spb
    13.10.2017 11:56
    -1

    Представьте, что Вы совершенно чётко осознаете, что люди вокруг вас упорно и настойчиво, всеми своими силами стремятся упасть в глубочайшую яму, цена падения в которую невероятно высока. Вы просто не имеете права допустить, чтобы это произошло, понимаете? Просто не имеете права!


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


  1. f1inx
    13.10.2017 12:19

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

    Приведенные в статье примеры совершенно непонятны из-за полного отсутствия начальных условий, не разъясненной терминологии (которая понятна автору поскольку он участник каких-то своих процессов и часть ресурсов вовлеченных в них, а здешняя аудитория в них в лучшем случае «осознанно не компетентна»).

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

    Из статьи я вижу что, о секрет Полишинеля надо смотреть не только на абсолютное значение Ci*Fk(t) но и на его производную, а можно еще и на вторую или третью производную, посмотреть на первый второй третий момент, дисперсию, корреляцию.

    Но какой в этом смысл, если не известно можно ли вообще это потом масштабировать на время или производительность команды, ее качество или объем задач, и как начальные данные соотносятся с железным треугольником.


    1. varenich Автор
      13.10.2017 12:49

      Точно. Секрет именно в том, чтобы не смотреть на абсолютные значения и средние, а смотреть на производные.


      1. Pilat
        14.10.2017 17:52

        Не забываем, СССР по сравнению с 1913-м годом обогнал в динамике вообще всех вместе взятых.