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

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

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

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

Хакатон № 1. Строгие рамки


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

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

В результате подавляющее число команд (15 из 20) сделали чат-ботов. Во время выступлений решение одной команды было мало отличаемо от предыдущей. Не вытерпев, один из членов жюри спросил у очередной выходящей на сцену команды: “Что, ребята, у вас тоже чат-бот?”. В итоге из трех призовых мест, первое и второе места досталось командам, которые не стали делать чат-ботов.

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

Мораль


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

Хакатон №2. Невыполнимые задания


Хакатон в Амадоре обещал быть интересным. Компания-спонсор — крупный производитель телефонов, начала подготовку за 4 месяца до даты проведения. В социальных сетях проводился пиар мероприятия, потенциальным участникам необходимо было пройти технический тест и написать про свои прошлые проекты, чтобы быть отобранным на данное событие. Призовой фонд был приятно большим. За несколько дней до хакатона, менторы провели техническую сессию для того чтобы у участников было время проникнуться спецификой отрасли.

На самом мероприятии организаторы предоставили датасет логов оборудования объемом 8 Гб, задача — бинарная классификация поломок. Рассказали про критерии оценки проектов — качество классификации, креативность создания фич, умение работать в команде итд. Вот только незадача — на 8 Гб “фичей”, было всего 20 примеров в трейне и 5 в тесте. Финальный гвоздь в крышку гроба хакатона забил лик в данных: логи оборудования полученные в среду содержали ошибку в работе оборудования, а созданные в четверг — не содержали (об этом, к слову, знали только две команды, и обе были из России — родины опытных датамайнеров). Хотя даже знание истинных лейблов теста не помогло подогнать ответ — задача была нерешаемой. Организаторы не получили желаемого результата, участники потратили уйму времени решая плохо составленную задачу. Хакатон был провален.

Мораль


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

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

Хакатон №3. Take it or leave it


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

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

Во время оценки проектов, нам, как и многим командам, сказали что это не то, что ожидал заказчик, добавив при этом, что мы должны переделать проект, если мы хотим побороться за призовое место. Мы не стали ничего переделывать, смирившись с поражением. Из сорока команд-участников мы не прошли даже в топ-7, хотя выбор организаторов, как мне кажется, был довольно странным. Например, они пропустили в финал команду, которая сделала приложение по расчету скорости ветра и солнечного излучения (СИ) по данным датчиков смартфона: микрофон для ветра, датчик освещенности — для СИ. Киллер фичей была классификация hotdog/not hotdog на три класса: Солнце, ветер, вода и показ соответствующей статьи в Википедии (демо).

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

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

Мораль


