Позади остался минский EPAM Grand Hackathon 2013, прошедший 28-29 января в белорусской столице. Светлые головы и лучшие умы ЕРАМ Systems на 24 часа собрались вместе, чтобы в кодинг-марафоне выявить лучших из лучших. Победу одержали сразу две команды: YAHAT (Рязань, Россия) и ping UIns (Минск, Беларусь). Нам удалось пообщаться с разработчиками из команды YAHAT и выяснить, чем интересен функционал разработанного ими плагина и как нужно готовиться к хакатону, чтобы выиграть.
- Как узнали о проведении EPAM Grand Hackathon 2013? Что стало толчком для участия вашей команды в нем?
- О проведении кодинг-марафона узнали в прошлом году, когда победители локального хакатона в Рязани собирались участвовать в общекорпоративном соревновании. Поскольку в 2013 г. на локальном хакатоне наша команда заняла первое место, то и на Grand Hackathon поехали мы =)
- Каким образом подбирали участников в команду? По какому принципу распределяли зоны ответственности?
- Я [Алексей Поляков] и Игорь [Соленов] вместе участвовали в локальном соревновании в прошлом году, оставшихся членов команды подбирали из знакомых. Главным критерием отбора было желание сформировать максимально сбалансированную команду. Зоны ответственности распределяли в соответствии с навыками каждого конкретного человека, чтобы можно было больше концентрироваться на работе и меньше - на изучении новых концепций. Правда, стоит отметить, что наше решение писать на Java внесло коррективы в начальный план, так как все мы - .NET разработчики. Нам пришлось «бороться» с новым языком прямо в процессе написания функционала. Общий профессионализм участников очень помог. Разобраться с новым языком, новыми технологиями и при этом сделать рабочее решение – большое достижение.
- Расскажите о названии вашей команды.
- YAHAT - Yet Another HAckathon Team. У нас было огромное количество разных вариантов, таких как 686e470d-4865-481f-83ff-2778d825f447, Guid.NewGuid(), IT Rambo, OldTimers и множество других (каждый придумывал по 5 вариантов названия). Название «Yet Another HAckathon Team» появилось ещё в прошлом году и является идиомой, хорошо известной среди IT’ов.
- Как проходила подготовка к соревнованиям? Какие идеи для конкурсной разработки вы рассматривали и как пришли к проекту JIRA Integration Plugin?
- В течение недели перед поездкой мы собирались почти каждый день и на протяжении 1-1.5 часов обсуждали идеи. Были отфильтрованы различные варианты вроде игры GameDev Tycoon в тематике EPAM, очередного корпоративного портала и т.д. Самым важным результатом подготовки оказалось принятие решения о разработке набора плагинов для Jira – эту работу очень легко можно разделить между участниками. При этом платформа уже написана и остаётся только с ней интегрироваться. Как выяснилось позже, «просто с ней интегрироваться» совсем не так просто, но, в общем, идея была успешной.
- Опишите, пожалуйста, суть работы плагина, его возможности использования, достоинства. Какие технологии вы использовали для создания? Почему отдали предпочтение именно им?
- Плагин включает в себя следующий функционал:
• Расширенный профиль пользователя.
Интеграция с e3s позволяет получить информацию о навыках и отпусках человека. Присутствует интеграция с порталом признания корпоративных заслуг.
• Assignment Adviser.
Используя информацию о навыках, загрузке и выполненных задачах система автоматически подсказывает наиболее подходящих людей для выполнения issue.
• Награждение бэйджами.
При выполнении системных событий, например, закрытие бага, мы можем автоматически присваивать человеку бэйдж на корпоративном портале признания заслуг. Этот функционал был представлен в концептуальном виде.
• Click-to-call.
Есть возможность позвонить человеку через MS Lync с помощью одного клика. Аналогичный функционал добавили во внутреннюю систему учета сотрудников через неделю после проведения хакатона.
• Новое поле Environment для Issue.
Поле позволяет связать issue с одной из виртуальных машин, список которых загружается из EPAM Cloud.
• Click-to-connect.
При нажатии на имя виртуальной машины запускается remote desktop-подключение.
• Log target для NLog’а.
Он позволяет автоматически создавать баги в Jira при возникновении исключений (exceptions). При этом есть механизм, позволяющий избежать создания дубликатов.
Для работы у нас не было большого выбора технологий. Jira, Java, Velocity, JavaScript и HTML – все это мы были просто вынуждены использовать для реализации нашей идеи. Небольшая вольность была при выборе NLog’а в качестве библиотеки для внешней интеграции с Jira. Её выбрали как самую функциональную на данный момент.- В приложении был реализован весь задуманный функционал?
- У нас были идеи ещё где-то на 8 часов работы, при этом перед стартом соревнований мы прекрасно понимали, что у нас есть хороший запас задач и даже при самом удачном стечении обстоятельств всё реализовать мы не успеем.
- Планируете ли дальше совершенствовать приложение и внедрять его «в жизнь»?
- Если ЕРАМ решит внедрить наши идеи, то мы можем в этом помочь.
- Как проходил процесс разработки? У вас была собственная стратегия по реализации проекта за 24 часа? Трудности были?
-Трудности возникли у всех и сразу в связи с отсутствием стабильного интернета. Нас они затронули, возможно, больше, чем других, так как мы использовали совершенно новый для нас язык и без Google писать было очень печально. Доходило до того, что приходилось использовать циклы for вместо foreach только потому, что никто не знал синтаксиса. Через 2-3 часа, когда появился интернет, ситуация заметно наладилась.
Касательно плана - да, он был утверждён заранее, мы чётко представляли, кто за какую часть системы отвечает, как мы будем ее разворачивать, писать и интегрироваться друг с другом. В ходе мероприятия, конечно, пришлось внести серьёзные изменения, но общая концепция легко распределяемых маленьких задач позволила всем работать максимально эффективно.
- Что помогло выдержать кодинг-марафон?
- Около 6 часов утра мы по очереди сделали 1-1.5-часовой перерыв на сон. Помогло обильное количество еды и напитков, особенно утренние блины с мясом. Возможно, после короткого сна и плотного завтрака был наш самый продуктивный отрезок работы.
- Так как победили 2 команды, каждой презентовали по 2 пары Google Glass. Как вы распределили призы между членами команды?
- Вообще факт того, что после победы приходится «делить призы» очень сильно подорвал общее хорошее впечатление от мероприятия. Поделили по принципу: кому больше нужно.
- Чем запомнилось участие в хакатоне?
- Атмосфера профессионализма и энтузиазма, стремление справится со всеми сложностями разработки в ограниченное время, и в итоге признание результатов усилий и профессиональных навыков команды. Проблемы с интернетом. Отличная еда.
- Согласитесь участвовать в подобных соревнованиях в будущем?
- Да.
- Какой совет вы бы дали разработчикам, которые планируют участие в хакатоне?
- Не надеяться ни на что: ни на наличие интернета, ни на то, что будет возможность поспать ночью, что сервисы, с которыми вы интегрируетесь, будут работать в момент презентации. Последний пункт оказался очень удивительным, огромное количество команд реализовало только Happy Path-сценарий работы и когда на демонстрации что-то падало, это было сразу видно. Даже на хакатоне надо обращать внимание на качество кода, не забывать о try-catch, тестах и хороших практиках. Вы пришли не делать презентацию в Power Point, а писать продукт за 24 часа!
- Интересно узнать ваши ощущения от посещения Минска. Бывали здесь раньше?
- Большая часть команды была здесь первый раз. Очень удивили магазины с несколькими отделами и отдельными кассами в каждом. Когда первый раз закупали продукты, ходили в один и тот же отдел 2-3 раза, чем вызывали смех и негодование продавцов. Потом нашли супермаркет и стало проще =) Так как количество различных купюр очень большое, сложно сориентироваться. В большинстве случаев спасала банковская карточка, но вот такси с неё оплатить было нельзя. Минск - очень чистый город, всюду широкие тротуары, замощённые плиткой. Ходить пешком - одно удовольствие.
Смотрим самые яркие моменты EPAM Grand Hackathon - 2013 в Минске.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.