Тел.: +7 (4872) 33-79-06 E-mail: info@smartbear.ru

Хакатон

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

Я (Илья Авдеев) работаю в SmartBear Software (AutomatedQA до ребрендига) уже почти 9 лет, но с подобным эвентом встретился впервые и, конечно, услышав от начальства о предстоящем мероприятии, мы всей командой продукта Ready!API перво-наперво поспешили в Google, чтобы узнать о нём поподробней.

Как мы теперь знаем, данный марафон подразумевает постановку для себя задачи и её решение за отведенное время. Продукт, над которым мы работаем, Ready! API (ранее назывался SoapUI Pro), уже достаточно взрослый, ему более 11 лет. Так же он имеет Open Source редакцию (SoapUI OS) (т.е. любой желающий пользователь, которому не хватает существующего функционала, может его расширить своими силами и поделиться им со всеми) и огромное количество пользователей по всему миру - более 3 млн. Замечу, что development team продукта насчитывала в разное время до 20 человек.

Суммируя все эти обстоятельства, человек со стороны может предположить: "неужели этому продукту может чего-то не хватать, а если и не хватает, то как это можно сделать всего за 1 день, ведь до этого у вас было в распоряжении 11 лет?". Тем, кто задался подобным вопросом, я могу ответить, что вы и правы, и нет одновременно. Мы работаем над коммерческим продуктом (и стоит сказать, достаточно успешным). Что же это означает для software developer'а? Прежде всего следующее - мы, разработчики, не сами определяем задачи разработки. Чтобы добиться коммерческого успеха, мы обязаны прислушиваться к мнению менеджмента, команды маркетинга, sales team, кто, безусловно, ближе к конечному пользователю и более адекватно может оценить его потребности.

Итак, в наше распоряжение были отведены сутки, n-ное количество разработчиков и тестировщиков. Первый этап - разбиться на команды. Он был успешно и легко пройден. Второй этап - придумать себе задачу. Третий этап - отсеять 90% придуманных задач, поскольку, как ни крути, реализовать их за 24 часа до стадии, готовой к выпуску, невозможно ни при каких обстоятельствах. Четвертый этап - из оставшихся 10% придуманных задач выявить наиболее значимые и интересные.

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

И вот он день "X" настал - каждый может без согласования сделать что-то для души и при этом получить за это свою зарплату. Между собой мы договорились, что хакатон для нас начинается в 9:00 и длится до тех пор, пока поставленная задача не будет доведена до логического конца.

Время до полудня пролетело как один миг, вот уже закончился обед и незаметно подкрадывался конец рабочего дня. Наряду с накопившейся усталостью мы стали получать первые рабочие прототипы. Назвать тот код feature complete было, конечно, нельзя, поэтому после 18:00 нам оставалось еще много чего доделать и протестировать. Естественно, сил на это уже почти не было, поэтому к нам на помощь пришли наши старые и верные друзья – кофе и пицца.

После 11 вечера морфей стал брать своё, и мы волевым решением сказали: "Hackaton is over". Тем более, завтра будет новый рабочий день, который никто не отменял, и прожить его надо достойно и результативно.

9:00 утра следующего дня встретило только самых стойких из нас...

Формально наш хакатон был завершен, но, как водится, всё не так просто, и в 15:00 этого дня нам предстояло представлять свои работы перед высоким жюри в лице Ole Lensmar, John Purcell, Matti Hjelm, Gail Shlansky. На суд было вынесено огромное количество работ от концепт принципиально нового дизайна продукта (от нашего UX дизайнера) до небольших улучшений продукта со стороны Quality Assuarance team, позволяющих упростить процесс тестирования системы лицензирования продукта. Работ было представлено очень много и жюри оказалось в очень непростой ситуации. После небольшого совещания окончательного решения вынесено не было, поскольку все идеи были по-своему хороши. Результаты мы узнали лишь утром в понедельник. Проигравших не оказалось, все работы были оценены по достоинству. В итоге каждый участник получил заслуженный приз. Вот список лишь некоторых из них: укелеле, окарина, губная гармошка, камертон, бубен и др.

Вместо эпилога: в версии Ready! API 1.8 мы получим поддержку протокола OAuth 1.0, создание сервиса на основе HAR, отключение модулей продукта для экономии памяти и др. А в версии 1.9 мы также, наконец, получим современный диалог открытия файла... Вот такой вот хакатон.

P.S. наличие 2 камертонов оказалось очень уместным - их соударением мы теперь отмечаем исправление каждого нового бага в продукте :)