На днях в нашей компании FirstVDS прошел первый хакатон. Это был для нас первый опыт реализации проекта в рамках такого мероприятия. В результате мы запустили новый сервис FirstGAME всего за одну неделю.
Предыстория
Исследуя для каких целей у нас покупают VDS, мы выяснили, что заметная их часть приобретается для развертывания игровых серверов. Тогда мы решили упростить клиентам пользование нашей услугой и создать дисковые шаблоны с предустановленными игровыми серверами. Однако, пока мы подготавливали первый шаблон Minecraft и изучали системные требования игры, выяснилось, что для работы ей необходимо 1 Гб памяти минимум. Цена за такой игровой сервер получилась совсем не конкурентоспособной. Мы всё таки запустили данный шаблон в начале июля, полагая, что он будет пользоваться небольшим спросом, среди тех, кому нужен полный контроль над игровым сервером. Кроме того, мы решили, что интересно было бы сделать хостинг игровых серверов как отдельную специализированную услугу. Название придумали сразу же– FirstGAME.
Немного подумав в этом направлении и прикинув, что нам нужно для запуска игрового хостинга, мы осознали, что запускать данный проект мы будем очень и очень долго. Нужно было задействовать много разных людей, у которых и так хватает дел. Тогда кто-то предложил: «А давайте попробуем Хакатон?». Предварительное организационное собрание мы назначили на 13 августа, пригласив на него всех сотрудников компании, желающих принять участие. Идея – создание нового интересного проекта за 1 день.
Ребята с разных отделов вдохновились возможностью создания игровой платформы и пришли высказывать свои идеи. На этом собрании мы обсудили цели проекта, основные требования, набросали небольшой план, что нам нужно сделать и кто что делает, а так же назначили дату — 17 сентября
Листок с целями проекта выглядел следующим образом:
Увеличить аудиторию клиентов, сделав сервис для геймеров
Написать новый программный продукт для управления игровым хостингом
Поиграть в Хакатон, раньше мы никогда не пробовали такого формата работы
Рассказать всем на что мы способны (данная статья)
Получить опыт в новой для нас области (игры)
А требования вот так:
Доступно и понятно для домохозяек (никаких сложностей)
Конкурентная цена
Оно должно работать в задекларированном режиме (аптайм, регламентные работы и т.д.)
Хорошо документировать, чтобы пользователь мог быстро найти ответ на любой свой вопрос
Не менее 3х игр на старте
Технической поддержки не будет, только общий форум
Обслуживаем только физлиц
Начальный 100% работающий вариант должен быть сделан за 1 день, поэтому не замахиваемся на трудоемкие задачи
Поскольку у нас в штате нет своих веб-дизайнеров и программистов, мы решили пригласить их со стороны. Таким образом к нам присоединился дизайнер Евгений, с которым многие успели познакомиться ещё на Админском квартирнике, а так же группа программистов из дружественной нам компании ISPsystem, которая была заинтересованы в создании нового программного продукта.
По окончании предварительного собрания, руководитель компании Алексей сказал: «Мне кажется, я начинаю верить в успех этой затеи», что очень всех воодушевило.
Хакатон
Итак, настало 17 сентября 9 утра. До этого времени мы договорились не делать никаких предварительных работ и исследований, решили все начать с нуля. Единственное, что мы сделали к этому моменту, выкупили у кибесквотеров домен firstgame.ru.
Поехали! Задача перед нами была поставлена весьма конкретная интересная и сложная – сделать за один день работоспособный проект. Не вылизанный в деталях, не слишком глубокий, но рабочий и живой. Таким образом мы, совсем без подготовки, но с целью и со средствами в виде людских и технических ресурсов, приступили к работе.
Мы собрались в большом просторном помещении, народу было действительно много (21 человек). На стенах висело несколько полотен с текстом, повествующим о целях работы, требованиях к задуманному продукту, а так же небольшой обзор игр, с которых можно было бы начать наполнение панели.
После краткого обсуждения, мы выбрали GTA, Counter Strike 1.6, Minecraft, TF2, Left 4 Dead и TeamSpeak дополнительным бонусом. Взяли мы эти пять игр исходя из критериев массовости, стабильности, простоты/сложности поддержки и т.д. Сколько же игрушек получится по завершении дня – было не известно.
Судя по выражению лиц участников эксперимента, им было весело прийти на работу, но заниматься не решением повседневных задач, а массово исследовать какую-то новую для себя область, находить пути её решения, не откладывая в долгий ящик раздумий, проверять их на пригодность и принимать окончательные решения. Всех не покидало хорошее настроение, а в глазах читался интерес.
У нас образовалось 3 основных рабочих группы: Первая занималась разработкой сайта, контента и маркетинговыми исследованиями, вторая — изучением технической стороны игровых серверов, третья — разработкой панели управления игровыми серверами. И, разумеется, были отдельные люди, которые координировали совместную работу, обеспечивали технические ресурсы, заказывали пиццу, все фоткали и протоколировали
Сайт. Пока группа обсуждала макет и раскладку сайта, дизайнер выслушал задание и принялся творить эскизы логотипа. Посмотрев на другие логотипы наших проектов, Евгений через несколько минут предложил макет, который всем понравился и его сразу утвердили. Далее ребята решали, как оформят сайт, какие блоки разместят, какое будет цветовое решение. Старались, чтобы всё было удобно и понятно, без лишних путанных наворотов, но интересно и красиво
Мы посмотрели на некоторые подобные сайты и подчерпнули много интересного и полезного. Определившись с сайтом и окончательно сформировав задание для дизайнера, основная часть группы занялась маркетинговыми исследованиями. Мы нашли в рунете порядка 50 сайтов сходной тематики и проанализировали их на предмет предоставляемых услуг и ценовой политики, а так же постарались выделить лидеров, на которых нужно равняться. У них мы покупали аккаунты, более подробно изучали, как все устроено, что удобно и нравится. В итоге мы вывели среднерыночные цены, а также определили цены, которые нам хотелось бы установить. Однако, решать окончательно с ценой пока было рано, т.к. ничего не было понятно с себестоимостью… Впрочем, это не помешало создать в нашей биллинговой системе BILLmanager новый проект и тарифные планы, а также сделать настройки для приема денег.
Тем временем, группа системных администраторов разделила игры между собой, каждый получил по отдельному выделенному серверу и приступил к установке игры. В их задачи входило разобраться с серверной частью игры, на чем и как ее запускать, определить потребности в ресурсах, каким образом она настраивается и сформировать задание разработчикам, которые будут автоматизировать взаимодействие с данной игрой. Далее предстояла задача изучить нагрузку, создаваемую играми на разные серверы и определить оптимальную конфигурацию железа, чтобы всего хватало и ничего не простаивало.
А разработчики, тем временем, проектировали ядро нового продукта, который решили назвать GSmanager (game server manager). Вот как прокомментировал свою работу один из участников этой группы, Алексей: «Конечно же, мы решили писать игровую панельку на той же основе, что и все наши продукты – на COREmanager. Была разработана следующая архитектура: Система будет многосерверной. На одном сервере разворачивается GSmanager, который отвечает за интерфейс пользователей, их учёт и учёт игровых серверов и узлов игрового кластера. К нему подключаются ноды, игровые сервера будут устанавливаться и запускаться непосредственно на них. При подключении, на ноду устанавливается специальное приложение – GSmini, которое, в свою очередь, отвечает за установку игровых серверов, настройку и управление их состоянием. Таким образом, с мастер-сервера мы сможем управлять целым игровым кластером!».
Разобравшись с архитектурой и протоколами взаимодействия, ребята принялись за реализацию и уже к обеду у них был работающий прототип. Параллельно мы написали модуль для BILLmanager, позволявший автоматически обрабатывать заказы клиентов.
Наступило время перерыва (час дня) и вот некоторые впечатления ребят, выпытанные во время обеденного перерыва:
Оля, менеджер проекта: «Я удивлена нашей результативностью. Мы хорошо вписываемся в план. Никакого бардака и хаоса, все сидят и четко выполняют поставленную задачу, каждый понимает что и зачем делает».
Дима, разработчик: «Я не вижу, что происходит дальше нашего девелоперского стола, хоть столов тут и хватает. У нас проявилась структура проекта, на основе которого он будет жить. Была определена базовая функциональность, то, как будет осуществляться работа с пользователями и физическими серверами. Мы автоматизировали процесс сборки и развертывания разрабатываемой панели GSmanager на тестовый стенд. В общем, основу придумали, а сейчас поняли, что она нуждается в доработке. Форсируя события, реализовываем новые задумки и начинаем наращивать «мясо на костях». Через час попросим инфу о конфигурации и запуске разных игровых серверов».
В 2 часа, опять все собрались на своих местах и работа продолжилась. Группы начали плотнее взаимодействовать между собой обмениваясь наработками и информацией. Появились и первые негативные моменты. Оказалось, что TeamSpeak просто так продавать нельзя, необходимо лицензионное соглашение и подписание бумажек. Но мы этот вопрос не бросили, поскольку это популярное дополнение, оно обязательно должно быть у нас.
Провести тестирование под нагрузкой нам тоже не удалось, необходимых данных на эту тему в интернете тоже нашлось не много. Решили все запускать на конфиге E5-1650 / 32Gb / 2x2000 SATA, по одной ноде на каждый тип игры. Далее опытным путем мы определим потребность в железе и оптимизируем его. Поскольку посчитать более менее точно себестоимость нам не удалось, мы решили остановится на среднерыночных ценах, решив, что, наверное, люди не в убыток себе работают… Тем более, что демпинговать мы не собираемся, поскольку считаем, что это убивает рынок, а мы планируем на нем работать и делать что-то, что будет заставлять его стремится к лучшему.
У девелоперов тоже все шло не лучшим образом, первый модуль под Minecraft ребята решили сделать толпой, а далее разбиться по остальным играм, и по отработанной системе параллельно написать оставшиеся модули. Однако, споры из серии «лучшее враг хорошего» заняли слишком много времени. Группа исследователей игр, закончила свою работу и начала страдать ерундой, что слегка повлияло на общую рабочую атмосферу. Правда некоторые из них нашли себе занятие в виде наполнения сайта текстами и помощи в генерации идей для банеров и прочих маркетинговых мероприятий.
Ближе к вечеру стало окончательно ясно, что мы не успеем запустить проект сегодня. Основными причинами стали GSmanager, а так же работы по верстке сайта и его автоматизации.
Все сошлись на мнении, что мы проделали огромный объем работы и нам нужно совсем чуть-чуть для запуска проекта. Обсудили все узкие места и недочеты, определили порядок доработки: через 3 дня (в неспешном режиме, ведь у всех есть и основная работа) мы должны быть готовы к финальному тестированию, еще 2 дня берем на устранение недочетов выявленных в процессе тестирования и 24 сентября (через неделю) запускаем проект.
В итоге в пятницу, мы имели:
Полностью готовый сайт с 3 самыми популярными играми
Установлен и настроен GSmanager, к которому подключено 8 серверов
Игровые сервера запущены в тестовом режиме
На сайте можно заказать услугу, совершить оплату и практически сразу приступить к игре
У маркетинга готовы все рекламные материалы, тексты новостей и пресрелизов, есть четкая стратегия по продвижению
Написана данная статья
На последок хотелось бы сказать несколько слов о дальнейших планах развития проекта:
В течение октября мы добавим в GSmanager максимум функций и доведем первые четыре игры до безупречного состояния. А до конца года мы планируем увеличить количество игр до 10, более глубоко изучить рынок игрового хостинга, изучить целесообразность покупки конкурирующих компаний, с целью быстро обеспечить себе лидирующие позиции.
Вывод:
Хакатон, как метод быстрого решения интересных задач, себя оправдал! Нам понравился такой стиль работы. Результатом, в конечном счете, мы тоже остались довольны. Теперь мы в ожидании фидбека от любителей игрануть во что-нибудь из пока небольшого, но уже имеющегося ассортимента. А читатели, надеюсь, нашли в статье для себя что-то интересное.