Всем привет, я – программист и тимлид в компании разрабатывающей корпоративное ПО. В последнее время на Хабре активизировалась тема проведения хакатонов. Появляются посты, например, от компании Рамблер – Хакатон как источник улучшения жизни в компании. Вставлю и я свои пять копеек.

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

Расскажу свою историю и, возможно, она убедит вас в обратном.

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

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

Как мы не хотели участвовать в хакатоне


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

Сначала меня эта затея не очень впечатлила. Конечно же, я много читал про то, что хакатоны – это интересно, весело и полезно, но перспектива провести два выходных дня в офисе не радовала.

Работы тогда и так хватало, у нас начался первый спринт очередного релиза. Было очевидно, что кодить два выходных дня после интенсивной рабочей недели, и потом еще плавно начать следующую будет тяжело в физическом и моральном плане. Также было не понятно, что можно взять в качестве темы. Хотелось выбрать то, что будет интересно реализовать и при этом, чтобы результат не ушел в пустоту.

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

Со второй проблемой было сложнее. Мне интересна тема работы с данными: эта задача остается актуальной, в ней можно реализовать крутые фичи, правда их еще надо было придумать.

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

Цель проста: дать пищу для анализа, чтобы понять где кроются проблемы и какие есть точки улучшения.


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

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

Ну что ж, идея есть, отлично! Осталось найти команду.

Это, как ни странно, оказалось самой легкой частью. Мне повезло, что вместе со мной работают легкий на подъем программист Саша (@MonkAlex) и опытный, но все еще готовый к любому экшену, аналитик Владимир. Обсуждаем детали, решаем с чего будем начинать и в каком формате работаем. Придумываем название – «Мониторинг и анализ».


Поехали…

О том, как мы не победили в хакатоне


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

Работать решили гибко, главным и единственным критерием было сделать что-то работающее к концу хакатона. Первым делом мы нарисовали карту фич. Дальше отметили приоритетом [0] то, без чего вообще нет смысла идти на демонстрацию – в нашем случае это была стартовая страница с набором виджетов. Потом прикинули, что будем делать, если останется время (в итоге половину из этого сделали, а половину представили, как потенциальные пути развития). И начали «пилить».



Примерно час потратили на поиск готовых компонентов, параллельно развернули тестовую инфраструктуру.

Начали с «бублика» исполнительской дисциплины. Сделали его парно с Сашей – так было проще вникать в новую тему. Заодно накидали «скелет» для остальных виджетов. Форма с единственным виджетом, работающая на более-менее реальных данных была готова уже через три часа.

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

В воскресенье в 16:00 уже начиналась презентация и поэтому утром четко решили, что будем допиливать. Остановились на том, что важно успеть сделать интерактивный переход от виджетов стартовой страницы на их детализацию. За час до дедлайна решили «заморозить» код и пару раз прогнали основные сценарии, попутно отметив куда лучше не нажимать, чтобы все работало.

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



Кроме нас из 7 команд-участников только у двух получилось довести идею до работающего прототипа. В итоге все три команды и стали призерами, а нам досталось почетное второе место.

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

Как из идеи вырастает фича


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

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

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

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

Начали с проектирования:

  • Выкинули фичу «Анализ согласования», так как с ней точно не успели бы закончить в срок.
  • Убрали лишнее с главной страницы.
  • Проработали страницы с детализацией.
  • Решили, что 5 самых загруженных сотрудников – это мало и увеличили их количество вдвое.

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

Так выглядела главная страница:


А так детализация по людям и временной шкале:


Фича вошла в продукт и ей начали пользоваться. Не очень активно, но мы изначально понимали, что в таком виде это штука не массовая и ее целевая аудитория – это несколько людей в компании.

Но главное – от нее уже был бизнес-эффект. Даже на такой небольшой выборке нашлись проблемы: те, кто не выполнял задания; нашлись зависшие очень давно процессы и самые загруженные сотрудники.