Часто пожелания и обратная связь от организаторов приходят на помощь проекту. При этом, однако, участники не должны опираться на советы менторов как хромой на трость. Если вы слышите от организаторов фидбэк по вашему проекту в духе “уберите, мы это не заказывали” — ваше участие в хакатоне на этом можно считать завершенным.

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

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


  1. dimkss
    14.05.2019 16:06

    Спасибо, интересно.
    Очень хочется пошутить про хакатон по игре где можно грабить корованы, но не буду.


    1. riky
      14.05.2019 22:11
      -2

      #непошутил


  1. vortupin
    14.05.2019 18:50
    +1

    Припоминаю, как я когда-то участвовал в хакатоне по приложениям для Windows phones, организованном Microsoft и Nokia (в Waltham-ском офисе MS). По-моему, я был единственным участником, который сделал все действительно «с нуля» за время хакатона; остальные «команды» индусов и китайцев (да и американцев) пришли уже с готовыми программками, и все 8 часов тупо переписывались в FB, жрали чипсы и пили колу. Я тогда занял второе место (и получил кучу подарков, которые потом продал на ebay, так, что хакатон себя окупил), а, по сути, занял еще и первое место в категории amateurs — написал одной, «бомжевато» выглядящей пожилой тётке, простенькое приложение, с которым она «заняла» первое место :)

    К сожалению, не могу себе представить, как можно «энфорсить» «честную игру» на таких мероприятиях. Выдавать «голые» компьютеры с установленными Visual Studio + SDK, заблокированным, кроме MSDN, веб-доступом и «залочеными» флешками? Наверное, как-то так можно, но никто этим не занимается. В общем, то, что я видел — это полнейшая профанация, и бесчестная игра (хотя условия явно говорили, что участники должны создать приложение «с нуля»).


    1. vedenin1980
      14.05.2019 19:24

      Наверное, как-то так можно, но никто этим не занимается

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

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


      1. vortupin
        14.05.2019 20:24

        Начальные условия в описанном мною случае были как раз что-то вроде «создать за время хакатона и подготовить к публикации мобильное приложение». Был «зашаренный» профессиональный дизайнер, который бесплатно и быстро предоставлял нужные графические assets, включая иконки. Его услугами воспользовалось… аж 2 человека (из довольно большой толпы).

        Как я понимаю, основная суть «хакатона» в том и состоит, чтобы методом «быстрого хака» сделать что-то с нуля — иначе в чем смысл-то? Для оценки «годности» и популярности мобильного приложения есть Microsoft store (ну, или любой другой магазин), размещай там и смотри, «какой ты Сухов».

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

        P.S. Самое смешное — были два русских «дяденьки», лет так за 55-60 каждый, работающие, видимо, в одной компании, но не имевших к программированию windows phones ни малейшего отношения. Дождались ланча, пожрали, взяли мелкие призы, положенные всем, и свалили. Притом, до того, не подозревая, что кто-то, кроме них, говорит по-русски, они довольно откровенно и цинично «обменивались мнениями» вполголоса :D


        1. balexa
          14.05.2019 23:21

          Ну что значит с нуля. Где грань то? Выдавать компьютеры «голыми», как вы предложили — это как-то странно, полхакатона вы будете писать всякие StringUtils, HttpUtils и прочие.
          Если я использую библиотеку с гитхаба — это с нуля, или нет?
          Если эта библиотека — моя собственная, это с нуля?
          Если библиотека — это не оформленная нормально библиотека, а набор моих собственных кусков кода с предыдущих проектов?
          А если я взял в команду человека с феноменальной памятью и скоростью печати 400 символов в минуту, который наберет готовый код — это с нуля?

          Смысл хакатонов в том и состоит, чтобы из надерганных откуда угодно кусков собрать работающий прототип. А не в том, чтобы «написать все с нуля на компьютере без интернета»


          1. vortupin
            14.05.2019 23:29

            Вы прочли то, что я выше написал? Вы тоже считаете, что прийти на хакатон с готовым приложением, ради того, чтобы подзаработать дополнительных плюшек, это этично? Тогда зачем называть это «хакатоном», просто не понимаю! Назовите «раздача призов тем, кто написал приложение и пришел к нам просидеть целый день кушая чипсы» — будет, по крайней мере, честно.


            1. balexa
              15.05.2019 10:58

              А вы? Я нигде не говорил что прийти с готовым приложением — это хорошо и правильно. Я говорил о том, что провести грань между «готовое приложение» и «использовал свои наработки» весьма тяжело.

              И выдавать «компьютер без интернета» — это весьма глупо. Нормальный человек хотя бы с толикой уважения к себе после такого встанет и уйдет.

              Правильным выходом будет для вас не участвовать в хакатонах, где тема «напишите нам любую программу».


              1. vortupin
                15.05.2019 16:06
                -1

                А вы?… Я говорил о том
                Значит, невнимательно читаете, или не умеете понимать прочитанное. Перечитайте еще раз нижнюю часть моего комментария. Я писал как раз о том (в подтверждение оригинальной статьи), что, порой, организаторы не умеют правильно организовать и проводить пресловутые «хакатоны», профанируя, тем самым, само понятие.

                Нормальный человек хотя бы с толикой уважения к себе после такого встанет и уйдет.
                Когда на head-2-head интервью вам предлагают написать сниппет на whiteboard, вы тоже встаете и уходите? ;) «SO-based programmer», что ли?

                Правильным выходом будет для вас не участвовать в хакатонах, где тема «напишите нам любую программу».
                А для вас «правильным выходом» будет не давать ЦУ и непрошеные советы тем, кто в них не нуждается, и вас об этом не просил.


                1. roryorangepants
                  15.05.2019 16:31

                  Когда на head-2-head интервью вам предлагают написать сниппет на whiteboard, вы тоже встаете и уходите? ;) «SO-based programmer», что ли?

                  Во-первых, там на интервью не подразумевается, что код будет на 100% рабочим, потому что очевидно, что во время whiteboard coding человек будет писать хуже, чем с IDE и интернетом.
                  Во-вторых, сейчас бы сравнивать сниппеты на собеседовании и работу над проектом на хакатоне.


                  1. vortupin
                    15.05.2019 17:53
                    -1

                    Во-первых, неплохо бы читать для начала то, на что вы отвечаете. А во-вторых, лезть минусовать карму, «затыкая рот» собеседнику, вовсе не обязательно (хотя, возможно, что это важно для вашего ЧСВ).


                    1. roryorangepants
                      15.05.2019 18:07
                      +1

                      С чего вы взяли, что я полез минусовать вам карму, «затыкая вам рот»?
                      Нет, после этого комментария я, конечно, так и сделаю.


                1. balexa
                  15.05.2019 17:07

                  порой, организаторы не умеют правильно организовать и проводить пресловутые «хакатоны», профанируя, тем самым, само понятие.

                  Вы уверены? Вы точно знаете, какая была цель у организаторов? Она может быть разная — найти людей на будущие проекты, найти решение конкретной задачи, представить компанию и рассказать про нее новым людям, разрекламировать конкретный продукт, и т.д.

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

                  А то что вы ожидали что организаторы ждут «того, кто напишет приложение с нуля на вайтборде без единой ошибки и интернета», это ваши проблемы.

                  Когда на head-2-head интервью вам предлагают написать сниппет на whiteboard

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

                  А для вас «правильным выходом» будет не давать ЦУ и непрошеные советы тем, кто в них не нуждается, и вас об этом не просил.

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


    1. pyrk2142
      15.05.2019 00:46

      По-моему, я был единственным участником, который сделал все действительно «с нуля» за время хакатона;
      Во время волны популярности хакатонов в России в прошлом году это было достаточно большой проблемой: команды писали свои проекты заранее, отлаживали их, привозили почти готовые или уже готовые решения. Если не было идейно сильных проектов, а у жюри — яиц, то такие команды получали выигрыши и неплохо зарабатывали за выходные.

      Помню даже фееричную картину: команда привезла два полноценных PC с мониторами на хакатон в другой город, собирала их со словами «Ну все, всем *****, сейчас мы тут всех ********, мы такую штуку *********.» Потом достаточно быстро подняли сервер для проекта на PHP и сидели с гордым видом. К чести организаторов — эта команда ничего не выиграла.


      1. dimonoid
        15.05.2019 04:45

        Ни у кого ноутбуков не было что ли?
        Когда я был на хакатоне который длился 24 часа, у нас команда из 3х человек сразу разделилась в надежде что нибудь да полезного накопать из датасета разными методами. Первый день в основном ушел на брейншторм, второй — на склеивание накоденного за первый день с нагугленным. Заняли второе место. Одного из членов команды организаторы даже потом на работу взяли после этого (выпускной год университета).


    1. afejie4
      15.05.2019 17:47

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


  1. Harbour
    15.05.2019 09:35

    sota — state of art? ;)


    1. tEarth Автор
      15.05.2019 10:16

      State of the art


  1. Peter03
    15.05.2019 10:58

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

    А для data science конкурсов обязательно делать базовую реализацию. Должно занять пару часов, но зато вскроет все проблемы в данных, даст точку отсчёта и поможет избавить от необходимости делать некоторые рутинные вещи.


  1. ideog
    15.05.2019 11:43

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


  1. x8core
    15.05.2019 15:12

    Как наcчёт физического истощения во время ускоренной реализации той или иной идеи?


    1. tEarth Автор
      15.05.2019 15:34

      На хакатоне дается 2 дня на работу (30-48 часов, возьмем 48 для простоты счета). Убираем время на сон (16-20 часов), остается не более 30. Из них реально на продуктивную работу пойдет часов 8 (в среднем). Если правильно организовать работу (сон, питание, выход на свежий воздух, зарядки, минуты осознанности, правильное общение с командой и переключение активности), то deep work часы можно добить до 12-14. После такой работы будешь чувствовать себя истощенным, но это будет приятная усталость.
      Кодить без сна и перерывов перебиваясь энергетиками — путь к провалу.


      1. ideog
        15.05.2019 16:51
        +1

        Согласен. Еще от себя могу добавить, что не спать в ночь перед сдачей и в той же ночью понять что все пора переделывать — тоже путь к провалу. Уж лучше выкатить что-то работающее, чем показать ничего и по-идее что-то классное.