Казалось бы, простая вещь, но тем не менее с помощью нее можно отслеживать массу тенденций. Чтобы донести это до пользователей и с целью пиара новой темы, и чтобы пояснить что это такое и зачем написали статью Развитие интерактивных инструментов СЭД для анализа эффективности работы сотрудников.

Фидбек в целом был положительным, но фича не стала массовой и осталось ощущение незаконченности.

Как фича живет и развивается


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

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

Кроме этого «Мониторинг и анализ» открывался в отдельном окне и найти его было непросто. Поэтому его разделили на отдельные виджеты. Они были вынесены на рабочий стол с настроенными представлениями от ролей, которые в свою очередь вычислялись от должности сотрудника и выданных ему прав доступа. В результате все нужные конкретному человеку данные были на самом видном месте системы и показывались после запуска клиента.


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


В таком виде это и вышло в новой версии. Сегодня, судя по статистике, можно сказать, что фича нашла своих пользователей. Мониторинг использования на примере боевого стенда с 200 пользователями показывает, что ежедневно более 20 пользователей запускают «Мониторинг и анализ» и более 100 раз в день виджеты на рабочем столе используются для перехода к детальным данным.

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

Почему вам стоит поучаствовать в хакатоне


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

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

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

3. Хакатон – отличный способ донести идею до руководства
Как правило решения о том, как будет развиваться продукт принимает руководство. Но заказчикам и product owner’ам тоже требуется помощь в выборе фич. В рамках ограниченных ресурсов всегда хочется выбрать фичи максимально полезные и для пользователей и для компании-разработчика. Убедить кого-то в своей правоте на словах не просто, но когда вы покажете реально работающий прототип — ваши шансы сильно возрастают.

4. Решения с хакатона могут быть успешно интегрированы в реальные продукты
Да, на это потребуется время не соизмеримое с тем, за сколько вы это сделали на хакатоне, и в результате от вашего прототипа останется только общее направление, но тем не менее это возможно.

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

Вместо заключения


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



Фича вызвала положительный фидбек у руководства и возможно она тоже когда-нибудь будет полноценно реализована в продукте.

Для себя я твердо решил, что если предложат еще раз принять участие в хакатоне – обязательно соглашусь. А что по этому поводу думаете вы?
Поделиться с друзьями
-->

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


  1. TimsTims
    25.09.2016 17:37
    +8

    У меня такое ощущение, что я постоянно на работе невольно участвую в хакатоне, занимаясь разными проектами, делая весьма рабочие прототипы, которые всем нравятся, работают, отживают своё и так по кругу…


  1. RouR
    25.09.2016 23:19
    +4

    Было бы справедливо предоставить два дня отгула участникам хакатона. А не полдня в обмен на работу в выходных.


    1. MonkAlex
      26.09.2016 08:35

      Для меня лично — нормально. Похакатонить в выходные выходили по собственному желанию, не по 12-20 часов, меньше.


      1. Vjatcheslav3345
        26.09.2016 13:27

        А из дома удалённо нельзя было как нибудь организовать хакатон. Да ёще подобрать день с мерзкой погодой — явка, наверное, была бы большой.


        1. MonkAlex
          26.09.2016 13:37

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

          А хакатон — это же реальная возможность покодить и весело, и в компании, и полезно. Живое общение, имхо, удобнее удалённого в любом виде.


        1. VastTheStampede
          26.09.2016 13:48

          Теряется самое важное — личное общение. Не все можно передать текстом или по скайпу.
          Хочется влиться в процесс полностью, а дома куча отвлекающих факторов: дети, еда, домашние и т.д.


          1. Vjatcheslav3345
            26.09.2016 14:37

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


  1. NeverGiveUp
    26.09.2016 08:41
    +1

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


  1. vz10
    26.09.2016 10:52

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


  1. zxcabs
    26.09.2016 11:47
    +3

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


    1. MonkAlex
      26.09.2016 11:58

      Я слышал это мнение не раз. С одной стороны вы действительно правы.

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

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

      ПС: вам кажется, что вас так бесплатно разводят на поработать? Хакатоны вроде везде необязательны и проводятся наоборот для желающих сотрудников, что за странный подход то, не участвовал, но осуждаю?
      ПС2: а зачем пиццу за свой счет, если уж можно нормально пообедать? Оо


      1. zxcabs
        26.09.2016 13:00
        +1

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

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

        Это все личное мнение, основанное на личном опыте со стороны разработчика.


        1. MonkAlex
          26.09.2016 13:03

          Ну, если вы подскажете, где найти людей для написания парсера манги с онлайн-читалок — я буду рад =)

          ПС: рабочее время вроде оплачивалось, лучше посмотреть коммент Дениса


          1. zxcabs
            26.09.2016 14:46

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


  1. Sinatr
    26.09.2016 12:10

    Хакатон в «обычных» условиях — это не хакатон. Изначально термин связан с тем, что нужно куда-то пойти/поехать: должна быть новая обстановка (не ежеденевная рутинная), ограниченость инструментария, импровизирование, случайные люди для кооперирования…

    То, что вы делали — это маркетинговый ход руководства… «Бесплатные фичи» или как-то так. Я так и не понял разницы между обычным рабочим днем и описанными выходными в данном случае.


    1. MonkAlex
      26.09.2016 12:13

      Я аж задумался над определением хакатона. Залез в Wiki —

      Хакатон (англ. hackathon, от hack (см. хакер) и marathon — марафон) — форум разработчиков, во время которого специалисты из разных областей разработки программного обеспечения (программисты, дизайнеры, менеджеры) сообща работают над решением какой-либо проблемы.

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

      Мы пришли, запилили крутую штуку, а потом ещё и прилепили её к продукту. И знаете что — в итоге мы занимались хакатоном и в рабочее время потом, получая от этого плюшки хакатона — удовольствие, пусть и небольшая — но смена деятельности и прочее прочее. Мне это нравится, черт возьми =)


    1. dkiz
      26.09.2016 12:52

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

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

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

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


    1. BarrelRoll
      26.09.2016 13:03

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


      1. dkiz
        26.09.2016 13:06

        Видимо я этот момент обошел стороной. Эти выходные для участников были оплачиваемыми.

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

        Мне просто понравилось. Попилить что-то своё в хорошей компании — всегда весело

        Я участвовал не ради «покушать» или «призов», а чтобы писать код — с этим было все ок

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


  1. stalevar1990
    26.09.2016 14:48

    Если человек не может придаваться своему любимому делу безвозмездно ради удовольствия, то скорее всего он вообще мало на что способен. Даже при наличии денежной мотивации. ИМХО


  1. Vlad_fox
    26.09.2016 16:57
    -2

    Выводов лучше иметь 3 — красивое число. Или в крайнем случае -7, как у Стивена Кови (у него всего по 7, если не хватает — то дублирует ранее встречавшийся под другими словами).


  1. Stas911
    28.09.2016 03:12

    10 лет проработав в режиме перманентного хакатона — хватило на всю оставшуюся. Свободное время провожу с семьей или делаю свои проекты. Но если кого-то прет, то ради бога.


    1. MonkAlex
      28.09.2016 07:26

      Могли бы вы раскрыть свою мысль — как это «в режиме перманентного хакатона»? Постоянно пилили что-то сырое и брались за новое, не допилив старое?


      1. Stas911
        28.09.2016 15:45

        Довелось по молодости поработать в стартапе-не-стартапе, а скорее просто в конторе, где, скажем так, были некоторые проблемы с управлением, в результате чего почти каждый контракт, демо продукта или выставка оборачивалась «хакатонами», часто ночами и по выходным :) Было интересно, очень классная команда, но всему свое время :)


        1. MonkAlex
          28.09.2016 15:55

          Ну, постоянно так работать явно невесело, пусть хороший коллектив и способен многие отрицательные моменты и нивелировать =)


  1. benyamin
    28.09.2016 08:34

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